changeset 0:049760c677de default tip

Galaxy WSExtensions added successfully
author uga-galaxy-group
date Tue, 05 Jul 2011 19:34:18 -0400
parents
children
files WebServiceExtensionsV1.1/WSExtension Users Guide.pdf WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/License.txt WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/.classpath WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/.project WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/.settings/org.eclipse.jdt.core.prefs WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/bin/lsdis/Application.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/bin/lsdis/Doc.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/bin/lsdis/Grammar.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/bin/lsdis/Include.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/bin/lsdis/Link.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/bin/lsdis/Method.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/bin/lsdis/Option.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/bin/lsdis/Param.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/bin/lsdis/Representation.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/bin/lsdis/Request.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/bin/lsdis/Resource.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/bin/lsdis/Resources.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/bin/lsdis/Response.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/bin/lsdis/WADLConstant.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/bin/lsdis/WADLParser.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/bin/lsdis/WADLParserDriver.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/bin/trial.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/bin/trialWADLParserDriver.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/lib/JdomParser.jar WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/lib/jaxen.jar WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/lib/saxpath.jar WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/lib/xalan.jar WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/lib/xerces.jar WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/lib/xml-apis.jar WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/src/lsdis/Application.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/src/lsdis/Doc.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/src/lsdis/Grammar.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/src/lsdis/Include.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/src/lsdis/Link.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/src/lsdis/Method.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/src/lsdis/Option.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/src/lsdis/Param.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/src/lsdis/Representation.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/src/lsdis/Request.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/src/lsdis/Resource.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/src/lsdis/Resources.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/src/lsdis/Response.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/src/lsdis/WADLConstant.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/src/lsdis/WADLParser.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/src/lsdis/WADLParserDriver.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WebServiceTool_input_method_REST_SOAP.xml WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WebServiceTool_input_method_REST_SOAP.xml~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WebServiceTool_input_method_m.py WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WebServiceTool_input_method_m.py~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WebServiceTool_input_url_REST_SOAP.xml WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WebServiceTool_input_url_REST_SOAP.xml~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WebServiceTool_input_url_m.py WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WebServiceTool_input_url_m.py~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/.classpath WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/.project WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/.settings/org.eclipse.jdt.core.prefs WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/bin/CovertToWSDL2.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/bin/lsdis/WSDLParserDriver.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/lib/LICENSE.dom WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/lib/LICENSE.sax WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/lib/LICENSE.wsdl4j.html WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/lib/LICENSE.xerces WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/lib/XmlSchema-1.4.2.jar WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/lib/axis-wsdl4j-1.3.jar WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/lib/woden-api-1.0M8.jar WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/lib/woden-impl-dom-1.0M8.jar WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/lib/xercesImpl.jar WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/lib/xml-apis.jar WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/src/CovertToWSDL2.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/src/lsdis/WSDLParserDriver.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/src/lsdis/WSDLParserDriver.java~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/src/lsdis/WSDLchecker.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/src/lsdis/WSDLchecker.java~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/.DS_Store WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/._.DS_Store WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/KEGG/KEGG_v6_2_services.py WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/KEGG/KEGG_v6_2_services_types.py WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/KEGG/__init__.py WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/WSDbfetchDoclit/WSDBFetchDoclitServerService_services.py WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/WSDbfetchDoclit/WSDBFetchDoclitServerService_services_types.py WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/WSDbfetchDoclit/__init__.py WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/WSWUBlast/WSWUBlast_services.py WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/WSWUBlast/WSWUBlast_services_types.py WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/WSWUBlast/__init__.py WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/__init__.py WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/__init__.pyc WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/clustalw2/__init__.py WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/clustalw2/clustalw2_client.py WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/clustalw2/clustalw2_server.py WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/clustalw2/clustalw2_services.py WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/clustalw2/clustalw2_services.py~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/clustalw2/clustalw2_services_types.py WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/clustalw2/clustalw2_services_types.py~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/clustalw2/clustalw2_types.py WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/creatorEngineComplex.py WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/creatorEngineComplex.pyc WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/creatorEngineComplex.py~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/creatorTest.py~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/introspect.py WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/introspect.pyc WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/introspect.py~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/latest_wsdl/PhylipService_services.py WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/latest_wsdl/PhylipService_services_types.py WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/latest_wsdl/__init__.py WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/msHandler.py WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/msHandler.pyc WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/msHandler.py~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/paramConverter.py WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/paramConverter.pyc WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/paramConverter.py~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/temp WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/temp.wsdl WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/wsdl2path.py WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/wsdl2path.pyc WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/wsdl2path.py~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/wubalst/__init__.py WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/wublast/__init__.py WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/wublast/__init__.pyc WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/wublast/wublast_client.py WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/wublast/wublast_client.pyc WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/wublast/wublast_server.py WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/wublast/wublast_services.py WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/wublast/wublast_services_types.py WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/wublast/wublast_types.py WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/wublast/wublast_types.pyc WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clients/ClientCount.xml WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clients/ClientCount.xml~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clients/client_1.py WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clients/client_1.py~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clients/client_1.xml~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clients/client_17.xml~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clients/client_2.xml~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clients/client_3.xml~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clients/client_5.xml~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clients/client_9.xml~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/edit_tool_conf.py WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/edit_tool_conf.pyc WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/edit_tool_conf.py~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/edit_tool_conf1.py WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/edit_tool_conf1.pyc WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/edit_tool_conf1.py~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/generateClient.py WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/generateClient.pyc WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/generateClient.py~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/generateClient1.py WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/generateClient1.pyc WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/generateClient1.py~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/generateClient1_mc.py~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/getMethods_m.py WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/getMethods_m.pyc WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/getMethods_m.py~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/.classpath WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/.project WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/Files/3A4_PurchaseOrder_CoreElements.xsd WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/Files/3A4_PurchaseOrder_Dictionary.xsd WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/Files/3A4_Simplified_PurchaseOrderRequest.xsd WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/Files/AcknowledgementOfReceipt.xsd WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/Files/NewTemplate.sawadl WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/Files/NewTemplate.sawadl~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/Files/NewsSearchResponse.xsd WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/Files/Template.sawadl WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/Files/sample.wadl WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/Files/xml.xsd WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/.classpath WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/.project WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/Parser.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/ApplicationImpl.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/Constants$SemanticExtensionType.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/Constants.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/GrammarsImpl.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/IncludeImpl.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/MethodImpl.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/ModelReferenceImpl.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/OperationAddOnImpl.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/ParamImpl.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/ParamsImpl.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/RequestImpl.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/ResourceImpl.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/ResponseImpl.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/SAWADLParserDriver.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/extensions/schema/SchemaConstants.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/extensions/schema/SchemaDeserializer.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/extensions/schema/SchemaImpl.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/extensions/schema/SchemaImportImpl.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/extensions/schema/SchemaReferenceImpl.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/extensions/schema/SchemaSerializer.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/factory/WADLFactoryImpl.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/util/IOUtils.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/util/ObjectRegistry.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/util/SchemaUtils.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/util/StringUtils.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/util/xml/DOM2Writer.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/util/xml/DOMUtils.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/util/xml/QNameUtils.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/util/xml/XPathUtils.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/xml/WADLReaderImpl.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/xml/WADLWriterImpl.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/Application.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/Effect.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/Grammars.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/Include.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/Method.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/ModelReference.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/ModelReferenceExtensible.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/Param.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/Params.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/PreCondition.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/Request.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/Resource.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/Response.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/WADLSException.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/extensions/AttributeExtensible.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/extensions/ElementExtensible.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/extensions/ExtensibilityElement.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/extensions/ExtensionDeserializer.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/extensions/ExtensionRegistry.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/extensions/ExtensionSerializer.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/extensions/UnknownExtensibilityElement.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/extensions/UnknownExtensionDeserializer.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/extensions/UnknownExtensionSerializer.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/extensions/schema/Schema.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/extensions/schema/SchemaImport.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/extensions/schema/SchemaReference.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/factory/WADLFactory.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/xml/WADLLocator.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/xml/WADLReader.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/xml/WADLWriter.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/xml/namespace/QName.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/euPathWADL/GenesByMolecularWeight.sawadl WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/euPathWADL/GenesByMolecularWeight.sawadl~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/.classpath WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/.project WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/Parser.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/Parser.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/ApplicationImpl.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/ApplicationImpl.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/Constants$SemanticExtensionType.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/Constants.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/Constants.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/GrammarsImpl.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/GrammarsImpl.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/IncludeImpl.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/IncludeImpl.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/MethodImpl.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/MethodImpl.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/ModelReferenceImpl.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/ModelReferenceImpl.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/OperationAddOnImpl.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/OperationAddOnImpl.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/ParamImpl.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/ParamImpl.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/ParamsImpl.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/ParamsImpl.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/RequestImpl.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/RequestImpl.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/ResourceImpl.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/ResourceImpl.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/ResponseImpl.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/ResponseImpl.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/SAWADLParserDriver.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/SAWADLParserDriver.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/extensions/schema/SchemaConstants.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/extensions/schema/SchemaConstants.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/extensions/schema/SchemaDeserializer.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/extensions/schema/SchemaDeserializer.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/extensions/schema/SchemaImpl.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/extensions/schema/SchemaImpl.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/extensions/schema/SchemaImportImpl.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/extensions/schema/SchemaImportImpl.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/extensions/schema/SchemaReferenceImpl.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/extensions/schema/SchemaReferenceImpl.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/extensions/schema/SchemaSerializer.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/extensions/schema/SchemaSerializer.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/factory/WADLFactoryImpl.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/factory/WADLFactoryImpl.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/util/IOUtils.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/util/IOUtils.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/util/ObjectRegistry.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/util/ObjectRegistry.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/util/SchemaUtils.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/util/SchemaUtils.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/util/StringUtils.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/util/StringUtils.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/util/xml/DOM2Writer.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/util/xml/DOM2Writer.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/util/xml/DOMUtils.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/util/xml/DOMUtils.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/util/xml/QNameUtils.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/util/xml/QNameUtils.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/util/xml/XPathUtils.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/util/xml/XPathUtils.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/xml/WADLReaderImpl.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/xml/WADLReaderImpl.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/xml/WADLWriterImpl.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/xml/WADLWriterImpl.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/Application.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/Application.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/Effect.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/Effect.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/Grammars.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/Grammars.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/Include.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/Include.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/Method.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/Method.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/ModelReference.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/ModelReference.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/ModelReferenceExtensible.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/ModelReferenceExtensible.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/Param.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/Param.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/Params.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/Params.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/PreCondition.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/PreCondition.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/Request.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/Request.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/Resource.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/Resource.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/Response.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/Response.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/WADLSException.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/WADLSException.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/extensions/AttributeExtensible.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/extensions/AttributeExtensible.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/extensions/ElementExtensible.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/extensions/ElementExtensible.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/extensions/ExtensibilityElement.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/extensions/ExtensibilityElement.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/extensions/ExtensionDeserializer.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/extensions/ExtensionDeserializer.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/extensions/ExtensionRegistry.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/extensions/ExtensionRegistry.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/extensions/ExtensionSerializer.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/extensions/ExtensionSerializer.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/extensions/UnknownExtensibilityElement.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/extensions/UnknownExtensibilityElement.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/extensions/UnknownExtensionDeserializer.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/extensions/UnknownExtensionDeserializer.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/extensions/UnknownExtensionSerializer.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/extensions/UnknownExtensionSerializer.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/extensions/schema/Schema.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/extensions/schema/Schema.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/extensions/schema/SchemaImport.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/extensions/schema/SchemaImport.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/extensions/schema/SchemaReference.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/extensions/schema/SchemaReference.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/factory/WADLFactory.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/factory/WADLFactory.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/xml/WADLLocator.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/xml/WADLLocator.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/xml/WADLReader.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/xml/WADLReader.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/xml/WADLWriter.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/xml/WADLWriter.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/xml/namespace/QName.class WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/xml/namespace/QName.java WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/owlapi-bin.jar WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/owlapi-src.jar WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/refreshTool.py WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/refreshTool.py~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/refreshTool.xml WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/refreshTool.xml~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/suite_config.xml WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/suite_config.xml~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/workflowclients/ClientCount.xml WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/workflowclients/ClientCount.xml~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/workflowclients/client_1.py WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/workflowclients/client_1.py~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/workflowclients/client_1.xml~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/workflowclients/client_10.xml~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/workflowclients/client_14.xml~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/workflowclients/client_16.xml~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/workflowclients/client_17.xml~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/workflowclients/client_2.py~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/workflowclients/client_2.xml~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/workflowclients/client_38.xml~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/workflowclients/client_4.xml~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/workflowclients/client_45.xml~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/workflowclients/client_5.xml~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/workflowclients/client_55.xml~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/workflowclients/client_57.xml~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/workflowclients/client_59.xml~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/workflowclients/client_61.xml~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/workflowclients/client_7.xml~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/workflowclients/client_8.xml~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/workflowclients/client_86.xml~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/workflowclients/client_9.xml~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/workflowclients/client_90.xml~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/workflowclients/workflowclient.xml~ WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/workflowclients/workflowclient_1.xml~ WebServiceExtensionsV1.1/WsExtension InstallationGuide.pdf WebServiceExtensionsV1.1/WsExtensions DeveloperGuide.pdf WebServiceExtensionsV1.1/install.py WebServiceExtensionsV1.1/install.py~
diffstat 386 files changed, 42276 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
Binary file WebServiceExtensionsV1.1/WSExtension Users Guide.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/License.txt	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,8 @@
+Copyright (c) 2011 University of Georgia
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/.classpath	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+	<classpathentry kind="lib" path="/home/ganjoo/parser/WADLParser/dist/lib/jaxen.jar"/>
+	<classpathentry kind="lib" path="/home/ganjoo/parser/WADLParser/dist/lib/JdomParser.jar"/>
+	<classpathentry kind="lib" path="/home/ganjoo/parser/WADLParser/dist/lib/saxpath.jar"/>
+	<classpathentry kind="lib" path="/home/ganjoo/parser/WADLParser/dist/lib/xalan.jar"/>
+	<classpathentry kind="lib" path="/home/ganjoo/parser/WADLParser/dist/lib/xerces.jar"/>
+	<classpathentry kind="lib" path="/home/ganjoo/parser/WADLParser/dist/lib/xml-apis.jar"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/.project	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>ParserForWADL</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/.settings/org.eclipse.jdt.core.prefs	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,12 @@
+#Mon Apr 12 19:03:29 EDT 2010
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/bin/lsdis/Application.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/bin/lsdis/Doc.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/bin/lsdis/Grammar.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/bin/lsdis/Include.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/bin/lsdis/Link.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/bin/lsdis/Method.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/bin/lsdis/Option.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/bin/lsdis/Param.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/bin/lsdis/Representation.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/bin/lsdis/Request.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/bin/lsdis/Resource.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/bin/lsdis/Resources.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/bin/lsdis/Response.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/bin/lsdis/WADLConstant.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/bin/lsdis/WADLParser.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/bin/lsdis/WADLParserDriver.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/bin/trial.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/bin/trialWADLParserDriver.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/lib/JdomParser.jar has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/lib/jaxen.jar has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/lib/saxpath.jar has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/lib/xalan.jar has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/lib/xerces.jar has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/lib/xml-apis.jar has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/src/lsdis/Application.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,108 @@
+/*
+ * Copyright (c) 2009 Srikalyan Swayampakula.. All rights reserved.
+ * 
+ *   Author : Srikalyan Swayampakula. .
+ *   Name of the File : Application.java .
+ *   Created on : Nov 22, 2009 at 3:20:25 PM .
+ * 
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ * 
+ *  1. Redistributions of source code must retain the above
+ *     copyright notice, this list of conditions and the following
+ *     disclaimer.
+ *  2. Redistributions in binary form must reproduce the above
+ *     copyright notice, this list of conditions and the following
+ *     disclaimer in the documentation and/or other materials
+ *     provided with the distribution.
+ *  3. Neither the name of the University of Georgia nor the names
+ *     of its contributors may be used to endorse or promote
+ *     products derived from this software without specific prior
+ *     written permission.
+ * 
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ *  CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ *  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ *  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ *  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ *  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ *  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package lsdis;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ *
+ * @author Srikalyan Swayampakula.
+ */
+public class Application
+{
+
+    private List<Resources> resources;
+    private List<Doc> docs;
+    private Grammar grammar;
+    private Map<String, String> namespaces;
+
+    public Application()
+    {
+    }
+
+    public Application(List<Resources> resources, List<Doc> docs, Grammar grammar, Map<String, String> namespaces)
+    {
+        this.resources = resources;
+        this.docs = docs;
+        this.grammar = grammar;
+        this.namespaces = namespaces;
+    }
+
+    public List<Doc> getDocs()
+    {
+        return docs;
+    }
+
+    public void setDocs(List<Doc> doc)
+    {
+        this.docs = doc;
+    }
+
+    public Grammar getGrammar()
+    {
+        return grammar;
+    }
+
+    public void setGrammar(Grammar grammar)
+    {
+        this.grammar = grammar;
+    }
+
+    public Map<String, String> getNamespaces()
+    {
+        return namespaces;
+    }
+
+    public void setNamespaces(Map<String, String> namespaces)
+    {
+        this.namespaces = namespaces;
+    }
+
+    public List<Resources> getResources()
+    {
+        return resources;
+    }
+
+    public void setResources(List<Resources> resources)
+    {
+        this.resources = resources;
+    }
+
+    
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/src/lsdis/Doc.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,91 @@
+/*
+ * Copyright (c) 2009 Srikalyan Swayampakula.. All rights reserved.
+ * 
+ *   Author : Srikalyan Swayampakula. .
+ *   Name of the File : Doc.java .
+ *   Created on : Nov 22, 2009 at 3:29:12 PM .
+ * 
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ * 
+ *  1. Redistributions of source code must retain the above
+ *     copyright notice, this list of conditions and the following
+ *     disclaimer.
+ *  2. Redistributions in binary form must reproduce the above
+ *     copyright notice, this list of conditions and the following
+ *     disclaimer in the documentation and/or other materials
+ *     provided with the distribution.
+ *  3. Neither the name of the University of Georgia nor the names
+ *     of its contributors may be used to endorse or promote
+ *     products derived from this software without specific prior
+ *     written permission.
+ * 
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ *  CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ *  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ *  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ *  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ *  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ *  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package lsdis;
+
+/**
+ *
+ * @author Srikalyan Swayampakula.
+ */
+public class Doc
+{
+
+    private String title;
+    private String lang;
+    private String innerText;
+
+    public Doc()
+    {
+    }
+
+    public Doc(String title, String lang, String innerText)
+    {
+        this.title = title;
+        this.lang = lang;
+        this.innerText = innerText;
+    }
+
+    public String getLang()
+    {
+        return lang;
+    }
+
+    public void setLang(String lang)
+    {
+        this.lang = lang;
+    }
+
+    public String getTitle()
+    {
+        return title;
+    }
+
+    public void setTitle(String title)
+    {
+        this.title = title;
+    }
+
+    public String getInnerText()
+    {
+        return innerText;
+    }
+
+    public void setInnerText(String innerText)
+    {
+        this.innerText = innerText;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/src/lsdis/Grammar.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,81 @@
+/*
+ * Copyright (c) 2009 Srikalyan Swayampakula.. All rights reserved.
+ * 
+ *   Author : Srikalyan Swayampakula. .
+ *   Name of the File : Grammar.java .
+ *   Created on : Nov 22, 2009 at 3:30:09 PM .
+ * 
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ * 
+ *  1. Redistributions of source code must retain the above
+ *     copyright notice, this list of conditions and the following
+ *     disclaimer.
+ *  2. Redistributions in binary form must reproduce the above
+ *     copyright notice, this list of conditions and the following
+ *     disclaimer in the documentation and/or other materials
+ *     provided with the distribution.
+ *  3. Neither the name of the University of Georgia nor the names
+ *     of its contributors may be used to endorse or promote
+ *     products derived from this software without specific prior
+ *     written permission.
+ * 
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ *  CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ *  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ *  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ *  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ *  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ *  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package lsdis;
+
+import java.util.List;
+
+/**
+ *
+ * @author Srikalyan Swayampakula.
+ */
+public class Grammar
+{
+
+    List<Doc> docs;
+    List<Include> include;
+
+    public Grammar()
+    {
+    }
+
+    public Grammar(List<Doc> docs, List<Include> include)
+    {
+        this.docs = docs;
+        this.include = include;
+    }
+
+    public List<Doc> getDocs()
+    {
+        return docs;
+    }
+
+    public void setDocs(List<Doc> docs)
+    {
+        this.docs = docs;
+    }
+
+    public List<Include> getInclude()
+    {
+        return include;
+    }
+
+    public void setInclude(List<Include> include)
+    {
+        this.include = include;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/src/lsdis/Include.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,82 @@
+/*
+ * Copyright (c) 2009 Srikalyan Swayampakula.. All rights reserved.
+ * 
+ *   Author : Srikalyan Swayampakula. .
+ *   Name of the File : Include.java .
+ *   Created on : Nov 22, 2009 at 4:17:58 PM .
+ * 
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ * 
+ *  1. Redistributions of source code must retain the above
+ *     copyright notice, this list of conditions and the following
+ *     disclaimer.
+ *  2. Redistributions in binary form must reproduce the above
+ *     copyright notice, this list of conditions and the following
+ *     disclaimer in the documentation and/or other materials
+ *     provided with the distribution.
+ *  3. Neither the name of the University of Georgia nor the names
+ *     of its contributors may be used to endorse or promote
+ *     products derived from this software without specific prior
+ *     written permission.
+ * 
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ *  CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ *  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ *  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ *  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ *  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ *  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package lsdis;
+
+import java.net.URI;
+import java.util.List;
+
+/**
+ *
+ * @author Srikalyan Swayampakula.
+ */
+public class Include
+{
+
+    List<Doc> docs;
+    URI href;
+
+    public Include()
+    {
+    }
+
+    public Include(List<Doc> docs, URI href)
+    {
+        this.docs = docs;
+        this.href = href;
+    }
+
+    public List<Doc> getDocs()
+    {
+        return docs;
+    }
+
+    public void setDocs(List<Doc> docs)
+    {
+        this.docs = docs;
+    }
+
+    public URI getHref()
+    {
+        return href;
+    }
+
+    public void setHref(URI href)
+    {
+        this.href = href;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/src/lsdis/Link.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,105 @@
+/*
+ * Copyright (c) 2009 Srikalyan Swayampakula.. All rights reserved.
+ * 
+ *   Author : Srikalyan Swayampakula. .
+ *   Name of the File : Link.java .
+ *   Created on : Nov 22, 2009 at 4:54:49 PM .
+ * 
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ * 
+ *  1. Redistributions of source code must retain the above
+ *     copyright notice, this list of conditions and the following
+ *     disclaimer.
+ *  2. Redistributions in binary form must reproduce the above
+ *     copyright notice, this list of conditions and the following
+ *     disclaimer in the documentation and/or other materials
+ *     provided with the distribution.
+ *  3. Neither the name of the University of Georgia nor the names
+ *     of its contributors may be used to endorse or promote
+ *     products derived from this software without specific prior
+ *     written permission.
+ * 
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ *  CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ *  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ *  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ *  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ *  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ *  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package lsdis;
+
+import java.util.List;
+
+/**
+ *
+ * @author Srikalyan Swayampakula.
+ */
+public class Link
+{
+
+    private List<Doc> docs;
+    private String resource_type;
+    private String rel;
+    private String rev;
+
+    public Link(List<Doc> docs, String resource_type, String rel, String rev)
+    {
+        this.docs = docs;
+        this.resource_type = resource_type;
+        this.rel = rel;
+        this.rev = rev;
+    }
+
+    public Link()
+    {
+    }
+
+    public List<Doc> getDocs()
+    {
+        return docs;
+    }
+
+    public void setDocs(List<Doc> docs)
+    {
+        this.docs = docs;
+    }
+
+    public String getRel()
+    {
+        return rel;
+    }
+
+    public void setRel(String rel)
+    {
+        this.rel = rel;
+    }
+
+    public String getResource_type()
+    {
+        return resource_type;
+    }
+
+    public void setResource_type(String resource_type)
+    {
+        this.resource_type = resource_type;
+    }
+
+    public String getRev()
+    {
+        return rev;
+    }
+
+    public void setRev(String rev)
+    {
+        this.rev = rev;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/src/lsdis/Method.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,130 @@
+/*
+ * Copyright (c) 2009 Srikalyan Swayampakula.. All rights reserved.
+ *
+ *   Author : Srikalyan Swayampakula. .
+ *   Name of the File : Method.java .
+ *   Created on : Nov 22, 2009 at 4:04:55 PM .
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ *
+ *  1. Redistributions of source code must retain the above
+ *     copyright notice, this list of conditions and the following
+ *     disclaimer.
+ *  2. Redistributions in binary form must reproduce the above
+ *     copyright notice, this list of conditions and the following
+ *     disclaimer in the documentation and/or other materials
+ *     provided with the distribution.
+ *  3. Neither the name of the University of Georgia nor the names
+ *     of its contributors may be used to endorse or promote
+ *     products derived from this software without specific prior
+ *     written permission.
+ *
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ *  CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ *  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ *  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ *  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ *  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ *  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package lsdis;
+
+import java.net.URI;
+import java.util.List;
+
+/**
+ *
+ * @author Srikalyan Swayampakula.
+ */
+public class Method
+{
+
+    private List<Doc> docs;
+    private Request request;
+    private List<Response> response;
+    private String id;
+    private String name;
+    private URI href;
+
+    public Method()
+    {
+    }
+
+    public Method(List<Doc> docs, Request request, List<Response> response, String id, String name, URI href)
+    {
+        this.docs = docs;
+        this.request = request;
+        this.response = response;
+        this.id = id;
+        this.name = name;
+        this.href = href;
+    }
+
+    public List<Doc> getDocs()
+    {
+        return docs;
+    }
+
+    public void setDocs(List<Doc> docs)
+    {
+        this.docs = docs;
+    }
+
+    public URI getHref()
+    {
+        return href;
+    }
+
+    public void setHref(URI href)
+    {
+        this.href = href;
+    }
+
+    public String getId()
+    {
+        return id;
+    }
+
+    public void setId(String id)
+    {
+        this.id = id;
+    }
+
+    public String getName()
+    {
+        return name;
+    }
+
+    public void setName(String name)
+    {
+        this.name = name;
+    }
+
+    public Request getRequest()
+    {
+        return request;
+    }
+
+    public void setRequest(Request request)
+    {
+        this.request = request;
+    }
+
+    public List<Response> getResponse()
+    {
+        return response;
+    }
+
+    public void setResponse(List<Response> response)
+    {
+        this.response = response;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/src/lsdis/Option.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,93 @@
+/*
+ * Copyright (c) 2009 Srikalyan Swayampakula.. All rights reserved.
+ * 
+ *   Author : Srikalyan Swayampakula. .
+ *   Name of the File : Option.java .
+ *   Created on : Nov 22, 2009 at 4:53:33 PM .
+ * 
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ * 
+ *  1. Redistributions of source code must retain the above
+ *     copyright notice, this list of conditions and the following
+ *     disclaimer.
+ *  2. Redistributions in binary form must reproduce the above
+ *     copyright notice, this list of conditions and the following
+ *     disclaimer in the documentation and/or other materials
+ *     provided with the distribution.
+ *  3. Neither the name of the University of Georgia nor the names
+ *     of its contributors may be used to endorse or promote
+ *     products derived from this software without specific prior
+ *     written permission.
+ * 
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ *  CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ *  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ *  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ *  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ *  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ *  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package lsdis;
+
+import java.util.List;
+
+/**
+ *
+ * @author Srikalyan Swayampakula.
+ */
+public class Option
+{
+
+    private List<Doc> docs;
+    private String name;
+    private String mediaType;
+
+    public Option()
+    {
+    }
+
+    public Option(List<Doc> docs, String name, String mediaType)
+    {
+        this.docs = docs;
+        this.name = name;
+        this.mediaType = mediaType;
+    }
+
+    public List<Doc> getDocs()
+    {
+        return docs;
+    }
+
+    public void setDocs(List<Doc> docs)
+    {
+        this.docs = docs;
+    }
+
+    public String getMediaType()
+    {
+        return mediaType;
+    }
+
+    public void setMediaType(String mediaType)
+    {
+        this.mediaType = mediaType;
+    }
+
+    public String getName()
+    {
+        return name;
+    }
+
+    public void setName(String name)
+    {
+        this.name = name;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/src/lsdis/Param.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,213 @@
+/*
+ * Copyright (c) 2009 Srikalyan Swayampakula.. All rights reserved.
+ * 
+ *   Author : Srikalyan Swayampakula. .
+ *   Name of the File : Param.java .
+ *   Created on : Nov 22, 2009 at 4:03:57 PM .
+ * 
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ * 
+ *  1. Redistributions of source code must retain the above
+ *     copyright notice, this list of conditions and the following
+ *     disclaimer.
+ *  2. Redistributions in binary form must reproduce the above
+ *     copyright notice, this list of conditions and the following
+ *     disclaimer in the documentation and/or other materials
+ *     provided with the distribution.
+ *  3. Neither the name of the University of Georgia nor the names
+ *     of its contributors may be used to endorse or promote
+ *     products derived from this software without specific prior
+ *     written permission.
+ * 
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ *  CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ *  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ *  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ *  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ *  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ *  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package lsdis;
+
+import java.net.URI;
+import java.util.List;
+
+/**
+ *
+ * @author Srikalyan Swayampakula.
+ */
+public class Param
+{
+
+    private List<Doc> docs;
+    private List<Option> options;
+    private Link link;
+    private URI href;
+    private String name;
+    private String style;
+    private String id;
+    private String type;
+    private String default1;
+    private boolean required = false;
+    private boolean repeation = false;
+    private String fixed;
+    private String path;
+
+    public Param()
+    {
+    }
+
+    public Param(List<Doc> docs, List<Option> options, Link link, URI href, String name, String style, String id, String type, String default1, String fixed, String path,Boolean required)
+    {
+        this.docs = docs;
+        this.options = options;
+        this.link = link;
+        this.href = href;
+        this.name = name;
+        this.style = style;
+        this.id = id;
+        this.type = type;
+        this.default1 = default1;
+        this.fixed = fixed;
+        this.path = path;
+        this.required = required;
+    }
+
+    public String getDefault1()
+    {
+        return default1;
+    }
+
+    public void setDefault1(String default1)
+    {
+        this.default1 = default1;
+    }
+
+    public List<Doc> getDocs()
+    {
+        return docs;
+    }
+
+    public void setDocs(List<Doc> docs)
+    {
+        this.docs = docs;
+    }
+
+    public String getFixed()
+    {
+        return fixed;
+    }
+
+    public void setFixed(String fixed)
+    {
+        this.fixed = fixed;
+    }
+
+    public URI getHref()
+    {
+        return href;
+    }
+
+    public void setHref(URI href)
+    {
+        this.href = href;
+    }
+
+    public String getId()
+    {
+        return id;
+    }
+
+    public void setId(String id)
+    {
+        this.id = id;
+    }
+
+    public Link getLink()
+    {
+        return link;
+    }
+
+    public void setLink(Link link)
+    {
+        this.link = link;
+    }
+
+    public String getName()
+    {
+        return name;
+    }
+
+    public void setName(String name)
+    {
+        this.name = name;
+    }
+
+    public List<Option> getOptions()
+    {
+        return options;
+    }
+
+    public void setOptions(List<Option> options)
+    {
+        this.options = options;
+    }
+
+    public String getPath()
+    {
+        return path;
+    }
+
+    public void setPath(String path)
+    {
+        this.path = path;
+    }
+
+    public boolean isRepeation()
+    {
+        return repeation;
+    }
+
+    public void setRepeation(boolean repeation)
+    {
+        this.repeation = repeation;
+    }
+
+    public boolean isRequired()
+    {
+        return required;
+    }
+
+    public void setRequired(boolean required)
+    {
+        this.required = required;
+    }
+
+    public String getStyle()
+    {
+        return style;
+    }
+
+    public void setStyle(String style)
+    {
+        this.style = style;
+    }
+
+    public String getType()
+    {
+        return type;
+    }
+
+    public void setType(String type)
+    {
+        this.type = type;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/src/lsdis/Representation.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,142 @@
+/*
+ * Copyright (c) 2009 Srikalyan Swayampakula.. All rights reserved.
+ * 
+ *   Author : Srikalyan Swayampakula. .
+ *   Name of the File : Representation.java .
+ *   Created on : Nov 22, 2009 at 4:40:18 PM .
+ * 
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ * 
+ *  1. Redistributions of source code must retain the above
+ *     copyright notice, this list of conditions and the following
+ *     disclaimer.
+ *  2. Redistributions in binary form must reproduce the above
+ *     copyright notice, this list of conditions and the following
+ *     disclaimer in the documentation and/or other materials
+ *     provided with the distribution.
+ *  3. Neither the name of the University of Georgia nor the names
+ *     of its contributors may be used to endorse or promote
+ *     products derived from this software without specific prior
+ *     written permission.
+ * 
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ *  CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ *  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ *  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ *  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ *  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ *  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package lsdis;
+
+import java.net.URI;
+import java.util.List;
+
+/**
+ *
+ * @author Srikalyan Swayampakula.
+ */
+public class Representation
+{
+
+    private List<Doc> docs;
+    private List<Param> params;
+    private String id;
+    private String element;
+    private String mediaType;
+    private URI href;
+    private String profile;
+
+    public Representation()
+    {
+    }
+
+    public Representation(List<Doc> docs, List<Param> params, String id, String element, String mediaType, URI href, String profile)
+    {
+        this.docs = docs;
+        this.params = params;
+        this.id = id;
+        this.element = element;
+        this.mediaType = mediaType;
+        this.href = href;
+        this.profile = profile;
+    }
+
+    public List<Doc> getDocs()
+    {
+        return docs;
+    }
+
+    public void setDocs(List<Doc> docs)
+    {
+        this.docs = docs;
+    }
+
+    public String getElement()
+    {
+        return element;
+    }
+
+    public void setElement(String element)
+    {
+        this.element = element;
+    }
+
+    public URI getHref()
+    {
+        return href;
+    }
+
+    public void setHref(URI href)
+    {
+        this.href = href;
+    }
+
+    public String getId()
+    {
+        return id;
+    }
+
+    public void setId(String id)
+    {
+        this.id = id;
+    }
+
+    public String getMediaType()
+    {
+        return mediaType;
+    }
+
+    public void setMediaType(String mediaType)
+    {
+        this.mediaType = mediaType;
+    }
+
+    public List<Param> getParams()
+    {
+        return params;
+    }
+
+    public void setParams(List<Param> params)
+    {
+        this.params = params;
+    }
+
+    public String getProfile()
+    {
+        return profile;
+    }
+
+    public void setProfile(String profile)
+    {
+        this.profile = profile;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/src/lsdis/Request.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,93 @@
+/*
+ * Copyright (c) 2009 Srikalyan Swayampakula.. All rights reserved.
+ * 
+ *   Author : Srikalyan Swayampakula. .
+ *   Name of the File : Request.java .
+ *   Created on : Nov 22, 2009 at 4:28:48 PM .
+ * 
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ * 
+ *  1. Redistributions of source code must retain the above
+ *     copyright notice, this list of conditions and the following
+ *     disclaimer.
+ *  2. Redistributions in binary form must reproduce the above
+ *     copyright notice, this list of conditions and the following
+ *     disclaimer in the documentation and/or other materials
+ *     provided with the distribution.
+ *  3. Neither the name of the University of Georgia nor the names
+ *     of its contributors may be used to endorse or promote
+ *     products derived from this software without specific prior
+ *     written permission.
+ * 
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ *  CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ *  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ *  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ *  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ *  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ *  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package lsdis;
+
+import java.util.List;
+
+/**
+ *
+ * @author Srikalyan Swayampakula.
+ */
+public class Request
+{
+
+    private List<Doc> docs;
+    private List<Param> params;
+    private List<Representation> representations;
+
+    public Request(List<Doc> docs, List<Param> params, List<Representation> representations)
+    {
+        this.docs = docs;
+        this.params = params;
+        this.representations = representations;
+    }
+
+    public Request()
+    {
+    }
+
+    public List<Doc> getDocs()
+    {
+        return docs;
+    }
+
+    public void setDocs(List<Doc> docs)
+    {
+        this.docs = docs;
+    }
+
+    public List<Param> getParams()
+    {
+        return params;
+    }
+
+    public void setParams(List<Param> params)
+    {
+        this.params = params;
+    }
+
+    public List<Representation> getRepresentations()
+    {
+        return representations;
+    }
+
+    public void setRepresentations(List<Representation> representations)
+    {
+        this.representations = representations;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/src/lsdis/Resource.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,149 @@
+/*
+ * Copyright (c) 2009 Srikalyan Swayampakula.. All rights reserved.
+ * 
+ *   Author : Srikalyan Swayampakula. .
+ *   Name of the File : Resource.java .
+ *   Created on : Nov 22, 2009 at 3:22:09 PM .
+ * 
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ * 
+ *  1. Redistributions of source code must retain the above
+ *     copyright notice, this list of conditions and the following
+ *     disclaimer.
+ *  2. Redistributions in binary form must reproduce the above
+ *     copyright notice, this list of conditions and the following
+ *     disclaimer in the documentation and/or other materials
+ *     provided with the distribution.
+ *  3. Neither the name of the University of Georgia nor the names
+ *     of its contributors may be used to endorse or promote
+ *     products derived from this software without specific prior
+ *     written permission.
+ * 
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ *  CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ *  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ *  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ *  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ *  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ *  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package lsdis;
+
+import java.util.List;
+
+/**
+ *
+ * @author Srikalyan Swayampakula.
+ */
+public class Resource
+{
+
+    public static final String QUERY_TYPE_DEFAULT = "application/x-www-form-urlencoded";
+    private List<Doc> docs;
+    private List<Param> params;
+    private List<Method> methods;
+    private List<Resource> resources;
+    private String id;
+    private String queryType;
+    private String path;
+
+    public Resource()
+    {
+    }
+
+    public Resource(List<Doc> docs, List<Param> params, List<Method> methods, List<Resource> resources, String id, String queryType, String path)
+    {
+        this.docs = docs;
+        this.params = params;
+        this.methods = methods;
+        this.resources = resources;
+        this.id = id;
+        if (queryType != null)
+        {
+            this.queryType = queryType;
+        }
+        else
+        {
+            queryType = QUERY_TYPE_DEFAULT;
+        }
+        this.path = path;
+    }
+
+    public List<Doc> getDocs()
+    {
+        return docs;
+    }
+
+    public void setDocs(List<Doc> docs)
+    {
+        this.docs = docs;
+    }
+
+    public String getId()
+    {
+        return id;
+    }
+
+    public void setId(String id)
+    {
+        this.id = id;
+    }
+
+    public List<Method> getMethods()
+    {
+        return methods;
+    }
+
+    public void setMethods(List<Method> methods)
+    {
+        this.methods = methods;
+    }
+
+    public List<Param> getParams()
+    {
+        return params;
+    }
+
+    public void setParams(List<Param> params)
+    {
+        this.params = params;
+    }
+
+    public String getPath()
+    {
+        return path;
+    }
+
+    public void setPath(String path)
+    {
+        this.path = path;
+    }
+
+    public String getQueryType()
+    {
+        return queryType;
+    }
+
+    public void setQueryType(String queryType)
+    {
+        this.queryType = queryType;
+    }
+
+    public List<Resource> getResources()
+    {
+        return resources;
+    }
+
+    public void setResources(List<Resource> resources)
+    {
+        this.resources = resources;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/src/lsdis/Resources.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,94 @@
+/*
+ * Copyright (c) 2009 Srikalyan Swayampakula.. All rights reserved.
+ * 
+ *   Author : Srikalyan Swayampakula. .
+ *   Name of the File : Resources.java .
+ *   Created on : Nov 22, 2009 at 3:28:58 PM .
+ * 
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ * 
+ *  1. Redistributions of source code must retain the above
+ *     copyright notice, this list of conditions and the following
+ *     disclaimer.
+ *  2. Redistributions in binary form must reproduce the above
+ *     copyright notice, this list of conditions and the following
+ *     disclaimer in the documentation and/or other materials
+ *     provided with the distribution.
+ *  3. Neither the name of the University of Georgia nor the names
+ *     of its contributors may be used to endorse or promote
+ *     products derived from this software without specific prior
+ *     written permission.
+ * 
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ *  CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ *  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ *  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ *  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ *  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ *  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package lsdis;
+
+import java.net.URI;
+import java.util.List;
+
+/**
+ *
+ * @author Srikalyan Swayampakula.
+ */
+public class Resources
+{
+
+    private List<Doc> docs;
+    private List<Resource> resources;
+    private URI base;
+
+    public Resources()
+    {
+    }
+
+    public Resources(List<Doc> docs, List<Resource> resources, URI base)
+    {
+        this.docs = docs;
+        this.resources = resources;
+        this.base = base;
+    }
+
+    public URI getBase()
+    {
+        return base;
+    }
+
+    public void setBase(URI base)
+    {
+        this.base = base;
+    }
+
+    public List<Doc> getDocs()
+    {
+        return docs;
+    }
+
+    public void setDocs(List<Doc> docs)
+    {
+        this.docs = docs;
+    }
+
+    public List<Resource> getResources()
+    {
+        return resources;
+    }
+
+    public void setResources(List<Resource> resources)
+    {
+        this.resources = resources;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/src/lsdis/Response.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,105 @@
+/*
+ * Copyright (c) 2009 Srikalyan Swayampakula.. All rights reserved.
+ * 
+ *   Author : Srikalyan Swayampakula. .
+ *   Name of the File : Response.java .
+ *   Created on : Nov 22, 2009 at 4:28:56 PM .
+ * 
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ * 
+ *  1. Redistributions of source code must retain the above
+ *     copyright notice, this list of conditions and the following
+ *     disclaimer.
+ *  2. Redistributions in binary form must reproduce the above
+ *     copyright notice, this list of conditions and the following
+ *     disclaimer in the documentation and/or other materials
+ *     provided with the distribution.
+ *  3. Neither the name of the University of Georgia nor the names
+ *     of its contributors may be used to endorse or promote
+ *     products derived from this software without specific prior
+ *     written permission.
+ * 
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ *  CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ *  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ *  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ *  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ *  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ *  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package lsdis;
+
+import java.util.List;
+
+/**
+ *
+ * @author Srikalyan Swayampakula.
+ */
+public class Response
+{
+
+    private List<Doc> docs;
+    private List<Param> params;
+    private List<Representation> representations;
+    private int status;
+
+    public Response()
+    {
+    }
+
+    public Response(List<Doc> docs, List<Param> params, List<Representation> representations, int status)
+    {
+        this.docs = docs;
+        this.params = params;
+        this.representations = representations;
+        this.status = status;
+    }
+
+    public List<Doc> getDocs()
+    {
+        return docs;
+    }
+
+    public void setDocs(List<Doc> docs)
+    {
+        this.docs = docs;
+    }
+
+    public List<Param> getParams()
+    {
+        return params;
+    }
+
+    public void setParams(List<Param> params)
+    {
+        this.params = params;
+    }
+
+    public List<Representation> getRepresentations()
+    {
+        return representations;
+    }
+
+    public void setRepresentations(List<Representation> representations)
+    {
+        this.representations = representations;
+    }
+
+    public int getStatus()
+    {
+        return status;
+    }
+
+    public void setStatus(int status)
+    {
+        this.status = status;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/src/lsdis/WADLConstant.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,95 @@
+/*
+ * Copyright (c) 2009 Srikalyan Swayampakula.. All rights reserved.
+ * 
+ *   Author : Srikalyan Swayampakula. .
+ *   Name of the File : WADLConstant.java .
+ *   Created on : Nov 22, 2009 at 3:22:02 PM .
+ * 
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ * 
+ *  1. Redistributions of source code must retain the above
+ *     copyright notice, this list of conditions and the following
+ *     disclaimer.
+ *  2. Redistributions in binary form must reproduce the above
+ *     copyright notice, this list of conditions and the following
+ *     disclaimer in the documentation and/or other materials
+ *     provided with the distribution.
+ *  3. Neither the name of the University of Georgia nor the names
+ *     of its contributors may be used to endorse or promote
+ *     products derived from this software without specific prior
+ *     written permission.
+ * 
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ *  CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ *  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ *  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ *  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ *  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ *  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package lsdis;
+
+/**
+ *
+ * @author Srikalyan Swayampakula.
+ */
+public class WADLConstant
+{
+
+    public static final String XSI = "http://www.w3.org/2001/XMLSchema-instance";
+    public static final String XSD = "http://www.w3.org/2001/XMLSchema";
+    public static final String APPLICATION = "application";
+    public static final String DOC = "doc";
+    public static final String DOC_TITLE = "title";
+    public static final String DOC_LANG="lang";
+    public static final String GRAMMAR = "grammars";
+    public static final String INCLUDE = "include";
+    public static final String INCLUDE_HREF="href";
+    public static final String RESOURCES = "resources";
+    public static final String RESOURCES_BASE = "base";
+    public static final String RESOURCE = "resource";
+    public static final String RESOURCE_ID = "id";
+    public static final String RESOURCE_TYPE = "type";
+    public static final String RESOURCE_QUERY_TYPE = "queryType";
+    public static final String RESOURCE_PATH = "path";
+    public static final String METHOD = "method";
+    public static final String METHOD_ID = "id";
+    public static final String METHOD_NAME = "name";
+    public static final String METHOD_HREF = "href";
+    public static final String REQUEST = "request";
+    public static final String RESPONSE = "response";
+    public static final String RESPONSE_STATUS = "status";
+    public static final String REPRESENTATION = "representation";
+    public static final String REPRESENTATION_ID="id";
+    public static final String REPRESENTATION_ELEMENT="element";
+    public static final String REPRESENTATION_MEDIA_TYPE="mediaType";
+    public static final String REPRESENTATION_HREF="href";
+    public static final String REPRESENTATION_PROFILE="profile";
+    public static final String PARAM="param";
+    public static final String PARAM_HREF="href";
+    public static final String PARAM_NAME="name";
+    public static final String PARAM_STYLE="style";
+    public static final String PARAM_ID="id";
+    public static final String PARAM_TYPE="type";
+    public static final String PARAM_DEFAULT="default";
+    public static final String PARAM_REQUIRED="required";
+    public static final String PARAM_REPEATING="repeating";
+    public static final String PARAM_FIXED="fixed";
+    public static final String PARAM_PATH="path";
+    public static final String OPTION="option";
+    public static final String OPTION_VALUE="value";
+    public static final String OPTION_MEDIA_TYPE="mediaType";
+    public static final String LINK="link";
+    public static final String LINK_RESOURCE_TYPE="resource_type";
+    public static final String LINK_REL="rel";
+    public static final String LINK_REV="rev";
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/src/lsdis/WADLParser.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,531 @@
+/*
+ * Copyright (c) 2009 Srikalyan Swayampakula.. All rights reserved.
+ * 
+ *   Author : Srikalyan Swayampakula. .
+ *   Name of the File : WADLParser.java .
+ *   Created on : Nov 22, 2009 at 5:30:47 PM .
+ * 
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ * 
+ *  1. Redistributions of source code must retain the above
+ *     copyright notice, this list of conditions and the following
+ *     disclaimer.
+ *  2. Redistributions in binary form must reproduce the above
+ *     copyright notice, this list of conditions and the following
+ *     disclaimer in the documentation and/or other materials
+ *     provided with the distribution.
+ *  3. Neither the name of the University of Georgia nor the names
+ *     of its contributors may be used to endorse or promote
+ *     products derived from this software without specific prior
+ *     written permission.
+ * 
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ *  CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ *  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ *  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ *  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ *  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ *  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package lsdis;
+
+import java.io.File;
+import java.net.URI;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
+import org.jdom.Attribute;
+import org.jdom.Document;
+import org.jdom.Element;
+import org.jdom.Namespace;
+import org.jdom.input.SAXBuilder;
+import org.xml.sax.Attributes;
+
+/**
+ *
+ * @author Srikalyan Swayampakula.
+ */
+public class WADLParser
+{
+
+    static Document currentDocument;
+    static Element rootElement;
+    static Namespace wadlNamespace;
+    public Application application;
+
+    public WADLParser(URL fileURL) throws Exception
+    {
+        currentDocument = generateDocumentation(fileURL);
+        rootElement = currentDocument.getRootElement();
+        wadlNamespace = rootElement.getNamespace();
+        application = getApplication();
+    }
+    
+    public Application getApplicationOfWADL()
+    {
+        return application;
+    }
+
+    private Document generateDocumentation(URL fileName) throws Exception
+    {
+        Document doc = null;
+        SAXBuilder builder = new SAXBuilder();
+        //doc = builder.build(new File(fileName.toURI()));
+        doc = builder.build(fileName);
+        return doc;
+    }
+
+    private Application getApplication() throws Exception
+    {
+        List<Doc> docs = getDocs(rootElement);
+        List<Resources> resources = getResources(rootElement);
+        Grammar grammar = getGrammar(rootElement);
+        return new Application(resources, docs, grammar, null);
+    }
+
+    /***
+     * used to get docs list for an element eg. applicaiton.
+     * @param e
+     * @return
+     */
+    private List<Doc> getDocs(Element e)
+    {
+        if (e == null)
+        {
+            return null;
+        }
+        List<Doc> docs = null;
+        List<Element> xmlDoc = e.getChildren(WADLConstant.DOC, wadlNamespace);
+        if (xmlDoc != null)
+        {
+            docs = new ArrayList<Doc>();
+            for (Element e1 : xmlDoc)
+            {
+                Doc tempDoc = getDoc(e1);
+                if (tempDoc != null)
+                {
+                    docs.add(tempDoc);
+                }
+            }
+        }
+        return docs;
+    }
+
+    private Doc getDoc(Element e)
+    {
+        if (e == null)
+        {
+            return null;
+        }
+        String title = e.getAttributeValue(WADLConstant.DOC_TITLE);
+
+        String lang = e.getAttributeValue(WADLConstant.DOC_LANG);
+        if (lang == null)
+        {
+            List<Attribute> temp = e.getAttributes();
+            for (Attribute temp1 : temp)
+            {
+                if((temp1.getName()).equals(WADLConstant.DOC_LANG))
+                    lang=temp1.getValue();
+            }
+        }
+        String innerText = e.getText();
+        return new Doc(title, lang, innerText);
+    }
+
+    private Grammar getGrammar(Element e) throws Exception
+    {
+        if (e == null)
+        {
+            return null;
+        }
+        List<Doc> docs = getDocs(e);
+        List<Include> includes = getIncludes(e);
+        return new Grammar(docs, includes);
+    }
+
+    private List<Include> getIncludes(Element e) throws Exception
+    {
+        if (e == null)
+        {
+            return null;
+        }
+        List<Include> includes = null;
+        List<Element> xmlIncludes = e.getChildren(WADLConstant.INCLUDE, wadlNamespace);
+        if (xmlIncludes != null)
+        {
+            includes = new ArrayList<Include>();
+            for (Element xmlInclude : xmlIncludes)
+            {
+                Include tempInclude = getInclude(xmlInclude);
+                if (tempInclude != null)
+                {
+                    includes.add(tempInclude);
+                }
+            }
+        }
+        return includes;
+    }
+
+    private Include getInclude(Element e) throws Exception
+    {
+        if (e == null)
+        {
+            return null;
+        }
+        List<Doc> docs = getDocs(e);
+        URI href = null;
+        String tempHref = e.getAttributeValue(WADLConstant.INCLUDE_HREF);
+        if (tempHref != null)
+        {
+            href = new URI(tempHref);
+        }
+        return new Include(docs, href);
+    }
+
+    private List<Resources> getResources(Element e) throws Exception
+    {
+        if (e == null)
+        {
+            return null;
+        }
+
+        List<Resources> resources = null;
+        List<Element> xmlResources = e.getChildren(WADLConstant.RESOURCES, wadlNamespace);
+        if (xmlResources != null)
+        {
+            resources = new ArrayList<Resources>();
+            for (Element tempResources : xmlResources)
+            {
+                Resources tempResource = getResourcesInstance(tempResources);
+                if (tempResource != null)
+                {
+                    resources.add(tempResource);
+                }
+            }
+        }
+
+        return resources;
+
+    }
+
+    private Resources getResourcesInstance(Element e) throws Exception
+    {
+        if (e == null)
+        {
+            return null;
+        }
+        String tempBase = e.getAttributeValue(WADLConstant.RESOURCES_BASE);//, wadlNamespace);
+        URI base = null;
+        if (tempBase != null)
+        {
+            base = new URI(tempBase);
+        }
+        List<Doc> docs = getDocs(e);
+        List<Resource> subResources = getSubResources(e);
+        return new Resources(docs, subResources, base);
+    }
+
+    private List<Resource> getSubResources(Element e) throws Exception
+    {
+        if (e == null)
+        {
+            return null;
+
+        }
+        List<Resource> subResources = null;
+        List<Element> xmlSubResources = e.getChildren(WADLConstant.RESOURCE, wadlNamespace);
+        if (xmlSubResources != null)
+        {
+            subResources = new ArrayList<Resource>();
+            for (Element xmlSubResource : xmlSubResources)
+            {
+                Resource subResource = getSubResource(xmlSubResource);
+                if (subResource != null)
+                {
+                    subResources.add(subResource);
+                }
+            }
+        }
+
+        return subResources;
+
+    }
+
+    private Resource getSubResource(Element e) throws Exception
+    {
+        if (e == null)
+        {
+            return null;
+        }
+        List<Doc> docs = getDocs(e);
+        List<Param> params = getParams(e);
+        List<Method> methods = getMethods(e);
+        List<Resource> resources = getSubResources(e);
+        String id = e.getAttributeValue(WADLConstant.RESOURCE_ID);//, wadlNamespace);
+        String queryType = e.getAttributeValue(WADLConstant.RESOURCE_QUERY_TYPE);//, wadlNamespace);
+        String path = e.getAttributeValue(WADLConstant.RESOURCE_PATH);
+        //System.out.println("the path is " + path + " wadlNampeSpace is " + wadlNamespace);
+        return new Resource(docs, params, methods, resources, id, queryType, path);
+    }
+
+    private List<Param> getParams(Element e) throws Exception
+    {
+        if (e == null)
+        {
+            return null;
+
+        }
+        List<Param> params = null;
+        List<Element> xmlParams = e.getChildren(WADLConstant.PARAM, wadlNamespace);
+        if (xmlParams != null)
+        {
+            params = new ArrayList<Param>();
+            for (Element xmlParam : xmlParams)
+            {
+                Param param = getParam(xmlParam);
+                if (param != null)
+                {
+                    params.add(param);
+
+                }
+            }
+        }
+        return params;
+    }
+
+    private Param getParam(Element e) throws Exception
+    {
+        if (e == null)
+        {
+            return null;
+        }
+        List<Doc> docs = getDocs(e);
+        List<Option> options = getOptions(e);
+        Link link = getLink(e.getChild(WADLConstant.LINK, wadlNamespace));
+        String tempHref = e.getAttributeValue(WADLConstant.PARAM_HREF);//, wadlNamespace);
+        URI href = null;
+        if (tempHref != null)
+        {
+            href = new URI(tempHref);
+        }
+        String name = e.getAttributeValue(WADLConstant.PARAM_NAME);//, wadlNamespace);
+        String style = e.getAttributeValue(WADLConstant.PARAM_STYLE);//, wadlNamespace);
+        String id = e.getAttributeValue(WADLConstant.PARAM_ID);//, wadlNamespace);
+        String type = e.getAttributeValue(WADLConstant.PARAM_TYPE);//, wadlNamespace);
+        String default1 = e.getAttributeValue(WADLConstant.PARAM_DEFAULT);//, wadlNamespace);
+        String tempRequired = e.getAttributeValue(WADLConstant.PARAM_REQUIRED);//, wadlNamespace);
+        boolean required = false;
+        if (tempRequired != null)
+        {
+            required = Boolean.valueOf(tempRequired);
+        }
+        String tempRepeating = e.getAttributeValue(WADLConstant.PARAM_REPEATING);//, wadlNamespace);
+        boolean repeating = false;
+        if (tempRepeating != null)
+        {
+            repeating = Boolean.valueOf(tempRepeating);
+        }
+        String fixed = e.getAttributeValue(WADLConstant.PARAM_FIXED);//, wadlNamespace);
+        String path = e.getAttributeValue(WADLConstant.PARAM_PATH);//, wadlNamespace);
+        return new Param(docs, options, link, href, name, style, id, type, default1, fixed, path,required);
+    }
+
+    private List<Option> getOptions(Element e)
+    {
+        System.out.println(e.getName());
+    	if (e == null)
+        {
+            return null;
+        }
+        List<Option> options = null;
+        List<Element> xmlOptions = e.getChildren(WADLConstant.OPTION, wadlNamespace);
+        if (xmlOptions != null)
+        {
+            options = new ArrayList<Option>();
+            for (Element xmlOption : xmlOptions)
+            {
+                Option option = getOption(xmlOption);
+                if (option != null)
+                {
+                    options.add(option);
+                }
+            }
+        }
+        return options;
+    }
+
+    private Option getOption(Element e)
+    {
+        if (e == null)
+        {
+            return null;
+        }
+        List<Doc> docs = getDocs(e);
+        String value = e.getAttributeValue(WADLConstant.OPTION_VALUE);//, wadlNamespace);
+        String mediaType = e.getAttributeValue(WADLConstant.OPTION_MEDIA_TYPE);//, wadlNamespace);
+        return new Option(docs, value, mediaType);
+    }
+
+    private Link getLink(Element e)
+    {
+        if (e == null)
+        {
+            return null;
+        }
+        List<Doc> docs = getDocs(e);
+        String resourceType = e.getAttributeValue(WADLConstant.LINK_RESOURCE_TYPE);//, wadlNamespace);
+        String rel = e.getAttributeValue(WADLConstant.LINK_REL);//, wadlNamespace);
+        String rev = e.getAttributeValue(WADLConstant.LINK_REV);//, wadlNamespace);
+        return new Link(docs, resourceType, rel, rev);
+    }
+
+    private List<Method> getMethods(Element e) throws Exception
+    {
+        if (e == null)
+        {
+            return null;
+        }
+        List<Method> methods = null;
+        List<Element> xmlMethods = e.getChildren(WADLConstant.METHOD, wadlNamespace);
+        if (xmlMethods != null)
+        {
+            methods = new ArrayList<Method>();
+            for (Element xmlMethod : xmlMethods)
+            {
+                Method method = getMethod(xmlMethod);
+                if (method != null)
+                {
+                    methods.add(method);
+                }
+            }
+        }
+        return methods;
+    }
+
+    private Method getMethod(Element e) throws Exception
+    {
+        if (e == null)
+        {
+            return null;
+        }
+        List<Doc> docs = getDocs(e);
+        Request request = getRequest(e.getChild(WADLConstant.REQUEST, wadlNamespace));
+        List<Response> responses = getResponses(e);
+        String id = e.getAttributeValue(WADLConstant.METHOD_ID);//, wadlNamespace);
+        String tempHref = e.getAttributeValue(WADLConstant.METHOD_HREF);//, wadlNamespace);
+        URI href = null;
+        if (tempHref != null)
+        {
+            href = new URI(tempHref);
+        }
+        String name = e.getAttributeValue(WADLConstant.METHOD_NAME);//, wadlNamespace);
+        return new Method(docs, request, responses, id, name, href);
+    }
+
+    private Request getRequest(Element e) throws Exception
+    {
+        if (e == null)
+        {
+            return null;
+        }
+        List<Doc> docs = getDocs(e);
+        List<Param> params = getParams(e);
+        List<Representation> representations = getRepresentations(e);
+        return new Request(docs, params, representations);
+    }
+
+    private List<Representation> getRepresentations(Element e) throws Exception
+    {
+        if (e == null)
+        {
+            return null;
+        }
+        List<Representation> representations = null;
+        List<Element> xmlRepresentations = e.getChildren(WADLConstant.REPRESENTATION, wadlNamespace);
+        if (xmlRepresentations != null)
+        {
+            representations = new ArrayList<Representation>();
+            for (Element xmlRepresentation : xmlRepresentations)
+            {
+                Representation representation = getRepresentation(e);
+                if (representation != null)
+                {
+                    representations.add(representation);
+                }
+            }
+        }
+        return representations;
+    }
+
+    private Representation getRepresentation(Element e) throws Exception
+    {
+        if (e == null)
+        {
+            return null;
+        }
+        List<Doc> docs = getDocs(e);
+        List<Param> params = getParams(e);
+        String id = e.getAttributeValue(WADLConstant.REPRESENTATION_ID);//, wadlNamespace);
+        String element = e.getAttributeValue(WADLConstant.REPRESENTATION_ELEMENT);//, wadlNamespace);
+        String mediaType = e.getAttributeValue(WADLConstant.REPRESENTATION_MEDIA_TYPE);//, wadlNamespace);
+        String tempHref = e.getAttributeValue(WADLConstant.REPRESENTATION_HREF);//, wadlNamespace);
+        URI href = null;
+        if (tempHref != null)
+        {
+            href = new URI(tempHref);
+        }
+        String profile = e.getAttributeValue(WADLConstant.REPRESENTATION_PROFILE);//, wadlNamespace);
+        return new Representation(docs, params, id, element, mediaType, href, profile);
+    }
+
+    private List<Response> getResponses(Element e) throws Exception
+    {
+        if (e == null)
+        {
+            return null;
+        }
+        List<Response> responses = null;
+        List<Element> xmlResponses = e.getChildren(WADLConstant.RESPONSE, wadlNamespace);
+        if (xmlResponses != null)
+        {
+            responses = new ArrayList<Response>();
+            for (Element xmlResponse : xmlResponses)
+            {
+                Response response = getResponse(e);
+                if (response != null)
+                {
+                    responses.add(response);
+                }
+            }
+        }
+        return responses;
+    }
+
+    private Response getResponse(Element e) throws Exception
+    {
+        if (e == null)
+        {
+            return null;
+        }
+        List<Doc> docs = getDocs(e);
+        List<Param> params = getParams(e);
+        List<Representation> representations = getRepresentations(e);
+        String tempStatus = e.getAttributeValue(WADLConstant.RESPONSE_STATUS);//, wadlNamespace);
+        int status = -1;
+        if (tempStatus != null)
+        {
+            status = Integer.parseInt(tempStatus);
+        }
+        return new Response(docs, params, representations, status);
+
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/src/lsdis/WADLParserDriver.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,274 @@
+package lsdis;
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import lsdis.*;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+	/*
+	 * generate url's and param names
+	 */
+
+public class WADLParserDriver {
+	
+	 
+	// private  List<List<String>> paramNames = new ArrayList<List<String>>();
+	 private  List<Method> definedMethods = new ArrayList<Method>();
+	
+	 private  int count = 0;
+	 private  List<Method> crossReferencedMethods = new ArrayList<Method>();
+	 private  List<String> crossReferencedMethodURLS = new ArrayList<String>();
+	
+	 private List<Method> completeMethodList = new ArrayList<Method>();
+	 private  List<String> url = new ArrayList<String>();
+	 
+	 
+	 public List<Method> getCompleteMethodList() {
+		return completeMethodList;
+	 }
+
+	public List<String> getUrl() {
+		return url;
+	 }
+
+	
+	 
+	public static void main(String[] args) throws Exception {
+
+	WADLParserDriver mpw = new WADLParserDriver();
+	//mpw.parse(new URL("http://cs.uga.edu/~ganjoo/galaxy/DDBJNCBIGenomeAnnotationGetGeneList.wadl"));
+	mpw.parse(new URL("http://eupathdb.org/webservices/GeneQuestions/GenesByMolecularWeight.wadl"));
+	mpw.displayInfo();
+	
+	}
+	
+	public void parse(URL fileURL) throws Exception {
+		int i=0;
+		
+				
+		
+		//URL fileURL = new URL("http://www.eupathdb.org/webservices/GeneQuestions/GenesByMolecularWeight.wadl");
+		
+		WADLParser wadlP = new WADLParser(fileURL);
+		
+		Application app= new Application();
+	    app=wadlP.getApplicationOfWADL();
+		
+	    String temp = "";
+	    String tempHref="";
+	    
+	    for(Resources resources : app.getResources()){
+	    	temp = resources.getBase().toString();
+	    	//traverseSubResources(temp, resources);
+	    	System.out.println(temp);
+	    	for(Resource resource : resources.getResources()){
+	    		
+	    		temp = temp + resource.getPath();
+	    		traverseResource(temp, resource);
+	    		//traverseSubResources(temp, resource);
+	    		System.out.println("resource path"+resource.getPath());
+	    		if(resource.getParams()!=null && resource.getParams().size()!=0){
+	    			for(Param param: resource.getParams()){
+	    				System.out.println("params "+ param);
+	    			}
+	    		}
+	    		
+	    		
+	    	}
+	    		
+	    }
+	  
+	    traverseCrossReferencedMethods();
+	    displayInfo();
+	    
+	}//end main
+
+	
+	public void traverseSubResources(String passedString,Resource resource){
+				
+				
+		
+				
+		for(Resource subResource : resource.getResources()){
+			
+			String temp = passedString;
+			
+			if(temp.charAt(temp.length()-1) != '/')
+				temp += "/";
+			temp += subResource.getPath();
+			
+//			if(subResource.getParams()!=null && subResource.getParams().size()!=0){
+//    			for(Param param: subResource.getParams()){
+//    				if(param.getStyle().equalsIgnoreCase("template")){
+//    					System.out.println("params "+ param.getName());
+//    					temp=temp+"/{"+param.getName()+"}";
+//    				}
+//    			}
+//    		}
+			
+			//start
+			
+    				    		
+    		for(Method method : subResource.getMethods()){
+    			if(method.getId() != null){
+    				url.add(count, temp);
+    				definedMethods.add(method);
+    				
+    				completeMethodList.add(count,method);
+    				
+    				count++;
+    			}
+    			else if(method.getHref()!=null){	//will work only for intra-document cross-reference currently
+
+    				crossReferencedMethods.add(method);
+    				crossReferencedMethodURLS.add(temp);
+
+    			}
+    			else{
+    			
+    				System.out.println("ERROR : Method " + method.getName() + " does not have an id or a href !!" );
+    			}
+    		}
+						
+		
+		traverseSubResources(temp, subResource);
+			
+		}//end for
+			
+	}//end method
+	
+	public void traverseResource(String passedString,Resource resource){
+		
+		
+		
+		String temp = passedString ;
+				
+			//start
+			
+    				    		
+    		for(Method method : resource.getMethods()){
+    			if(method.getId() != null){
+    				url.add(count, temp);
+    				definedMethods.add(method);
+    				
+    				completeMethodList.add(count,method);
+    				
+    				count++;
+    			}
+    			else if(method.getHref()!=null){	//will work only for intra-document cross-reference currently
+
+    				crossReferencedMethods.add(method);
+    				crossReferencedMethodURLS.add(temp);
+
+    			}
+    			else{
+    			
+    				System.out.println("ERROR : Method " + method.getName() + " does not have an id or a href !!" );
+    			}
+    		}
+						
+		
+		traverseSubResources(temp, resource);
+						
+	}//end method
+	
+	public void traverseCrossReferencedMethods(){
+		int i =0;
+		String tempHref = "";
+		
+		for(Method method : crossReferencedMethods){
+		
+			url.add(count, crossReferencedMethodURLS.get(i));
+			
+			
+			
+			tempHref = method.getHref().toString();
+			if(tempHref.startsWith("#")){
+				tempHref = tempHref.substring(1);
+			}
+			
+			for(Method m : definedMethods){
+				if(m.getId().equals(tempHref)){
+					
+					Method tempMethod = new Method(m.getDocs(),m.getRequest(),m.getResponse(),m.getId(),m.getName(),method.getHref()); 
+					completeMethodList.add(count,tempMethod);
+					
+					break;
+				
+				}
+		
+			}
+			
+			count++;
+			i++;
+		}
+		
+		
+		
+	}//end of method
+	
+//	public void displayInfo(){
+//		if(url.size()!=paramNames.size()){
+//			System.out.println("Debug the code !!!! :( ");
+//			System.exit(0);
+//		}
+//		for(int i=0;i<url.size();i++){
+//			System.out.println(url.get(i));
+//			
+//			for(String p : paramNames.get(i)){
+//				System.out.print(p + ", ");
+//			}
+//			
+//			System.out.println();
+//			System.out.println();
+//		}
+//		
+//	}
+	
+	public void displayInfo(){
+		
+		if(url.size()!=completeMethodList.size()){
+			System.out.println("Debug the code !!!! :( ");
+			System.exit(0);
+		}
+		for(int i=0;i<url.size();i++){
+			System.out.println(url.get(i));
+			
+			for(Method m : completeMethodList){
+				System.out.println(m.getName());
+				for(Param param : m.getRequest().getParams()){
+					System.out.println("\t"+param.getName());
+					System.out.println("\t"+param.isRequired());
+					for(Doc doc : param.getDocs()){
+						if(doc.getTitle().equalsIgnoreCase("prompt")){
+							System.out.println("Prompt: " + doc.getInnerText());
+						}
+						
+					}
+					List<Option> ops = param.getOptions();
+					
+//					if(ops.size()==0){
+//						System.out.println("No options available");
+//					}
+//					else{
+//					System.out.println("\t options:");
+//					
+//					for(Option option:param.getOptions()){
+//						System.out.println("\t "+option.getName());
+//					}
+//					}
+				}
+			}
+			
+			System.out.println();
+			System.out.println();
+		}
+	}
+}
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WebServiceTool_input_method_REST_SOAP.xml	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,47 @@
+<tool id="WebServiceTool_input_method_REST_SOAP" name="Step b: Select desired Web Service Tools / Operations" version="1.1.0">
+  <description> to be added. </description>
+  <command interpreter="python">
+	WebServiceTool_input_method_m.py
+	$input
+	$url
+    $operation
+	$output
+</command>
+  <inputs>
+    <param name = "input" type="data" label="1. The previous step was (No action required) " help="You can also select any previously performed Step a from the history to avoid repeated execution of Step a."/>
+    <param name ="url" type = "select" data_ref="input" display="radio" label ="2. The tool specified by the Web service is" help="Displays the tool (Web service) chosen in Step a. No action required.">
+        <options from_dataset="input">
+            <column name="name" index ="2"/>
+            <column name="value" index ="2"/>
+            <filter type="unique_value" name="unique" column="2"/>
+        </options>
+    </param>
+    
+    <param name ="operation" type ="select" data_ref="input" display="checkboxes" multiple="true" label ="3. Select functions of the Web service tool to add to galaxy" help="Some tools have more than one function. It is important to select the appropriate functions.">
+        <options from_dataset="input">
+            <column name="name" index ="0"/>
+            <column name="value" index ="0"/>
+            <filter type="unique_value" name="unique1" column="0"/>
+        </options>
+    </param>
+        
+  </inputs>
+  <outputs>
+    <data format="tabular" name="output" />
+  </outputs>
+
+  <help>
+  
+
+.. class:: infomark
+ 
+**TIP:** **After the completing step b proceed to step c**  
+            
+
+*NOTE: Step a, Step b and Step c merely add this tool to Galaxy. To use the tool, go to the Tools section on left
+and find the tool under Select Web Service Tools and Select Web Service Workflow Tools.*
+
+  </help>
+
+</tool>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WebServiceTool_input_method_REST_SOAP.xml~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,47 @@
+<tool id="WebServiceTool_input_method_REST_SOAP" name="Step b: Select desired Web Service Tools / Operations" version="1.1.0">
+  <description> to be added. </description>
+  <command interpreter="python">
+	WebServiceTool_input_method_m.py
+	$input
+	$url
+    $operation
+	$output
+</command>
+  <inputs>
+    <param name = "input" type="data" label="1. The previous step was (No action required) " help="You can also select any previously performed Step a from the history to avoid repeated execution of Step a."/>
+    <param name ="url" type = "select" data_ref="input" display="radio" label ="2. The tool specified by the Web service is" help="Displays the tool (Web service) chosen in Step a. No action required.">
+        <options from_dataset="input">
+            <column name="name" index ="2"/>
+            <column name="value" index ="2"/>
+            <filter type="unique_value" name="unique" column="2"/>
+        </options>
+    </param>
+    
+    <param name ="operation" type ="select" data_ref="input" display="checkboxes" multiple="true" label ="3. Select functions of the Web service tool to add to galaxy" help="Some tools have more than one function. It is important to select the appropriate functions.">
+        <options from_dataset="input">
+            <column name="name" index ="0"/>
+            <column name="value" index ="0"/>
+            <filter type="unique_value" name="unique1" column="0"/>
+        </options>
+    </param>
+        
+  </inputs>
+  <outputs>
+    <data format="tabular" name="output" />
+  </outputs>
+
+  <help>
+  
+
+.. class:: infomark
+ 
+**TIP:** **After the completing step b proceed to step c**  
+            
+
+*NOTE: Step a, Step b and Step c merely add this tool to Galaxy. To use the tool, go to the Tools section on left
+and find the tool under Select Web Service Tools and Select Web Service Workflow Tools.*
+
+  </help>
+
+</tool>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WebServiceTool_input_method_m.py	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,155 @@
+'''
+@author  Chaitanya Guttula
+@see     LICENSE (MIT style license file).
+'''
+
+import warnings
+with warnings.catch_warnings():
+    warnings.simplefilter("ignore")
+    import warnings
+    import urllib2
+    import platform
+    import os,sys
+    from clientGenerator.creatorEngineComplex import *
+    from clientGenerator.wsdl2path import *
+    from clientGenerator.paramConverter import *
+    from generateClient import *
+    from generateClient1 import *
+
+'''input : wadl/wsdl/sawadl-url, method name
+purpose: 
+1. Calls methods from generateClient1.py to generate client description for one-time invocation
+of the Web service. This client description is added as a xml file under ./clients/
+2. Calls methods from generateClient.py to generate client description for invocation of Web service
+in a workflow. This client description is added as a xml file under ./workflowclients/
+3. Adds the path to the above xml files to Galaxy tool-conf.xml file using call edit_tool_conf.py
+'''
+
+servicetype=''
+
+#read the url passed as an argument
+url = sys.argv[2]
+while(url.find('__tilda__')>-1):
+    ulist = url.split('__tilda__')
+    url = '~'.join(ulist)
+
+#split url passed on '.' character
+urllist = url.split('/')
+wsdlname = urllist[len(urllist)-1].split(".")
+if len(wsdlname)==1:
+    wsdlname =urllist[len(urllist)-1].split('?')
+
+'''#checks the description document (WSDL/WADL) is for SOAP 1.1 or SOAP 2.0 or REST
+   If the extesnion is wsdl then servicetype is SOAP else If the extension is wadl then servicetype is REST
+   in other conditions(i.e. the file has no extension)
+'''
+#u = None
+#try:
+#    u = urllib2.urlopen(url)
+#except urllib2.HTTPError, e:
+#    print e.code
+#    print e.msg
+#    print e.headers
+#    print e.fp.read()
+print 'the url is : ',sys.argv[2]
+u = urllib2.urlopen(url)
+descfile = open('temp','w')
+descfile.write(u.read())
+descfile.close()
+readwsdl = open('temp','r')
+tempstring = 'start'
+    
+#checks the description document (WSDL/WADL) is for SOAP 1.1 or SOAP 2.0 or REST    
+while (tempstring != ''):
+    tempstring = readwsdl.readline()
+    if tempstring.find('<definitions') != -1 or tempstring.find('<wsdl:definitions') != -1:
+       print 'WSDL 1.1 or 1.0'
+       servicetype = 'SOAP'
+       break
+    elif tempstring.find('description') != -1:
+         while tempstring != '':
+            if tempstring.find('<bindings ') != -1:
+                bind = tempstring.split('type')
+                bindLength = len(bind)
+                bindingtype = bind[bindLength-1]
+                print bindingtype
+                break
+            tempstring = readwsdl.readline()
+            if bindingtype.find('http://www.w3.org/ns/wsdl/soap') != -1:    
+                servicetype='WSDL2SOAP'
+                print 'SOAP'
+            else:
+                servicetype='WSDL2REST'
+            break
+    elif tempstring.find('<application') != -1:
+        servicetype='REST'
+        break
+        
+readwsdl.close()        
+operations = sys.argv[3].split(',')              
+    
+# The webservice is a soap webservice
+if servicetype == 'SOAP':
+    
+    #Create client tool for using web services in workflow
+        for operation in operations:
+            if operation != '':
+                clientGenerator = ClientGenerator(url,operation,sys.argv[4],'SOAP')#webservice,operation,inputl)
+                if clientGenerator.isToolPresent():
+                    f = open(sys.argv[4],'a')
+                    f.write('The web service workflow tool for service '+url+' and operation '+operation+' was already added to galaxy\n')    
+                else:
+                    clientGenerator.wsdlClient()
+
+        
+    #Create cleint tool for invoking web service stand alone
+                clientGenerator1 = ClientGenerator1(url,operation,sys.argv[4],'SOAP')#webservice,operation,inputl)
+                if clientGenerator1.isToolPresent():
+                    f = open(sys.argv[4],'a')
+                    f.write('The web service tool for service '+url+' and operation '+operation+' was already added to galaxy\n')    
+                else:
+                    clientGenerator1.wsdlClient()
+    
+    
+   
+#Web service is a REST Webservice
+elif servicetype == 'REST':
+    
+    javahome = os.environ.get('JAVA_HOME')
+    galaxyhome=os.environ.get('GALAXY_HOME')
+    classpath= galaxyhome + '/tools/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/bin'
+    jarpath = galaxyhome + '/tools/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/lib/'
+    machine = platform.machine()
+    
+    if machine == 'x86_64' :
+        print 'a'
+        startJVM("%s/jre/lib/amd64/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+    elif machine == 'i686' :
+        startJVM("%s/jre/lib/i386/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+        print 'b'
+    elif machine == 'sun4u' :
+        startJVM("%s/jre/lib/sparc/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+    else :
+        print 'c'
+        System.exit("Could not identify machine, please specify path to libjvm.so")    
+    
+    
+    
+    for operation in operations:
+        if(operation != ''):
+            clientGenerator = ClientGenerator(url,operation,sys.argv[4],'REST')
+            clientGenerator1 = ClientGenerator1(url,operation,sys.argv[4],'REST')
+            if clientGenerator.isToolPresent():
+                f = open(sys.argv[4],'a')
+                f.write('\nThe web service workflow tool for service '+url+' and operation '+operation+' was already added to galaxy\n')    
+            else:
+                clientGenerator.wadlClient()
+            if clientGenerator1.isToolPresent():
+                f = open(sys.argv[4],'a')
+                f.write('\nThe web service tool for service '+url+' and operation '+operation+' was already added to galaxy\n')    
+            else:
+                clientGenerator1.wadlClient()
+    
+    
+    #shutdownJVM()
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WebServiceTool_input_method_m.py~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,154 @@
+'''
+@author  Chaitanya Guttula
+@see     LICENSE (MIT style license file).
+'''
+
+import warnings
+with warnings.catch_warnings():
+    warnings.simplefilter("ignore")
+    import warnings
+    import urllib2
+    import platform
+    import os,sys
+    from clientGenerator.creatorEngineComplex import *
+    from clientGenerator.wsdl2path import *
+    from clientGenerator.paramConverter import *
+    from generateClient import *
+    from generateClient1 import *
+
+'''input : wadl/wsdl/sawadl-url, method name
+purpose: 
+1. Calls methods from generateClient1.py to generate client description for one-time invocation
+of the Web service. This client description is added as a xml file under ./clients/
+2. Calls methods from generateClient.py to generate client description for invocation of Web service
+in a workflow. This client description is added as a xml file under ./workflowclients/
+3. Adds the path to the above xml files to Galaxy tool-conf.xml file using call edit_tool_conf.py
+'''
+
+servicetype=''
+
+#read the url passed as an argument
+url = sys.argv[2]
+while(url.find('__tilda__')>-1):
+    ulist = url.split('__tilda__')
+    url = '~'.join(ulist)
+
+#split url passed on '.' character
+urllist = url.split('/')
+wsdlname = urllist[len(urllist)-1].split(".")
+if len(wsdlname)==1:
+    wsdlname =urllist[len(urllist)-1].split('?')
+
+'''#checks the description document (WSDL/WADL) is for SOAP 1.1 or SOAP 2.0 or REST
+   If the extesnion is wsdl then servicetype is SOAP else If the extension is wadl then servicetype is REST
+   in other conditions(i.e. the file has no extension)
+'''
+#u = None
+#try:
+#    u = urllib2.urlopen(url)
+#except urllib2.HTTPError, e:
+#    print e.code
+#    print e.msg
+#    print e.headers
+#    print e.fp.read()
+print 'the url is : ',sys.argv[2]
+u = urllib2.urlopen(url)
+descfile = open('temp','w')
+descfile.write(u.read())
+descfile.close()
+readwsdl = open('temp','r')
+tempstring = 'start'
+    
+#checks the description document (WSDL/WADL) is for SOAP 1.1 or SOAP 2.0 or REST    
+while (tempstring != ''):
+    tempstring = readwsdl.readline()
+    if tempstring.find('<definitions') != -1 or tempstring.find('<wsdl:definitions') != -1:
+       print 'WSDL 1.1 or 1.0'
+       servicetype = 'SOAP'
+       break
+    elif tempstring.find('description') != -1:
+         while tempstring != '':
+            if tempstring.find('<bindings ') != -1:
+                bind = tempstring.split('type')
+                bindLength = len(bind)
+                bindingtype = bind[bindLength-1]
+                print bindingtype
+                break
+            tempstring = readwsdl.readline()
+            if bindingtype.find('http://www.w3.org/ns/wsdl/soap') != -1:    
+                servicetype='WSDL2SOAP'
+                print 'SOAP'
+            else:
+                servicetype='WSDL2REST'
+            break
+    elif tempstring.find('<application') != -1:
+        servicetype='REST'
+        break
+        
+readwsdl.close()        
+operations = sys.argv[3].split(',')              
+    
+# The webservice is a soap webservice
+if servicetype == 'SOAP':
+    
+    #Create client tool for using web services in workflow
+        for operation in operations:
+            if operation != '':
+                clientGenerator = ClientGenerator(url,operation,sys.argv[4],'SOAP')#webservice,operation,inputl)
+                if clientGenerator.isToolPresent():
+                    f = open(sys.argv[4],'a')
+                    f.write('The web service workflow tool for service '+url+' and operation '+operation+' was already added to galaxy\n')    
+                else:
+                    clientGenerator.wsdlClient()
+        
+    #Create cleint tool for invoking web service stand alone
+                clientGenerator1 = ClientGenerator1(url,operation,sys.argv[4],'SOAP')#webservice,operation,inputl)
+                if clientGenerator1.isToolPresent():
+                    f = open(sys.argv[4],'a')
+                    f.write('The web service tool for service '+url+' and operation '+operation+' was already added to galaxy\n')    
+                else:
+                    clientGenerator1.wsdlClient()
+    
+    
+   
+#Web service is a REST Webservice
+elif servicetype == 'REST':
+    
+    javahome = os.environ.get('JAVA_HOME')
+    galaxyhome=os.environ.get('GALAXY_HOME')
+    classpath= galaxyhome + '/tools/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/bin'
+    jarpath = galaxyhome + '/tools/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/lib/'
+    machine = platform.machine()
+    
+    if machine == 'x86_64' :
+        print 'a'
+        startJVM("%s/jre/lib/amd64/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+    elif machine == 'i686' :
+        startJVM("%s/jre/lib/i386/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+        print 'b'
+    elif machine == 'sun4u' :
+        startJVM("%s/jre/lib/sparc/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+    else :
+        print 'c'
+        System.exit("Could not identify machine, please specify path to libjvm.so")    
+    
+    
+    
+    for operation in operations:
+        if(operation != ''):
+            clientGenerator = ClientGenerator(url,operation,sys.argv[4],'REST')
+            clientGenerator1 = ClientGenerator1(url,operation,sys.argv[4],'REST')
+            if clientGenerator.isToolPresent():
+                f = open(sys.argv[4],'a')
+                f.write('\nThe web service workflow tool for service '+url+' and operation '+operation+' was already added to galaxy\n')    
+            else:
+                clientGenerator.wadlClient()
+            if clientGenerator1.isToolPresent():
+                f = open(sys.argv[4],'a')
+                f.write('\nThe web service tool for service '+url+' and operation '+operation+' was already added to galaxy\n')    
+            else:
+                clientGenerator1.wadlClient()
+    
+    
+    #shutdownJVM()
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WebServiceTool_input_url_REST_SOAP.xml	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,52 @@
+<tool id="WebServiceTool_input_url_REST_SOAP" name="Step a: Enter the URL (WSDL/WADL location) " version="1.1.0">
+  <description>of tool (web service) description document </description>
+  <command interpreter="python">
+        WebServiceTool_input_url_m.py 
+        $url
+        $output
+  </command>
+  <inputs>
+       <param format="text" size = "60" name = "url" type="text" label="Enter the url of the tool's description document" />
+  </inputs>
+  <outputs>
+    <data format="tabular" name="output" />
+  </outputs>
+
+  <help>
+
+.. class:: infomark
+
+**TIP:** **After step a proceed to step b**
+
+All Web services come with a description document (WADL or WSDL document). Galaxy can read this information
+to create the Web service tool.
+WSDL/WADL files specify the programs/operations and their inputs and outputs.
+You can find samples of WSDL and WADL documents below
+
+Samples WSDLs:   
+
+	EBI sample services:
+         
+         http://www.ebi.ac.uk/Tools/services/soap/wublast?wsdl
+         
+         http://www.ebi.ac.uk/Tools/services/soap/clustalw2?wsdl
+         
+         More detailed information about all services at EBI can be found at http://www.ebi.ac.uk/Tools/webservices
+
+Sample WADLs: 
+
+    EupathDB sample services
+    
+         http://eupathdb.org/webservices/GeneQuestions/GenesByMolecularWeight.wadl
+         
+         http://eupathdb.org/eupathdb/webservices/GeneQuestions/GenesByTextSearch.wadl
+         
+         More detailed information about all REST services at EuPathDB can be found at http://eupathdb.org/eupathdb/serviceList.jsp
+         
+*NOTE: Step a, Step b and Step c merely add this tool to Galaxy. To use the tool, after completing Step 3, go to the Tools section on left
+and find the tool under Web Service Tools and Web Service Workflow Tools.*
+
+  </help>
+
+</tool>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WebServiceTool_input_url_REST_SOAP.xml~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,52 @@
+<tool id="WebServiceTool_input_url_REST_SOAP" name="Step a: Enter the URL (WSDL/WADL location) " version="1.1.0">
+  <description>of tool (web service) description document </description>
+  <command interpreter="python">
+        WebServiceTool_input_url_m.py 
+        $url
+        $output
+  </command>
+  <inputs>
+       <param format="text" size = "60" name = "url" type="text" label="Enter the url of the tool's description document" />
+  </inputs>
+  <outputs>
+    <data format="tabular" name="output" />
+  </outputs>
+
+  <help>
+
+.. class:: infomark
+
+**TIP:** **After step a proceed to step b**
+
+All Web services come with a description document (WADL or WSDL document). Galaxy can read this information
+to create the Web service tool.
+WSDL/WADL files specify the programs/operations and their inputs and outputs.
+You can find samples of WSDL and WADL documents below
+
+Samples WSDLs:   
+
+	EBI sample services:
+         
+         http://www.ebi.ac.uk/Tools/services/soap/wublast?wsdl
+         
+         http://www.ebi.ac.uk/Tools/services/soap/clustalw2?wsdl
+         
+         More detailed information about all services at EBI can be found at http://www.ebi.ac.uk/Tools/webservices
+
+Sample WADLs: 
+
+    EupathDB sample services
+    
+         http://eupathdb.org/webservices/GeneQuestions/GenesByMolecularWeight.wadl
+         
+         http://eupathdb.org/eupathdb/webservices/GeneQuestions/GenesByTextSearch.wadl
+         
+         More detailed information about all REST services at EuPathDB can be found at http://eupathdb.org/eupathdb/serviceList.jsp
+         
+*NOTE: Step a, Step b and Step c merely add this tool to Galaxy. To use the tool, after completing Step 3, go to the Tools section on left
+and find the tool under Web Service Tools and Web Service Workflow Tools.*
+
+  </help>
+
+</tool>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WebServiceTool_input_url_m.py	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,99 @@
+'''
+@author  Chaitanya Guttula
+@see     LICENSE (MIT style license file).
+'''
+
+import warnings
+with warnings.catch_warnings():
+    warnings.simplefilter("ignore")
+    import platform
+    import os
+    import sys
+    import ZSI
+    import commands
+    from clientGenerator.creatorEngineComplex import *
+    from clientGenerator.wsdl2path import *
+    import urllib2
+    from getMethods_m import *
+    
+    '''
+    Takes the description document as input and parses the document and 
+    gets all the operations available in the web service and provides it 
+    Galaxy
+    
+    '''
+
+    url = sys.argv[1]
+    while(url.find('__tilda__')>-1):
+        ulist = url.split('__tilda__')
+        url = '~'.join(ulist)            
+    urllist = url.split('/')
+    wsdlname = urllist[len(urllist)-1].split(".")
+    if len(wsdlname)==1:
+        wsdlname =urllist[len(urllist)-1].split('?')
+    
+    servicetype = ''
+    
+#instantiate a Document   
+    descriptionDocument = Document()
+    
+    #if wsdlname[-1] == 'wsdl' or wsdlname[-1] == 'WSDL': 
+    #    servicetype='SOAP'
+    #elif wsdlname[-1] == 'wadl' or wsdlname[-1] == 'WADL':
+    #    servicetype='REST'
+    #else:
+
+    try:
+        u = urllib2.urlopen(url)
+    except urllib2.HTTPError, e:
+        print e.code
+        print e.msg
+        print e.headers
+        print e.fp.read()
+
+    descfile = open('temp','w')
+    descfile.write(u.read())
+    descfile.close()
+    readwsdl = open('temp','r')
+    tempstring = 'start'
+    
+    #checks the description document (WSDL/WADL) is for SOAP 1.1 or SOAP 2.0 or REST and gets the operations in the web service accordingly   
+    while (tempstring != ''):
+        tempstring = readwsdl.readline()
+         #If its WSDL 1.0/1.1
+        if tempstring.find('<definitions') != -1 or tempstring.find('<wsdl:definitions') != -1:
+            servicetype = 'SOAP'
+            descriptionDocument.getWSDLMethods(url,sys.argv[2])
+            break
+         #if it is WSDL 2.0
+        elif tempstring.find('<description') != -1 or tempstring.find('<wsdl:description') != -1:
+            #servicetype = 'WSDL2.0'
+            #break
+            while tempstring != '':
+                if tempstring.find('<bindings ') != -1 or tempstring.find('<wsdl:bindings') != -1:
+                    bind = tempstring.split('type')
+                    bindLength = len(bind)
+                    bindingtype = bind[bindLength-1]
+                    break
+                tempstring = readwsdl.readline()
+               #IF the WSDL describes SOAP web services
+                if bindingtype.find('http://www.w3.org/ns/wsdl/soap') != -1:    
+                    #descriptionDocument.getWSDL2Methods(url,sys.argv[2])
+                    print 'WSDL 1.1'
+               #If the WSDL describes REST web services
+                else:
+                    descriptionDocument.getWSDLRESTMethods(url,sys.argv[2])
+                break
+        elif tempstring.find('<application') != -1 or tempstring.find('<APPLICATION') != -1:
+        	#servicetype = 'REST'
+        	descriptionDocument.getWADLMethods(url,sys.argv[2])
+        	break
+                  
+    readwsdl.close()
+   
+    #if(servicetype == 'REST'):
+    #    descriptionDocument.getWADLMethods(url,sys.argv[2])
+    #elif (servicetype == 'SOAP'):
+    #    descriptionDocument.getWSDLMethods(url,sys.argv[2])    
+    #else:
+    #    descriptionDocument.getWSDL2Methods(url,sys.argv[2])
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WebServiceTool_input_url_m.py~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,99 @@
+'''
+@author  Chaitanya Guttula
+@see     LICENSE (MIT style license file).
+'''
+
+import warnings
+with warnings.catch_warnings():
+    warnings.simplefilter("ignore")
+    import platform
+    import os
+    import sys
+    import ZSI
+    import commands
+    from clientGenerator.creatorEngineComplex import *
+    from clientGenerator.wsdl2path import *
+    import urllib2
+    from getMethods_m import *
+    
+    '''
+    Takes the description document as input and parses the document and 
+    gets all the operations available in the web service and provides it 
+    Galaxy
+    
+    '''
+
+    url = sys.argv[1]
+    while(url.find('__tilda__')>-1):
+        ulist = url.split('__tilda__')
+        url = '~'.join(ulist)            
+    urllist = url.split('/')
+    wsdlname = urllist[len(urllist)-1].split(".")
+    if len(wsdlname)==1:
+        wsdlname =urllist[len(urllist)-1].split('?')
+    
+    servicetype = ''
+    
+#instantiate a Document   
+    descriptionDocument = Document()
+    
+    #if wsdlname[-1] == 'wsdl' or wsdlname[-1] == 'WSDL': 
+    #    servicetype='SOAP'
+    #elif wsdlname[-1] == 'wadl' or wsdlname[-1] == 'WADL':
+    #    servicetype='REST'
+    #else:
+
+    try:
+        u = urllib2.urlopen(url)
+    except urllib2.HTTPError, e:
+        print e.code
+        print e.msg
+        print e.headers
+        print e.fp.read()
+
+    descfile = open('temp','w')
+    descfile.write(u.read())
+    descfile.close()
+    readwsdl = open('temp','r')
+    tempstring = 'start'
+    
+    #checks the description document (WSDL/WADL) is for SOAP 1.1 or SOAP 2.0 or REST and gets the operations in the web service accordingly   
+    while (tempstring != ''):
+        tempstring = readwsdl.readline()
+         #If its WSDL 1.0/1.1
+        if tempstring.find('<definitions') != -1 or tempstring.find('<wsdl:definitions') != -1:
+            servicetype = 'SOAP'
+            descriptionDocument.getWSDLMethods(url,sys.argv[2])
+            break
+         #if it is WSDL 2.0
+        elif tempstring.find('<description') != -1 or tempstring.find('<wsdl:description') != -1:
+            #servicetype = 'WSDL2.0'
+            #break
+            while tempstring != '':
+                if tempstring.find('<bindings ') != -1 or tempstring.find('<wsdl:bindings') != -1:
+                    bind = tempstring.split('type')
+                    bindLength = len(bind)
+                    bindingtype = bind[bindLength-1]
+                    break
+                tempstring = readwsdl.readline()
+               #IF the WSDL describes SOAP web services
+                if bindingtype.find('http://www.w3.org/ns/wsdl/soap') != -1:    
+                    #descriptionDocument.getWSDL2Methods(url,sys.argv[2])
+                    print 'WSDL 1.1'
+               #If the WSDL describes REST web services
+                else:
+                    descriptionDocument.getWSDLRESTMethods(url,sys.argv[2])
+                break
+        elif tempstring.find('<application') != -1 or tempstring.find('<APPLICATION') != -1:
+        	#servicetype = 'REST'
+        	descriptionDocument.getWADLMethods(url,sys.argv[2])
+        	break
+                  
+    readwsdl.close()
+   
+    #if(servicetype == 'REST'):
+    #    descriptionDocument.getWADLMethods(url,sys.argv[2])
+    #elif (servicetype == 'SOAP'):
+    #    descriptionDocument.getWSDLMethods(url,sys.argv[2])    
+    #else:
+    #    descriptionDocument.getWSDL2Methods(url,sys.argv[2])
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/.classpath	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+	<classpathentry kind="lib" path="/home/ganjoo/parser/woden-dom-1.0M8/lib/woden-api-1.0M8.jar"/>
+	<classpathentry kind="lib" path="/home/ganjoo/parser/woden-dom-1.0M8/lib/woden-impl-dom-1.0M8.jar"/>
+	<classpathentry kind="lib" path="/home/ganjoo/parser/woden-dom-1.0M8/lib/xercesImpl.jar"/>
+	<classpathentry kind="lib" path="/home/ganjoo/parser/woden-dom-1.0M8/lib/xml-apis.jar"/>
+	<classpathentry kind="lib" path="/home/ganjoo/parser/woden-dom-1.0M8/lib/XmlSchema-1.4.2.jar"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/.project	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>WodenWSDLParser</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/.settings/org.eclipse.jdt.core.prefs	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,12 @@
+#Tue May 25 18:05:22 EDT 2010
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/bin/CovertToWSDL2.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/bin/lsdis/WSDLParserDriver.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/lib/LICENSE.dom	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,71 @@
+This license came from:
+http://www.w3.org/Consortium/Legal/copyright-software-19980720
+
+
+W3C® SOFTWARE NOTICE AND LICENSE
+Copyright © 1994-2001 World
+Wide Web Consortium, <a href="http://www.w3.org/">World
+Wide Web Consortium</a>, (<a href=
+"http://www.lcs.mit.edu/">Massachusetts Institute of
+Technology</a>, <a href="http://www.inria.fr/">Institut National de
+Recherche en Informatique et en Automatique</a>, <a href=
+"http://www.keio.ac.jp/">Keio University</a>). All Rights Reserved.
+http://www.w3.org/Consortium/Legal/
+
+This W3C work (including software, documents, or other related
+items) is being provided by the copyright holders under the
+following license. By obtaining, using and/or copying this work,
+you (the licensee) agree that you have read, understood, and will
+comply with the following terms and conditions:
+Permission to use, copy, modify, and distribute this software
+and its documentation, with or without modification,  for any
+purpose and without fee or royalty is hereby granted, provided that
+you include the following on ALL copies of the software and
+documentation or portions thereof, including modifications, that
+you make:
+
+The full text of this NOTICE in a location viewable to users of
+the redistributed or derivative work.
+
+Any pre-existing intellectual property disclaimers, notices, or
+terms and conditions. If none exist, a short notice of the
+following form (hypertext is preferred, text is permitted) should
+be used within the body of any redistributed or derivative code:
+"Copyright © [$date-of-software] World Wide Web Consortium, (Massachusetts Institute of
+Technology, Institut National de
+Recherche en Informatique et en Automatique, Keio University). All Rights Reserved.
+http://www.w3.org/Consortium/Legal/"
+
+Notice of any changes or modifications to the W3C files,
+including the date changes were made. (We recommend you provide 
+URIs to the location from which the code is derived.)
+
+THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND
+COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF
+MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE
+USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD
+PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
+COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT,
+SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE
+SOFTWARE OR DOCUMENTATION.
+
+The name and trademarks of copyright holders may NOT be used in
+advertising or publicity pertaining to the software without
+specific, written prior permission. Title to copyright in this
+software and any associated documentation will at all times remain
+with copyright holders.
+____________________________________
+This formulation of W3C's notice and license became active on
+August 14 1998 so as to improve compatibility with GPL. This
+version ensures that W3C software licensing terms are no more
+restrictive than GPL and consequently W3C software may be
+distributed in GPL packages. See the older formulation for the
+policy prior to this date. Please see our Copyright FAQ for common 
+questions about using materials from
+our site, including specific terms and conditions for packages like
+libwww, Amaya, and Jigsaw. 
+Other questions about this notice can be
+directed to site-policy@w3.org.
+
+webmaster
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/lib/LICENSE.sax	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,20 @@
+This license came from: http://www.megginson.com/SAX/copying.html
+  However please note future versions of SAX may be covered 
+  under http://saxproject.org/?selected=pd
+
+
+This page is now out of date -- see the new SAX site at 
+http://www.saxproject.org/ for more up-to-date
+releases and other information. Please change your bookmarks.
+
+
+SAX2 is Free!
+
+I hereby abandon any property rights to SAX 2.0 (the Simple API for
+XML), and release all of the SAX 2.0 source code, compiled code, and
+documentation contained in this distribution into the Public Domain.
+SAX comes with NO WARRANTY or guarantee of fitness for any
+purpose.
+
+David Megginson, david@megginson.com
+2000-05-05
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/lib/LICENSE.wsdl4j.html	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,229 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!-- saved from url=(0065)http://oss.software.ibm.com/developerworks/opensource/CPLv1.0.htm -->
+<HTML><HEAD><TITLE>Body</TITLE>
+<META http-equiv=Content-Type content="text/html; charset=windows-1252">
+<META content="MSHTML 5.50.4919.2200" name=GENERATOR></META></HEAD>
+<BODY vLink=#800000 bgColor=#ffffff>
+<P align=center><B>Common Public License - v 1.0</B> 
+<P><B></B><FONT size=3></FONT>
+<P><FONT size=3></FONT><FONT size=2>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER 
+THE TERMS OF THIS COMMON PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR 
+DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS 
+AGREEMENT.</FONT> 
+<P><FONT size=2></FONT>
+<P><FONT size=2><B>1. DEFINITIONS</B></FONT> 
+<P><FONT size=2>"Contribution" means:</FONT> 
+<UL><FONT size=2>a) in the case of the initial Contributor, the initial code 
+  and documentation distributed under this Agreement, and<BR clear=left>b) in 
+  the case of each subsequent Contributor:</FONT></UL>
+<UL><FONT size=2>i) changes to the Program, and</FONT></UL>
+<UL><FONT size=2>ii) additions to the Program;</FONT></UL>
+<UL><FONT size=2>where such changes and/or additions to the Program originate 
+  from and are distributed by that particular Contributor. </FONT><FONT size=2>A 
+  Contribution 'originates' from a Contributor if it was added to the Program by 
+  such Contributor itself or anyone acting on such Contributor's behalf. 
+  </FONT><FONT size=2>Contributions do not include additions to the Program 
+  which: (i) are separate modules of software distributed in conjunction with 
+  the Program under their own license agreement, and (ii) are not derivative 
+  works of the Program. </FONT></UL>
+<P><FONT size=2></FONT>
+<P><FONT size=2>"Contributor" means any person or entity that distributes the 
+Program.</FONT> 
+<P><FONT size=2></FONT><FONT size=2></FONT>
+<P><FONT size=2>"Licensed Patents " mean patent claims licensable by a 
+Contributor which are necessarily infringed by the use or sale of its 
+Contribution alone or when combined with the Program. </FONT>
+<P><FONT size=2></FONT><FONT size=2></FONT>
+<P><FONT size=2></FONT><FONT size=2>"Program" means the Contributions 
+distributed in accordance with this Agreement.</FONT> 
+<P><FONT size=2></FONT>
+<P><FONT size=2>"Recipient" means anyone who receives the Program under this 
+Agreement, including all Contributors.</FONT> 
+<P><FONT size=2><B></B></FONT>
+<P><FONT size=2><B>2. GRANT OF RIGHTS</B></FONT> 
+<UL><FONT size=2></FONT><FONT size=2>a) </FONT><FONT size=2>Subject to the 
+  terms of this Agreement, each Contributor hereby grants</FONT><FONT size=2> 
+  Recipient a non-exclusive, worldwide, royalty-free copyright license 
+  to</FONT><FONT color=#ff0000 size=2> </FONT><FONT size=2>reproduce, prepare 
+  derivative works of, publicly display, publicly perform, distribute and 
+  sublicense the Contribution of such Contributor, if any, and such derivative 
+  works, in source code and object code form.</FONT></UL>
+<UL><FONT size=2></FONT></UL>
+<UL><FONT size=2></FONT><FONT size=2>b) Subject to the terms of this 
+  Agreement, each Contributor hereby grants </FONT><FONT size=2>Recipient a 
+  non-exclusive, worldwide,</FONT><FONT color=#008000 size=2> </FONT><FONT 
+  size=2>royalty-free patent license under Licensed Patents to make, use, sell, 
+  offer to sell, import and otherwise transfer the Contribution of such 
+  Contributor, if any, in source code and object code form. This patent license 
+  shall apply to the combination of the Contribution and the Program if, at the 
+  time the Contribution is added by the Contributor, such addition of the 
+  Contribution causes such combination to be covered by the Licensed Patents. 
+  The patent license shall not apply to any other combinations which include the 
+  Contribution. No hardware per se is licensed hereunder. </FONT></UL>
+<UL><FONT size=2></FONT></UL>
+<UL><FONT size=2>c) Recipient understands that although each Contributor 
+  grants the licenses to its Contributions set forth herein, no assurances are 
+  provided by any Contributor that the Program does not infringe the patent or 
+  other intellectual property rights of any other entity. Each Contributor 
+  disclaims any liability to Recipient for claims brought by any other entity 
+  based on infringement of intellectual property rights or otherwise. As a 
+  condition to exercising the rights and licenses granted hereunder, each 
+  Recipient hereby assumes sole responsibility to secure any other intellectual 
+  property rights needed, if any. For example, if a third party patent license 
+  is required to allow Recipient to distribute the Program, it is Recipient's 
+  responsibility to acquire that license before distributing the 
+Program.</FONT></UL>
+<UL><FONT size=2></FONT></UL>
+<UL><FONT size=2>d) Each Contributor represents that to its knowledge it has 
+  sufficient copyright rights in its Contribution, if any, to grant the 
+  copyright license set forth in this Agreement. </FONT></UL>
+<UL><FONT size=2></FONT></UL>
+<P><FONT size=2><B>3. REQUIREMENTS</B></FONT> 
+<P><FONT size=2><B></B>A Contributor may choose to distribute the Program in 
+object code form under its own license agreement, provided that:</FONT> 
+<UL><FONT size=2>a) it complies with the terms and conditions of this 
+  Agreement; and</FONT></UL>
+<UL><FONT size=2>b) its license agreement:</FONT></UL>
+<UL><FONT size=2>i) effectively disclaims</FONT><FONT face="Times New Roman" 
+  size=2> on behalf of all Contributors all warranties and conditions, express 
+  and implied, including warranties or conditions of title and non-infringement, 
+  and implied warranties or conditions of merchantability and fitness for a 
+  particular purpose; </FONT></UL>
+<UL><FONT face="Times New Roman" size=2>ii) effectively excludes on behalf of 
+  all Contributors all liability for damages, including direct, indirect, 
+  special, incidental and consequential damages, such as lost profits; 
+</FONT></UL>
+<UL><FONT face="Times New Roman" size=2>iii)</FONT><FONT size=2> states that 
+  any provisions which differ from this Agreement are offered by that 
+  Contributor alone and not by any other party; and</FONT></UL>
+<UL><FONT size=2>iv) states that source code for the Program is available from 
+  such Contributor, and informs licensees how to obtain it in a reasonable 
+  manner on or through a medium customarily used for software 
+  exchange.</FONT><FONT color=#0000ff size=2> </FONT><FONT color=#ff0000 
+  size=2></FONT></UL>
+<UL><FONT color=#ff0000 size=2></FONT><FONT size=2></FONT></UL>
+<P><FONT size=2>When the Program is made available in source code form:</FONT> 
+<UL><FONT size=2>a) it must be made available under this Agreement; and 
+</FONT></UL>
+<UL><FONT size=2>b) a copy of this Agreement must be included with each copy 
+  of the Program. </FONT></UL>
+<P><FONT size=2></FONT><FONT color=#0000ff size=2><STRIKE></STRIKE></FONT>
+<P><FONT color=#0000ff size=2><STRIKE></STRIKE></FONT><FONT size=2>Contributors 
+may not remove or alter any copyright notices contained within the Program. 
+</FONT>
+<P><FONT size=2></FONT>
+<P><FONT size=2>Each Contributor must identify itself as the originator of its 
+Contribution, if any, in a manner that reasonably allows subsequent Recipients 
+to identify the originator of the Contribution. </FONT>
+<P><FONT size=2></FONT>
+<P><FONT size=2><B>4. COMMERCIAL DISTRIBUTION</B></FONT> 
+<P><FONT size=2>Commercial distributors of software may accept certain 
+responsibilities with respect to end users, business partners and the like. 
+While this license is intended to facilitate the commercial use of the Program, 
+the Contributor who includes the Program in a commercial product offering should 
+do so in a manner which does not create potential liability for other 
+Contributors. Therefore, if a Contributor includes the Program in a commercial 
+product offering, such Contributor ("Commercial Contributor") hereby agrees to 
+defend and indemnify every other Contributor ("Indemnified Contributor") against 
+any losses, damages and costs (collectively "Losses") arising from claims, 
+lawsuits and other legal actions brought by a third party against the 
+Indemnified Contributor to the extent caused by the acts or omissions of such 
+Commercial Contributor in connection with its distribution of the Program in a 
+commercial product offering. The obligations in this section do not apply to any 
+claims or Losses relating to any actual or alleged intellectual property 
+infringement. In order to qualify, an Indemnified Contributor must: a) promptly 
+notify the Commercial Contributor in writing of such claim, and b) allow the 
+Commercial Contributor to control, and cooperate with the Commercial Contributor 
+in, the defense and any related settlement negotiations. The Indemnified 
+Contributor may participate in any such claim at its own expense.</FONT> 
+<P><FONT size=2></FONT>
+<P><FONT size=2>For example, a Contributor might include the Program in a 
+commercial product offering, Product X. That Contributor is then a Commercial 
+Contributor. If that Commercial Contributor then makes performance claims, or 
+offers warranties related to Product X, those performance claims and warranties 
+are such Commercial Contributor's responsibility alone. Under this section, the 
+Commercial Contributor would have to defend claims against the other 
+Contributors related to those performance claims and warranties, and if a court 
+requires any other Contributor to pay any damages as a result, the Commercial 
+Contributor must pay those damages.</FONT> 
+<P><FONT size=2></FONT><FONT color=#0000ff size=2></FONT>
+<P><FONT color=#0000ff size=2></FONT><FONT size=2><B>5. NO WARRANTY</B></FONT> 
+<P><FONT size=2>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS 
+PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 
+EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR 
+CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A 
+PARTICULAR PURPOSE. Each Recipient is</FONT><FONT size=2> solely responsible for 
+determining the appropriateness of using and distributing </FONT><FONT 
+size=2>the Program</FONT><FONT size=2> and assumes all risks associated with its 
+exercise of rights under this Agreement</FONT><FONT size=2>, including but not 
+limited to the risks and costs of program errors, compliance with applicable 
+laws, damage to or loss of data, </FONT><FONT size=2>programs or equipment, and 
+unavailability or interruption of operations</FONT><FONT size=2>. </FONT><FONT 
+size=2></FONT>
+<P><FONT size=2></FONT>
+<P><FONT size=2></FONT><FONT size=2><B>6. DISCLAIMER OF LIABILITY</B></FONT> 
+<P><FONT size=2></FONT><FONT size=2>EXCEPT AS EXPRESSLY SET FORTH IN THIS 
+AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR 
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 
+</FONT><FONT face="Times New Roman" size=2>(INCLUDING WITHOUT LIMITATION LOST 
+PROFITS),</FONT><FONT size=2> HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR 
+THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY 
+OF SUCH DAMAGES.</FONT> 
+<P><FONT size=2></FONT><FONT size=2></FONT>
+<P><FONT size=2><B>7. GENERAL</B></FONT> 
+<P><FONT size=2></FONT><FONT size=2>If any provision of this Agreement is 
+invalid or unenforceable under applicable law, it shall not affect the validity 
+or enforceability of the remainder of the terms of this Agreement, and without 
+further action by the parties hereto, such provision shall be reformed to the 
+minimum extent necessary to make such provision valid and enforceable.</FONT> 
+<P><FONT size=2></FONT>
+<P><FONT size=2>If Recipient institutes patent litigation against a Contributor 
+with respect to a patent applicable to software (including a cross-claim or 
+counterclaim in a lawsuit), then any patent licenses granted by that Contributor 
+to such Recipient under this Agreement shall terminate as of the date such 
+litigation is filed. In addition, if Recipient institutes patent litigation 
+against any entity (including a cross-claim or counterclaim in a lawsuit) 
+alleging that the Program itself (excluding combinations of the Program with 
+other software or hardware) infringes such Recipient's patent(s), then such 
+Recipient's rights granted under Section 2(b) shall terminate as of the date 
+such litigation is filed. </FONT><FONT size=2></FONT>
+<P><FONT size=2></FONT>
+<P><FONT size=2>All Recipient's rights under this Agreement shall terminate if 
+it fails to comply with any of the material terms or conditions of this 
+Agreement and does not cure such failure in a reasonable period of time after 
+becoming aware of such noncompliance. If all Recipient's rights under this 
+Agreement terminate, Recipient agrees to cease use and distribution of the 
+Program as soon as reasonably practicable. However, Recipient's obligations 
+under this Agreement and any licenses granted by Recipient relating to the 
+Program shall continue and survive. </FONT><FONT size=2></FONT>
+<P><FONT size=2></FONT>
+<P><FONT size=2></FONT><FONT face="Times New Roman" size=2>Everyone is permitted 
+to copy and distribute copies of this Agreement, but in order to avoid 
+inconsistency the Agreement is copyrighted and may only be modified in the 
+following manner. The Agreement Steward reserves the right to </FONT><FONT 
+size=2>publish new versions (including revisions) of this Agreement from time to 
+</FONT><FONT face="Times New Roman" size=2>time. No one other than the Agreement 
+Steward has the right to modify this Agreement. IBM is the initial Agreement 
+Steward. IBM may assign the responsibility to serve as the Agreement Steward to 
+a suitable separate entity. </FONT><FONT size=2>Each new version of the 
+Agreement will be given a distinguishing version number. The Program (including 
+Contributions) may always be distributed subject to the version of the Agreement 
+under which it was received. In addition, after a new version of the Agreement 
+is published, Contributor may elect to distribute the Program (including its 
+Contributions) under the new </FONT><FONT face="Times New Roman" size=2>version. 
+</FONT><FONT size=2>Except as expressly stated in Sections 2(a) and 2(b) above, 
+Recipient receives no rights or licenses to the intellectual property of any 
+Contributor under this Agreement, whether expressly, </FONT><FONT size=2>by 
+implication, estoppel or otherwise</FONT><FONT size=2>.</FONT><FONT size=2> All 
+rights in the Program not expressly granted under this Agreement are 
+reserved.</FONT> 
+<P><FONT size=2></FONT>
+<P><FONT size=2>This Agreement is governed by the laws of the State of New York 
+and the intellectual property laws of the United States of America. No party to 
+this Agreement will bring a legal action under this Agreement more than one year 
+after the cause of action arose. Each party waives its rights to a jury trial in 
+any resulting litigation.</FONT> 
+<P><FONT size=2></FONT><FONT size=2></FONT>
+<P><FONT size=2></FONT></P></BODY></HTML>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/lib/LICENSE.xerces	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/lib/XmlSchema-1.4.2.jar has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/lib/axis-wsdl4j-1.3.jar has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/lib/woden-api-1.0M8.jar has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/lib/woden-impl-dom-1.0M8.jar has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/lib/xercesImpl.jar has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/lib/xml-apis.jar has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/src/CovertToWSDL2.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,28 @@
+import java.io.IOException;
+
+import javax.wsdl.WSDLException;
+
+import org.apache.woden.tool.converter.Convert;
+
+
+public class CovertToWSDL2 {
+
+	/**
+	 * @param args
+	 */
+	public static void main(String[] args) {
+		// TODO Auto-generated method stub
+		Convert convert = new Convert();
+		try{
+			try {
+				String convertFile = convert.convertFile("http://www.ebi.ac.uk/ws/services/WSDbfetch", "/home/ganjoo/parser/woden-dom-1.0M8/wsdl/WSDbfetch.wsdl", "/home/ganjoo/parser/woden-dom-1.0M8/wsdl/wsdl2/", true, true);
+			} catch (IOException e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			}
+		}catch(WSDLException e){
+			e.printStackTrace();
+		}
+	}
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/src/lsdis/WSDLParserDriver.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,209 @@
+package lsdis;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Scanner;
+
+import org.apache.woden.WSDLException;
+import org.apache.woden.WSDLFactory;
+import org.apache.woden.WSDLReader;
+import org.apache.woden.wsdl20.Description;
+import org.apache.woden.wsdl20.ElementDeclaration;
+import org.apache.woden.wsdl20.Endpoint;
+import org.apache.woden.wsdl20.InterfaceMessageReference;
+import org.apache.woden.wsdl20.InterfaceOperation;
+import org.apache.woden.wsdl20.Service;
+import org.apache.woden.wsdl20.Interface;
+import org.apache.woden.wsdl20.extensions.rpc.Direction;
+import org.apache.woden.wsdl20.xml.DescriptionElement;
+import org.apache.ws.commons.schema.XmlSchemaAll;
+import org.apache.ws.commons.schema.XmlSchemaComplexType;
+import org.apache.ws.commons.schema.XmlSchemaElement;
+import org.apache.ws.commons.schema.XmlSchemaGroupBase;
+import org.apache.ws.commons.schema.XmlSchemaParticle;
+import org.apache.ws.commons.schema.XmlSchemaSequence;
+import org.apache.ws.commons.schema.XmlSchemaType;
+import org.w3c.dom.NamedNodeMap;
+
+import  java.net.URI;
+
+import javax.xml.namespace.QName;
+
+public class WSDLParserDriver {
+
+	private List<InterfaceOperation> completeMethodList = new ArrayList<InterfaceOperation>();
+	private  List<String> url = new ArrayList<String>();
+	private List<String> paramList = new ArrayList<String>();
+	private List<String> paramTypeList = new ArrayList<String>();
+	private String WSDLtype;
+	private BindingElement[] bindingElement = new BindigElement();
+ 
+	 public List<InterfaceOperation> getCompleteMethodList() {
+		return completeMethodList;
+	 }
+
+	public List<String> getUrl() {
+		return url;
+	 }
+	
+	public List<String> getParamList() {
+		return paramList;
+	 }
+	public List<String> getParamTypeList() {
+		return paramTypeList;
+	 }
+
+	public static void main(String[] args) {
+		 /*Scanner keyboard = new Scanner(System.in);  
+		
+		 System.out.println("Enter the wsdl url: ");
+		 String wsdlurl = keyboard.next();*/
+		WSDLParserDriver a = new WSDLParserDriver();
+		a.parse("/home/ganjoo/parser/bookstore-sample/booklist.wsdl");
+		for(InterfaceOperation oper:a.getCompleteMethodList()){
+		a.getParameters(oper);
+		}
+	}
+
+	public void parse(String wsdlurl){
+		
+		try {   
+		    
+			WSDLFactory factory;
+		    factory = WSDLFactory.newInstance();
+		    WSDLReader reader = factory.newWSDLReader();
+	        reader.setFeature(WSDLReader.FEATURE_VALIDATION, true);
+	        Description desc = reader.readWSDL(wsdlurl);       
+	        Service[] services = desc.getServices();
+		BindingElement[]
+	        for(int i=0;i<services.length;i++){
+	        	Endpoint[] endpoints = services[i].getEndpoints();
+	        	boolean foundRestBinding = false;
+	        	int count=0;
+	        	while(count<endpoints.length){
+	        		foundRestBinding = endpoints[count].getBinding().getType().equals(new URI("http://www.w3.org/ns/wsdl/http"));
+	        		count++;
+	        	
+	        	if(foundRestBinding){
+	        		System.out.println("-----------------REST Web services--------------");
+	        		URI address = endpoints[count-1].getAddress();
+	        		String serviceName = services[i].getName().getLocalPart();
+	        		System.out.println("Service Name : " + serviceName + "\t address : " + address);
+	        		Interface intrfce  = services[i].getInterface();
+	        		InterfaceOperation[] intrfceOpers = intrfce.getAllInterfaceOperations();
+	        		for(int j=0;j<intrfceOpers.length;j++){
+	        			InterfaceOperation oper = intrfceOpers[j];
+	        			String operName = oper.getName().getLocalPart();
+	        			System.out.println("\t operation name " + j + ": " + operName);
+	        			completeMethodList.add(oper);
+	        			url.add(address.toString());
+	        		
+	        			
+	        			
+	        		}
+	        	}
+	        }
+	        }
+	        
+		} catch (Exception e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+	}
+	
+	public void getParameters(String operName){
+		try{
+			InterfaceOperation oper = null;
+			for(InterfaceOperation oper1 :getCompleteMethodList()){
+				if(oper1.getName().getLocalPart().equals(operName))
+				{
+					oper = oper1;
+					break;
+				}
+				
+			}
+			if(oper==null){
+				System.out.println("Wrong method name passed in getParameters() method");
+				System.exit(0);
+			}
+			
+			InterfaceMessageReference[] messageRefs = oper.getInterfaceMessageReferences();
+			for(int k=0;k<messageRefs.length;k++){
+				if(messageRefs[k].getDirection().toString().equals("in")){
+					
+					ElementDeclaration ed = messageRefs[k].getElementDeclaration();
+					String inputMessageName = ed.getName().getLocalPart();
+					
+					if(ed.getContentModel().equalsIgnoreCase("org.w3c.dom")){
+						org.w3c.dom.Element element = (org.w3c.dom.Element) ed.getContent();
+						if(element.hasChildNodes()){
+							System.out.println("Element has child nodes");
+							org.w3c.dom.NodeList nl = element.getChildNodes();
+							
+						}
+						if(element.hasAttributes()){
+							System.out.println("Element has attributes");
+							NamedNodeMap nodeMap = element.getAttributes();
+							
+						}
+					}
+					else if(ed.getContentModel().equalsIgnoreCase("org.apache.ws.commons.schema")){
+						org.apache.ws.commons.schema.XmlSchemaElement element = (org.apache.ws.commons.schema.XmlSchemaElement ) ed.getContent();
+						System.out.println("element: " + element);
+						if(element != null){
+							String targetNamespace = element.getQName().getNamespaceURI();
+				            QName bodyFirstChildQName;
+				            if (targetNamespace != null && !"".equals(targetNamespace)) {
+				                bodyFirstChildQName = new QName(targetNamespace, element.getName());
+				            } else {
+				                bodyFirstChildQName = new QName(element.getName());
+				            }
+				            if(oper.getStyle()[0].equals(new URI("http://www.w3.org/ns/wsdl/style/iri"))){
+				            	XmlSchemaType schemaType = element.getSchemaType();
+				                if (schemaType instanceof XmlSchemaComplexType) {
+				                    XmlSchemaComplexType complexType = ((XmlSchemaComplexType) schemaType);
+				                    XmlSchemaParticle particle = complexType.getParticle();
+				                    if (particle instanceof XmlSchemaSequence || particle instanceof XmlSchemaAll) {
+				                        XmlSchemaGroupBase xmlSchemaGroupBase = (XmlSchemaGroupBase) particle;
+				                        Iterator iterator = xmlSchemaGroupBase.getItems().getIterator();
+				                        while (iterator.hasNext()) {
+				                            XmlSchemaElement innerElement = (XmlSchemaElement) iterator.next();
+				                            QName qName = innerElement.getQName();
+				                            if (qName ==null && innerElement.getSchemaTypeName().equals(org.apache.ws.commons.schema.constants.Constants.XSD_ANYTYPE)) {
+				                            	System.out.println("create soap message without schema and break");
+				                            	break;
+				                            }
+				                            long minOccurs = innerElement.getMinOccurs();
+				                            boolean nillable = innerElement.isNillable();
+				                            
+				                            String name =
+				                                    qName != null ? qName.getLocalPart() : innerElement.getName();
+				                            System.out.println("Name of parameter is :" + name);
+				                            paramList.add(name);
+				                            System.out.println("Type of Parameter is :"+innerElement.getSchemaTypeName().getLocalPart()+"\n");
+				                            paramTypeList.add(innerElement.getSchemaTypeName().getLocalPart());
+				                        }
+				                            	
+
+				            }
+				           
+				          }
+
+						}
+											   
+					}else{
+						System.out.println("element is null");
+					}
+					
+				
+				}
+			}
+		}
+	} catch (Exception e) {
+		// TODO Auto-generated catch block
+		e.printStackTrace();
+	}
+}
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/src/lsdis/WSDLParserDriver.java~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,213 @@
+package lsdis;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Scanner;
+
+import org.apache.woden.WSDLException;
+import org.apache.woden.WSDLFactory;
+import org.apache.woden.WSDLReader;
+import org.apache.woden.wsdl20.Description;
+import org.apache.woden.wsdl20.ElementDeclaration;
+import org.apache.woden.wsdl20.Endpoint;
+import org.apache.woden.wsdl20.InterfaceMessageReference;
+import org.apache.woden.wsdl20.InterfaceOperation;
+import org.apache.woden.wsdl20.Service;
+import org.apache.woden.wsdl20.Interface;
+import org.apache.woden.wsdl20.extensions.rpc.Direction;
+import org.apache.woden.wsdl20.xml.DescriptionElement;
+import org.apache.ws.commons.schema.XmlSchemaAll;
+import org.apache.ws.commons.schema.XmlSchemaComplexType;
+import org.apache.ws.commons.schema.XmlSchemaElement;
+import org.apache.ws.commons.schema.XmlSchemaGroupBase;
+import org.apache.ws.commons.schema.XmlSchemaParticle;
+import org.apache.ws.commons.schema.XmlSchemaSequence;
+import org.apache.ws.commons.schema.XmlSchemaType;
+import org.w3c.dom.NamedNodeMap;
+
+import  java.net.URI;
+
+import javax.xml.namespace.QName;
+
+public class WSDLParserDriver {
+
+	private List<InterfaceOperation> completeMethodList = new ArrayList<InterfaceOperation>();
+	private  List<String> url = new ArrayList<String>();
+	private List<String> paramList = new ArrayList<String>();
+	private List<String> paramTypeList = new ArrayList<String>();
+	private String WSDLtype;
+	private BindingElement[] bindingElement = new BindigElement();
+ 
+	 public List<InterfaceOperation> getCompleteMethodList() {
+		return completeMethodList;
+	 }
+
+	public List<String> getUrl() {
+		return url;
+	 }
+	
+	public List<String> getParamList() {
+		return paramList;
+	 }
+	public List<String> getParamTypeList() {
+		return paramTypeList;
+	 }
+
+	public static void main(String[] args) {
+		 /*Scanner keyboard = new Scanner(System.in);  
+		
+		 System.out.println("Enter the wsdl url: ");
+		 String wsdlurl = keyboard.next();*/
+		WSDLParserDriver a = new WSDLParserDriver();
+		a.parse("/home/ganjoo/parser/bookstore-sample/booklist.wsdl");
+		for(InterfaceOperation oper:a.getCompleteMethodList()){
+		a.getParameters(oper);
+		}
+	}
+
+	public boolean isWSDL2()
+	{
+		
+	}
+	public void parse(String wsdlurl){
+		
+		try {   
+		    
+			WSDLFactory factory;
+		    factory = WSDLFactory.newInstance();
+		    WSDLReader reader = factory.newWSDLReader();
+	        reader.setFeature(WSDLReader.FEATURE_VALIDATION, true);
+	        Description desc = reader.readWSDL(wsdlurl);       
+	        Service[] services = desc.getServices();
+		BindingElement []
+	        for(int i=0;i<services.length;i++){
+	        	Endpoint[] endpoints = services[i].getEndpoints();
+	        	boolean foundRestBinding = false;
+	        	int count=0;
+	        	while(count<endpoints.length){
+	        		foundRestBinding = endpoints[count].getBinding().getType().equals(new URI("http://www.w3.org/ns/wsdl/http"));
+	        		count++;
+	        	
+	        	if(foundRestBinding){
+	        		System.out.println("-----------------REST Web services--------------");
+	        		URI address = endpoints[count-1].getAddress();
+	        		String serviceName = services[i].getName().getLocalPart();
+	        		System.out.println("Service Name : " + serviceName + "\t address : " + address);
+	        		Interface intrfce  = services[i].getInterface();
+	        		InterfaceOperation[] intrfceOpers = intrfce.getAllInterfaceOperations();
+	        		for(int j=0;j<intrfceOpers.length;j++){
+	        			InterfaceOperation oper = intrfceOpers[j];
+	        			String operName = oper.getName().getLocalPart();
+	        			System.out.println("\t operation name " + j + ": " + operName);
+	        			completeMethodList.add(oper);
+	        			url.add(address.toString());
+	        		
+	        			
+	        			
+	        		}
+	        	}
+	        }
+	        }
+	        
+		} catch (Exception e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+	}
+	
+	public void getParameters(String operName){
+		try{
+			InterfaceOperation oper = null;
+			for(InterfaceOperation oper1 :getCompleteMethodList()){
+				if(oper1.getName().getLocalPart().equals(operName))
+				{
+					oper = oper1;
+					break;
+				}
+				
+			}
+			if(oper==null){
+				System.out.println("Wrong method name passed in getParameters() method");
+				System.exit(0);
+			}
+			
+			InterfaceMessageReference[] messageRefs = oper.getInterfaceMessageReferences();
+			for(int k=0;k<messageRefs.length;k++){
+				if(messageRefs[k].getDirection().toString().equals("in")){
+					
+					ElementDeclaration ed = messageRefs[k].getElementDeclaration();
+					String inputMessageName = ed.getName().getLocalPart();
+					
+					if(ed.getContentModel().equalsIgnoreCase("org.w3c.dom")){
+						org.w3c.dom.Element element = (org.w3c.dom.Element) ed.getContent();
+						if(element.hasChildNodes()){
+							System.out.println("Element has child nodes");
+							org.w3c.dom.NodeList nl = element.getChildNodes();
+							
+						}
+						if(element.hasAttributes()){
+							System.out.println("Element has attributes");
+							NamedNodeMap nodeMap = element.getAttributes();
+							
+						}
+					}
+					else if(ed.getContentModel().equalsIgnoreCase("org.apache.ws.commons.schema")){
+						org.apache.ws.commons.schema.XmlSchemaElement element = (org.apache.ws.commons.schema.XmlSchemaElement ) ed.getContent();
+						System.out.println("element: " + element);
+						if(element != null){
+							String targetNamespace = element.getQName().getNamespaceURI();
+				            QName bodyFirstChildQName;
+				            if (targetNamespace != null && !"".equals(targetNamespace)) {
+				                bodyFirstChildQName = new QName(targetNamespace, element.getName());
+				            } else {
+				                bodyFirstChildQName = new QName(element.getName());
+				            }
+				            if(oper.getStyle()[0].equals(new URI("http://www.w3.org/ns/wsdl/style/iri"))){
+				            	XmlSchemaType schemaType = element.getSchemaType();
+				                if (schemaType instanceof XmlSchemaComplexType) {
+				                    XmlSchemaComplexType complexType = ((XmlSchemaComplexType) schemaType);
+				                    XmlSchemaParticle particle = complexType.getParticle();
+				                    if (particle instanceof XmlSchemaSequence || particle instanceof XmlSchemaAll) {
+				                        XmlSchemaGroupBase xmlSchemaGroupBase = (XmlSchemaGroupBase) particle;
+				                        Iterator iterator = xmlSchemaGroupBase.getItems().getIterator();
+				                        while (iterator.hasNext()) {
+				                            XmlSchemaElement innerElement = (XmlSchemaElement) iterator.next();
+				                            QName qName = innerElement.getQName();
+				                            if (qName ==null && innerElement.getSchemaTypeName().equals(org.apache.ws.commons.schema.constants.Constants.XSD_ANYTYPE)) {
+				                            	System.out.println("create soap message without schema and break");
+				                            	break;
+				                            }
+				                            long minOccurs = innerElement.getMinOccurs();
+				                            boolean nillable = innerElement.isNillable();
+				                            
+				                            String name =
+				                                    qName != null ? qName.getLocalPart() : innerElement.getName();
+				                            System.out.println("Name of parameter is :" + name);
+				                            paramList.add(name);
+				                            System.out.println("Type of Parameter is :"+innerElement.getSchemaTypeName().getLocalPart()+"\n");
+				                            paramTypeList.add(innerElement.getSchemaTypeName().getLocalPart());
+				                        }
+				                            	
+
+				            }
+				           
+				          }
+
+						}
+											   
+					}else{
+						System.out.println("element is null");
+					}
+					
+				
+				}
+			}
+		}
+	} catch (Exception e) {
+		// TODO Auto-generated catch block
+		e.printStackTrace();
+	}
+}
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/src/lsdis/WSDLchecker.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,6 @@
+package lsdis;
+
+public class WSDLchecker{
+
+	
+}
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/.DS_Store has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/._.DS_Store has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/KEGG/KEGG_v6_2_services.py	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,1804 @@
+################################################## 
+# KEGG_v6_2_services.py 
+# generated by ZSI.generate.wsdl2python
+##################################################
+
+
+from KEGG_v6_2_services_types import *
+import urlparse, types
+from ZSI.TCcompound import ComplexType, Struct
+from ZSI import client
+import ZSI
+
+# Locator
+class KEGGLocator:
+    KEGGPortType_address = "http://soap.genome.jp/keggapi/request_v6.2.cgi"
+    def getKEGGPortTypeAddress(self):
+        return KEGGLocator.KEGGPortType_address
+    def getKEGGPortType(self, url=None, **kw):
+        return KEGGBindingSOAP(url or KEGGLocator.KEGGPortType_address, **kw)
+
+# Methods
+class KEGGBindingSOAP:
+    def __init__(self, url, **kw):
+        kw.setdefault("readerclass", None)
+        kw.setdefault("writerclass", None)
+        # no resource properties
+        self.binding = client.Binding(url=url, **kw)
+        # no ws-addressing
+
+    # op: list_databases
+    def list_databases(self, request):
+        if isinstance(request, list_databasesRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#list_databases", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=list_databasesResponse.typecode.ofwhat, pyclass=list_databasesResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: list_organisms
+    def list_organisms(self, request):
+        if isinstance(request, list_organismsRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#list_organisms", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=list_organismsResponse.typecode.ofwhat, pyclass=list_organismsResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: list_pathways
+    def list_pathways(self, request):
+        if isinstance(request, list_pathwaysRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#list_pathways", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=list_pathwaysResponse.typecode.ofwhat, pyclass=list_pathwaysResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: list_ko_classes
+    def list_ko_classes(self, request):
+        if isinstance(request, list_ko_classesRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#list_ko_classes", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=list_ko_classesResponse.typecode.ofwhat, pyclass=list_ko_classesResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: binfo
+    def binfo(self, request):
+        if isinstance(request, binfoRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#binfo", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=binfoResponse.typecode.ofwhat, pyclass=binfoResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: bget
+    def bget(self, request):
+        if isinstance(request, bgetRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#bget", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=bgetResponse.typecode.ofwhat, pyclass=bgetResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: bfind
+    def bfind(self, request):
+        if isinstance(request, bfindRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#bfind", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=bfindResponse.typecode.ofwhat, pyclass=bfindResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: btit
+    def btit(self, request):
+        if isinstance(request, btitRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#btit", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=btitResponse.typecode.ofwhat, pyclass=btitResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: bconv
+    def bconv(self, request):
+        if isinstance(request, bconvRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#bconv", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=bconvResponse.typecode.ofwhat, pyclass=bconvResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: get_linkdb_by_entry
+    def get_linkdb_by_entry(self, request):
+        if isinstance(request, get_linkdb_by_entryRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#get_linkdb_by_entry", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=get_linkdb_by_entryResponse.typecode.ofwhat, pyclass=get_linkdb_by_entryResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: get_best_neighbors_by_gene
+    def get_best_neighbors_by_gene(self, request):
+        if isinstance(request, get_best_neighbors_by_geneRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#get_best_neighbors_by_gene", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=get_best_neighbors_by_geneResponse.typecode.ofwhat, pyclass=get_best_neighbors_by_geneResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: get_best_best_neighbors_by_gene
+    def get_best_best_neighbors_by_gene(self, request):
+        if isinstance(request, get_best_best_neighbors_by_geneRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#get_best_best_neighbors_by_gene", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=get_best_best_neighbors_by_geneResponse.typecode.ofwhat, pyclass=get_best_best_neighbors_by_geneResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: get_reverse_best_neighbors_by_gene
+    def get_reverse_best_neighbors_by_gene(self, request):
+        if isinstance(request, get_reverse_best_neighbors_by_geneRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#get_reverse_best_neighbors_by_gene", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=get_reverse_best_neighbors_by_geneResponse.typecode.ofwhat, pyclass=get_reverse_best_neighbors_by_geneResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: get_paralogs_by_gene
+    def get_paralogs_by_gene(self, request):
+        if isinstance(request, get_paralogs_by_geneRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#get_paralogs_by_gene", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=get_paralogs_by_geneResponse.typecode.ofwhat, pyclass=get_paralogs_by_geneResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: get_motifs_by_gene
+    def get_motifs_by_gene(self, request):
+        if isinstance(request, get_motifs_by_geneRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#get_motifs_by_gene", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=get_motifs_by_geneResponse.typecode.ofwhat, pyclass=get_motifs_by_geneResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: get_genes_by_motifs
+    def get_genes_by_motifs(self, request):
+        if isinstance(request, get_genes_by_motifsRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#get_genes_by_motifs", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=get_genes_by_motifsResponse.typecode.ofwhat, pyclass=get_genes_by_motifsResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: get_ko_by_gene
+    def get_ko_by_gene(self, request):
+        if isinstance(request, get_ko_by_geneRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#get_ko_by_gene", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=get_ko_by_geneResponse.typecode.ofwhat, pyclass=get_ko_by_geneResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: get_ko_by_ko_class
+    def get_ko_by_ko_class(self, request):
+        if isinstance(request, get_ko_by_ko_classRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#get_ko_by_ko_class", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=get_ko_by_ko_classResponse.typecode.ofwhat, pyclass=get_ko_by_ko_classResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: get_genes_by_ko
+    def get_genes_by_ko(self, request):
+        if isinstance(request, get_genes_by_koRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#get_genes_by_ko", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=get_genes_by_koResponse.typecode.ofwhat, pyclass=get_genes_by_koResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: get_genes_by_ko_class
+    def get_genes_by_ko_class(self, request):
+        if isinstance(request, get_genes_by_ko_classRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#get_genes_by_ko_class", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=get_genes_by_ko_classResponse.typecode.ofwhat, pyclass=get_genes_by_ko_classResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: get_elements_by_pathway
+    def get_elements_by_pathway(self, request):
+        if isinstance(request, get_elements_by_pathwayRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#get_elements_by_pathway", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=get_elements_by_pathwayResponse.typecode.ofwhat, pyclass=get_elements_by_pathwayResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: get_element_relations_by_pathway
+    def get_element_relations_by_pathway(self, request):
+        if isinstance(request, get_element_relations_by_pathwayRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#get_element_relations_by_pathway", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=get_element_relations_by_pathwayResponse.typecode.ofwhat, pyclass=get_element_relations_by_pathwayResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: color_pathway_by_elements
+    def color_pathway_by_elements(self, request):
+        if isinstance(request, color_pathway_by_elementsRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#color_pathway_by_elements", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=color_pathway_by_elementsResponse.typecode.ofwhat, pyclass=color_pathway_by_elementsResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: get_html_of_colored_pathway_by_elements
+    def get_html_of_colored_pathway_by_elements(self, request):
+        if isinstance(request, get_html_of_colored_pathway_by_elementsRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#get_html_of_colored_pathway_by_elements", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=get_html_of_colored_pathway_by_elementsResponse.typecode.ofwhat, pyclass=get_html_of_colored_pathway_by_elementsResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: mark_pathway_by_objects
+    def mark_pathway_by_objects(self, request):
+        if isinstance(request, mark_pathway_by_objectsRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#mark_pathway_by_objects", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=mark_pathway_by_objectsResponse.typecode.ofwhat, pyclass=mark_pathway_by_objectsResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: color_pathway_by_objects
+    def color_pathway_by_objects(self, request):
+        if isinstance(request, color_pathway_by_objectsRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#color_pathway_by_objects", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=color_pathway_by_objectsResponse.typecode.ofwhat, pyclass=color_pathway_by_objectsResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: get_html_of_marked_pathway_by_objects
+    def get_html_of_marked_pathway_by_objects(self, request):
+        if isinstance(request, get_html_of_marked_pathway_by_objectsRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#get_html_of_marked_pathway_by_objects", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=get_html_of_marked_pathway_by_objectsResponse.typecode.ofwhat, pyclass=get_html_of_marked_pathway_by_objectsResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: get_html_of_colored_pathway_by_objects
+    def get_html_of_colored_pathway_by_objects(self, request):
+        if isinstance(request, get_html_of_colored_pathway_by_objectsRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#get_html_of_colored_pathway_by_objects", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=get_html_of_colored_pathway_by_objectsResponse.typecode.ofwhat, pyclass=get_html_of_colored_pathway_by_objectsResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: get_genes_by_pathway
+    def get_genes_by_pathway(self, request):
+        if isinstance(request, get_genes_by_pathwayRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#get_genes_by_pathway", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=get_genes_by_pathwayResponse.typecode.ofwhat, pyclass=get_genes_by_pathwayResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: get_enzymes_by_pathway
+    def get_enzymes_by_pathway(self, request):
+        if isinstance(request, get_enzymes_by_pathwayRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#get_enzymes_by_pathway", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=get_enzymes_by_pathwayResponse.typecode.ofwhat, pyclass=get_enzymes_by_pathwayResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: get_reactions_by_pathway
+    def get_reactions_by_pathway(self, request):
+        if isinstance(request, get_reactions_by_pathwayRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#get_reactions_by_pathway", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=get_reactions_by_pathwayResponse.typecode.ofwhat, pyclass=get_reactions_by_pathwayResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: get_pathways_by_genes
+    def get_pathways_by_genes(self, request):
+        if isinstance(request, get_pathways_by_genesRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#get_pathways_by_genes", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=get_pathways_by_genesResponse.typecode.ofwhat, pyclass=get_pathways_by_genesResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: get_pathways_by_enzymes
+    def get_pathways_by_enzymes(self, request):
+        if isinstance(request, get_pathways_by_enzymesRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#get_pathways_by_enzymes", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=get_pathways_by_enzymesResponse.typecode.ofwhat, pyclass=get_pathways_by_enzymesResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: get_pathways_by_reactions
+    def get_pathways_by_reactions(self, request):
+        if isinstance(request, get_pathways_by_reactionsRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#get_pathways_by_reactions", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=get_pathways_by_reactionsResponse.typecode.ofwhat, pyclass=get_pathways_by_reactionsResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: get_linked_pathways
+    def get_linked_pathways(self, request):
+        if isinstance(request, get_linked_pathwaysRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#get_linked_pathways", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=get_linked_pathwaysResponse.typecode.ofwhat, pyclass=get_linked_pathwaysResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: get_genes_by_enzyme
+    def get_genes_by_enzyme(self, request):
+        if isinstance(request, get_genes_by_enzymeRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#get_genes_by_enzyme", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=get_genes_by_enzymeResponse.typecode.ofwhat, pyclass=get_genes_by_enzymeResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: get_enzymes_by_gene
+    def get_enzymes_by_gene(self, request):
+        if isinstance(request, get_enzymes_by_geneRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#get_enzymes_by_gene", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=get_enzymes_by_geneResponse.typecode.ofwhat, pyclass=get_enzymes_by_geneResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: get_enzymes_by_reaction
+    def get_enzymes_by_reaction(self, request):
+        if isinstance(request, get_enzymes_by_reactionRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#get_enzymes_by_reaction", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=get_enzymes_by_reactionResponse.typecode.ofwhat, pyclass=get_enzymes_by_reactionResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: get_reactions_by_enzyme
+    def get_reactions_by_enzyme(self, request):
+        if isinstance(request, get_reactions_by_enzymeRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#get_reactions_by_enzyme", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=get_reactions_by_enzymeResponse.typecode.ofwhat, pyclass=get_reactions_by_enzymeResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: get_genes_by_organism
+    def get_genes_by_organism(self, request):
+        if isinstance(request, get_genes_by_organismRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#get_genes_by_organism", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=get_genes_by_organismResponse.typecode.ofwhat, pyclass=get_genes_by_organismResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: get_number_of_genes_by_organism
+    def get_number_of_genes_by_organism(self, request):
+        if isinstance(request, get_number_of_genes_by_organismRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#get_number_of_genes_by_organism", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=get_number_of_genes_by_organismResponse.typecode.ofwhat, pyclass=get_number_of_genes_by_organismResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: get_reactions_by_glycan
+    def get_reactions_by_glycan(self, request):
+        if isinstance(request, get_reactions_by_glycanRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#get_reactions_by_glycan", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=get_reactions_by_glycanResponse.typecode.ofwhat, pyclass=get_reactions_by_glycanResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: get_reactions_by_compound
+    def get_reactions_by_compound(self, request):
+        if isinstance(request, get_reactions_by_compoundRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#get_reactions_by_compound", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=get_reactions_by_compoundResponse.typecode.ofwhat, pyclass=get_reactions_by_compoundResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: get_enzymes_by_glycan
+    def get_enzymes_by_glycan(self, request):
+        if isinstance(request, get_enzymes_by_glycanRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#get_enzymes_by_glycan", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=get_enzymes_by_glycanResponse.typecode.ofwhat, pyclass=get_enzymes_by_glycanResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: get_enzymes_by_compound
+    def get_enzymes_by_compound(self, request):
+        if isinstance(request, get_enzymes_by_compoundRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#get_enzymes_by_compound", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=get_enzymes_by_compoundResponse.typecode.ofwhat, pyclass=get_enzymes_by_compoundResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: get_pathways_by_compounds
+    def get_pathways_by_compounds(self, request):
+        if isinstance(request, get_pathways_by_compoundsRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#get_pathways_by_compounds", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=get_pathways_by_compoundsResponse.typecode.ofwhat, pyclass=get_pathways_by_compoundsResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: get_pathways_by_glycans
+    def get_pathways_by_glycans(self, request):
+        if isinstance(request, get_pathways_by_glycansRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#get_pathways_by_glycans", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=get_pathways_by_glycansResponse.typecode.ofwhat, pyclass=get_pathways_by_glycansResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: get_compounds_by_pathway
+    def get_compounds_by_pathway(self, request):
+        if isinstance(request, get_compounds_by_pathwayRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#get_compounds_by_pathway", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=get_compounds_by_pathwayResponse.typecode.ofwhat, pyclass=get_compounds_by_pathwayResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: get_glycans_by_pathway
+    def get_glycans_by_pathway(self, request):
+        if isinstance(request, get_glycans_by_pathwayRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#get_glycans_by_pathway", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=get_glycans_by_pathwayResponse.typecode.ofwhat, pyclass=get_glycans_by_pathwayResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: get_compounds_by_reaction
+    def get_compounds_by_reaction(self, request):
+        if isinstance(request, get_compounds_by_reactionRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#get_compounds_by_reaction", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=get_compounds_by_reactionResponse.typecode.ofwhat, pyclass=get_compounds_by_reactionResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: get_glycans_by_reaction
+    def get_glycans_by_reaction(self, request):
+        if isinstance(request, get_glycans_by_reactionRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#get_glycans_by_reaction", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=get_glycans_by_reactionResponse.typecode.ofwhat, pyclass=get_glycans_by_reactionResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: get_compounds_by_enzyme
+    def get_compounds_by_enzyme(self, request):
+        if isinstance(request, get_compounds_by_enzymeRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#get_compounds_by_enzyme", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=get_compounds_by_enzymeResponse.typecode.ofwhat, pyclass=get_compounds_by_enzymeResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: get_glycans_by_enzyme
+    def get_glycans_by_enzyme(self, request):
+        if isinstance(request, get_glycans_by_enzymeRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#get_glycans_by_enzyme", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=get_glycans_by_enzymeResponse.typecode.ofwhat, pyclass=get_glycans_by_enzymeResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: convert_mol_to_kcf
+    def convert_mol_to_kcf(self, request):
+        if isinstance(request, convert_mol_to_kcfRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#convert_mol_to_kcf", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=convert_mol_to_kcfResponse.typecode.ofwhat, pyclass=convert_mol_to_kcfResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: get_kos_by_pathway
+    def get_kos_by_pathway(self, request):
+        if isinstance(request, get_kos_by_pathwayRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#get_kos_by_pathway", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=get_kos_by_pathwayResponse.typecode.ofwhat, pyclass=get_kos_by_pathwayResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: get_pathways_by_kos
+    def get_pathways_by_kos(self, request):
+        if isinstance(request, get_pathways_by_kosRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#get_pathways_by_kos", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=get_pathways_by_kosResponse.typecode.ofwhat, pyclass=get_pathways_by_kosResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: search_compounds_by_name
+    def search_compounds_by_name(self, request):
+        if isinstance(request, search_compounds_by_nameRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#search_compounds_by_name", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=search_compounds_by_nameResponse.typecode.ofwhat, pyclass=search_compounds_by_nameResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: search_glycans_by_name
+    def search_glycans_by_name(self, request):
+        if isinstance(request, search_glycans_by_nameRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#search_glycans_by_name", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=search_glycans_by_nameResponse.typecode.ofwhat, pyclass=search_glycans_by_nameResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: search_compounds_by_composition
+    def search_compounds_by_composition(self, request):
+        if isinstance(request, search_compounds_by_compositionRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#search_compounds_by_composition", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=search_compounds_by_compositionResponse.typecode.ofwhat, pyclass=search_compounds_by_compositionResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: search_compounds_by_mass
+    def search_compounds_by_mass(self, request):
+        if isinstance(request, search_compounds_by_massRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#search_compounds_by_mass", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=search_compounds_by_massResponse.typecode.ofwhat, pyclass=search_compounds_by_massResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: search_glycans_by_mass
+    def search_glycans_by_mass(self, request):
+        if isinstance(request, search_glycans_by_massRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#search_glycans_by_mass", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=search_glycans_by_massResponse.typecode.ofwhat, pyclass=search_glycans_by_massResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: search_glycans_by_composition
+    def search_glycans_by_composition(self, request):
+        if isinstance(request, search_glycans_by_compositionRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#search_glycans_by_composition", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=search_glycans_by_compositionResponse.typecode.ofwhat, pyclass=search_glycans_by_compositionResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: search_compounds_by_subcomp
+    def search_compounds_by_subcomp(self, request):
+        if isinstance(request, search_compounds_by_subcompRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#search_compounds_by_subcomp", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=search_compounds_by_subcompResponse.typecode.ofwhat, pyclass=search_compounds_by_subcompResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: search_glycans_by_kcam
+    def search_glycans_by_kcam(self, request):
+        if isinstance(request, search_glycans_by_kcamRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#search_glycans_by_kcam", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=search_glycans_by_kcamResponse.typecode.ofwhat, pyclass=search_glycans_by_kcamResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: get_linkdb_between_databases
+    def get_linkdb_between_databases(self, request):
+        if isinstance(request, get_linkdb_between_databasesRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#get_linkdb_between_databases", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=get_linkdb_between_databasesResponse.typecode.ofwhat, pyclass=get_linkdb_between_databasesResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: search_drugs_by_name
+    def search_drugs_by_name(self, request):
+        if isinstance(request, search_drugs_by_nameRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#search_drugs_by_name", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=search_drugs_by_nameResponse.typecode.ofwhat, pyclass=search_drugs_by_nameResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: search_drugs_by_composition
+    def search_drugs_by_composition(self, request):
+        if isinstance(request, search_drugs_by_compositionRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#search_drugs_by_composition", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=search_drugs_by_compositionResponse.typecode.ofwhat, pyclass=search_drugs_by_compositionResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: search_drugs_by_mass
+    def search_drugs_by_mass(self, request):
+        if isinstance(request, search_drugs_by_massRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#search_drugs_by_mass", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=search_drugs_by_massResponse.typecode.ofwhat, pyclass=search_drugs_by_massResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: search_drugs_by_subcomp
+    def search_drugs_by_subcomp(self, request):
+        if isinstance(request, search_drugs_by_subcompRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#search_drugs_by_subcomp", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=search_drugs_by_subcompResponse.typecode.ofwhat, pyclass=search_drugs_by_subcompResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: get_references_by_pathway
+    def get_references_by_pathway(self, request):
+        if isinstance(request, get_references_by_pathwayRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#get_references_by_pathway", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=get_references_by_pathwayResponse.typecode.ofwhat, pyclass=get_references_by_pathwayResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: get_drugs_by_pathway
+    def get_drugs_by_pathway(self, request):
+        if isinstance(request, get_drugs_by_pathwayRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#get_drugs_by_pathway", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=get_drugs_by_pathwayResponse.typecode.ofwhat, pyclass=get_drugs_by_pathwayResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: get_pathways_by_drugs
+    def get_pathways_by_drugs(self, request):
+        if isinstance(request, get_pathways_by_drugsRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="SOAP/KEGG#get_pathways_by_drugs", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=get_pathways_by_drugsResponse.typecode.ofwhat, pyclass=get_pathways_by_drugsResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+class list_databasesRequest:
+    def __init__(self):
+        return
+list_databasesRequest.typecode = Struct(pname=("SOAP/KEGG","list_databases"), ofwhat=[], pyclass=list_databasesRequest, encoded="SOAP/KEGG")
+
+class list_databasesResponse:
+    def __init__(self):
+        self._return = None
+        return
+list_databasesResponse.typecode = Struct(pname=("SOAP/KEGG","list_databasesResponse"), ofwhat=[ns0.ArrayOfDefinition_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=list_databasesResponse, encoded="SOAP/KEGG")
+
+class list_organismsRequest:
+    def __init__(self):
+        return
+list_organismsRequest.typecode = Struct(pname=("SOAP/KEGG","list_organisms"), ofwhat=[], pyclass=list_organismsRequest, encoded="SOAP/KEGG")
+
+class list_organismsResponse:
+    def __init__(self):
+        self._return = None
+        return
+list_organismsResponse.typecode = Struct(pname=("SOAP/KEGG","list_organismsResponse"), ofwhat=[ns0.ArrayOfDefinition_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=list_organismsResponse, encoded="SOAP/KEGG")
+
+class list_pathwaysRequest:
+    def __init__(self):
+        self._org = None
+        return
+list_pathwaysRequest.typecode = Struct(pname=("SOAP/KEGG","list_pathways"), ofwhat=[ZSI.TC.String(pname="org", aname="_org", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=list_pathwaysRequest, encoded="SOAP/KEGG")
+
+class list_pathwaysResponse:
+    def __init__(self):
+        self._return = None
+        return
+list_pathwaysResponse.typecode = Struct(pname=("SOAP/KEGG","list_pathwaysResponse"), ofwhat=[ns0.ArrayOfDefinition_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=list_pathwaysResponse, encoded="SOAP/KEGG")
+
+class list_ko_classesRequest:
+    def __init__(self):
+        self._class_id = None
+        return
+list_ko_classesRequest.typecode = Struct(pname=("SOAP/KEGG","list_ko_classes"), ofwhat=[ZSI.TC.String(pname="class_id", aname="_class_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=list_ko_classesRequest, encoded="SOAP/KEGG")
+
+class list_ko_classesResponse:
+    def __init__(self):
+        self._return = None
+        return
+list_ko_classesResponse.typecode = Struct(pname=("SOAP/KEGG","list_ko_classesResponse"), ofwhat=[ns0.ArrayOfDefinition_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=list_ko_classesResponse, encoded="SOAP/KEGG")
+
+class binfoRequest:
+    def __init__(self):
+        self._db = None
+        return
+binfoRequest.typecode = Struct(pname=("SOAP/KEGG","binfo"), ofwhat=[ZSI.TC.String(pname="db", aname="_db", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=binfoRequest, encoded="SOAP/KEGG")
+
+class binfoResponse:
+    def __init__(self):
+        self._return = None
+        return
+binfoResponse.typecode = Struct(pname=("SOAP/KEGG","binfoResponse"), ofwhat=[ZSI.TC.String(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=binfoResponse, encoded="SOAP/KEGG")
+
+class bgetRequest:
+    def __init__(self):
+        self._string = None
+        return
+bgetRequest.typecode = Struct(pname=("SOAP/KEGG","bget"), ofwhat=[ZSI.TC.String(pname="string", aname="_string", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=bgetRequest, encoded="SOAP/KEGG")
+
+class bgetResponse:
+    def __init__(self):
+        self._return = None
+        return
+bgetResponse.typecode = Struct(pname=("SOAP/KEGG","bgetResponse"), ofwhat=[ZSI.TC.String(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=bgetResponse, encoded="SOAP/KEGG")
+
+class bfindRequest:
+    def __init__(self):
+        self._string = None
+        return
+bfindRequest.typecode = Struct(pname=("SOAP/KEGG","bfind"), ofwhat=[ZSI.TC.String(pname="string", aname="_string", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=bfindRequest, encoded="SOAP/KEGG")
+
+class bfindResponse:
+    def __init__(self):
+        self._return = None
+        return
+bfindResponse.typecode = Struct(pname=("SOAP/KEGG","bfindResponse"), ofwhat=[ZSI.TC.String(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=bfindResponse, encoded="SOAP/KEGG")
+
+class btitRequest:
+    def __init__(self):
+        self._string = None
+        return
+btitRequest.typecode = Struct(pname=("SOAP/KEGG","btit"), ofwhat=[ZSI.TC.String(pname="string", aname="_string", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=btitRequest, encoded="SOAP/KEGG")
+
+class btitResponse:
+    def __init__(self):
+        self._return = None
+        return
+btitResponse.typecode = Struct(pname=("SOAP/KEGG","btitResponse"), ofwhat=[ZSI.TC.String(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=btitResponse, encoded="SOAP/KEGG")
+
+class bconvRequest:
+    def __init__(self):
+        self._string = None
+        return
+bconvRequest.typecode = Struct(pname=("SOAP/KEGG","bconv"), ofwhat=[ZSI.TC.String(pname="string", aname="_string", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=bconvRequest, encoded="SOAP/KEGG")
+
+class bconvResponse:
+    def __init__(self):
+        self._return = None
+        return
+bconvResponse.typecode = Struct(pname=("SOAP/KEGG","bconvResponse"), ofwhat=[ZSI.TC.String(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=bconvResponse, encoded="SOAP/KEGG")
+
+class get_linkdb_by_entryRequest:
+    def __init__(self):
+        self._entry_id = None
+        self._db = None
+        self._offset = None
+        self._limit = None
+        return
+get_linkdb_by_entryRequest.typecode = Struct(pname=("SOAP/KEGG","get_linkdb_by_entry"), ofwhat=[ZSI.TC.String(pname="entry_id", aname="_entry_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="db", aname="_db", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TCnumbers.Iint(pname="offset", aname="_offset", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TCnumbers.Iint(pname="limit", aname="_limit", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_linkdb_by_entryRequest, encoded="SOAP/KEGG")
+
+class get_linkdb_by_entryResponse:
+    def __init__(self):
+        self._return = None
+        return
+get_linkdb_by_entryResponse.typecode = Struct(pname=("SOAP/KEGG","get_linkdb_by_entryResponse"), ofwhat=[ns0.ArrayOfLinkDBRelation_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_linkdb_by_entryResponse, encoded="SOAP/KEGG")
+
+class get_best_neighbors_by_geneRequest:
+    def __init__(self):
+        self._genes_id = None
+        self._offset = None
+        self._limit = None
+        return
+get_best_neighbors_by_geneRequest.typecode = Struct(pname=("SOAP/KEGG","get_best_neighbors_by_gene"), ofwhat=[ZSI.TC.String(pname="genes_id", aname="_genes_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TCnumbers.Iint(pname="offset", aname="_offset", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TCnumbers.Iint(pname="limit", aname="_limit", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_best_neighbors_by_geneRequest, encoded="SOAP/KEGG")
+
+class get_best_neighbors_by_geneResponse:
+    def __init__(self):
+        self._return = None
+        return
+get_best_neighbors_by_geneResponse.typecode = Struct(pname=("SOAP/KEGG","get_best_neighbors_by_geneResponse"), ofwhat=[ns0.ArrayOfSSDBRelation_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_best_neighbors_by_geneResponse, encoded="SOAP/KEGG")
+
+class get_best_best_neighbors_by_geneRequest:
+    def __init__(self):
+        self._genes_id = None
+        self._offset = None
+        self._limit = None
+        return
+get_best_best_neighbors_by_geneRequest.typecode = Struct(pname=("SOAP/KEGG","get_best_best_neighbors_by_gene"), ofwhat=[ZSI.TC.String(pname="genes_id", aname="_genes_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TCnumbers.Iint(pname="offset", aname="_offset", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TCnumbers.Iint(pname="limit", aname="_limit", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_best_best_neighbors_by_geneRequest, encoded="SOAP/KEGG")
+
+class get_best_best_neighbors_by_geneResponse:
+    def __init__(self):
+        self._return = None
+        return
+get_best_best_neighbors_by_geneResponse.typecode = Struct(pname=("SOAP/KEGG","get_best_best_neighbors_by_geneResponse"), ofwhat=[ns0.ArrayOfSSDBRelation_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_best_best_neighbors_by_geneResponse, encoded="SOAP/KEGG")
+
+class get_reverse_best_neighbors_by_geneRequest:
+    def __init__(self):
+        self._genes_id = None
+        self._offset = None
+        self._limit = None
+        return
+get_reverse_best_neighbors_by_geneRequest.typecode = Struct(pname=("SOAP/KEGG","get_reverse_best_neighbors_by_gene"), ofwhat=[ZSI.TC.String(pname="genes_id", aname="_genes_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TCnumbers.Iint(pname="offset", aname="_offset", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TCnumbers.Iint(pname="limit", aname="_limit", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_reverse_best_neighbors_by_geneRequest, encoded="SOAP/KEGG")
+
+class get_reverse_best_neighbors_by_geneResponse:
+    def __init__(self):
+        self._return = None
+        return
+get_reverse_best_neighbors_by_geneResponse.typecode = Struct(pname=("SOAP/KEGG","get_reverse_best_neighbors_by_geneResponse"), ofwhat=[ns0.ArrayOfSSDBRelation_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_reverse_best_neighbors_by_geneResponse, encoded="SOAP/KEGG")
+
+class get_paralogs_by_geneRequest:
+    def __init__(self):
+        self._genes_id = None
+        self._offset = None
+        self._limit = None
+        return
+get_paralogs_by_geneRequest.typecode = Struct(pname=("SOAP/KEGG","get_paralogs_by_gene"), ofwhat=[ZSI.TC.String(pname="genes_id", aname="_genes_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TCnumbers.Iint(pname="offset", aname="_offset", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TCnumbers.Iint(pname="limit", aname="_limit", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_paralogs_by_geneRequest, encoded="SOAP/KEGG")
+
+class get_paralogs_by_geneResponse:
+    def __init__(self):
+        self._return = None
+        return
+get_paralogs_by_geneResponse.typecode = Struct(pname=("SOAP/KEGG","get_paralogs_by_geneResponse"), ofwhat=[ns0.ArrayOfSSDBRelation_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_paralogs_by_geneResponse, encoded="SOAP/KEGG")
+
+class get_motifs_by_geneRequest:
+    def __init__(self):
+        self._genes_id = None
+        self._db = None
+        return
+get_motifs_by_geneRequest.typecode = Struct(pname=("SOAP/KEGG","get_motifs_by_gene"), ofwhat=[ZSI.TC.String(pname="genes_id", aname="_genes_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="db", aname="_db", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_motifs_by_geneRequest, encoded="SOAP/KEGG")
+
+class get_motifs_by_geneResponse:
+    def __init__(self):
+        self._return = None
+        return
+get_motifs_by_geneResponse.typecode = Struct(pname=("SOAP/KEGG","get_motifs_by_geneResponse"), ofwhat=[ns0.ArrayOfMotifResult_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_motifs_by_geneResponse, encoded="SOAP/KEGG")
+
+class get_genes_by_motifsRequest:
+    def __init__(self):
+        self._motif_id_list = None
+        self._offset = None
+        self._limit = None
+        return
+get_genes_by_motifsRequest.typecode = Struct(pname=("SOAP/KEGG","get_genes_by_motifs"), ofwhat=[ns0.ArrayOfstring_Def(pname="motif_id_list", aname="_motif_id_list", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TCnumbers.Iint(pname="offset", aname="_offset", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TCnumbers.Iint(pname="limit", aname="_limit", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_genes_by_motifsRequest, encoded="SOAP/KEGG")
+
+class get_genes_by_motifsResponse:
+    def __init__(self):
+        self._return = None
+        return
+get_genes_by_motifsResponse.typecode = Struct(pname=("SOAP/KEGG","get_genes_by_motifsResponse"), ofwhat=[ns0.ArrayOfDefinition_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_genes_by_motifsResponse, encoded="SOAP/KEGG")
+
+class get_ko_by_geneRequest:
+    def __init__(self):
+        self._genes_id = None
+        return
+get_ko_by_geneRequest.typecode = Struct(pname=("SOAP/KEGG","get_ko_by_gene"), ofwhat=[ZSI.TC.String(pname="genes_id", aname="_genes_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_ko_by_geneRequest, encoded="SOAP/KEGG")
+
+class get_ko_by_geneResponse:
+    def __init__(self):
+        self._return = None
+        return
+get_ko_by_geneResponse.typecode = Struct(pname=("SOAP/KEGG","get_ko_by_geneResponse"), ofwhat=[ns0.ArrayOfstring_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_ko_by_geneResponse, encoded="SOAP/KEGG")
+
+class get_ko_by_ko_classRequest:
+    def __init__(self):
+        self._class_id = None
+        return
+get_ko_by_ko_classRequest.typecode = Struct(pname=("SOAP/KEGG","get_ko_by_ko_class"), ofwhat=[ZSI.TC.String(pname="class_id", aname="_class_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_ko_by_ko_classRequest, encoded="SOAP/KEGG")
+
+class get_ko_by_ko_classResponse:
+    def __init__(self):
+        self._return = None
+        return
+get_ko_by_ko_classResponse.typecode = Struct(pname=("SOAP/KEGG","get_ko_by_ko_classResponse"), ofwhat=[ns0.ArrayOfDefinition_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_ko_by_ko_classResponse, encoded="SOAP/KEGG")
+
+class get_genes_by_koRequest:
+    def __init__(self):
+        self._ko_id = None
+        self._org = None
+        return
+get_genes_by_koRequest.typecode = Struct(pname=("SOAP/KEGG","get_genes_by_ko"), ofwhat=[ZSI.TC.String(pname="ko_id", aname="_ko_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="org", aname="_org", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_genes_by_koRequest, encoded="SOAP/KEGG")
+
+class get_genes_by_koResponse:
+    def __init__(self):
+        self._return = None
+        return
+get_genes_by_koResponse.typecode = Struct(pname=("SOAP/KEGG","get_genes_by_koResponse"), ofwhat=[ns0.ArrayOfDefinition_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_genes_by_koResponse, encoded="SOAP/KEGG")
+
+class get_genes_by_ko_classRequest:
+    def __init__(self):
+        self._class_id = None
+        self._org = None
+        self._offset = None
+        self._limit = None
+        return
+get_genes_by_ko_classRequest.typecode = Struct(pname=("SOAP/KEGG","get_genes_by_ko_class"), ofwhat=[ZSI.TC.String(pname="class_id", aname="_class_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="org", aname="_org", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TCnumbers.Iint(pname="offset", aname="_offset", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TCnumbers.Iint(pname="limit", aname="_limit", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_genes_by_ko_classRequest, encoded="SOAP/KEGG")
+
+class get_genes_by_ko_classResponse:
+    def __init__(self):
+        self._return = None
+        return
+get_genes_by_ko_classResponse.typecode = Struct(pname=("SOAP/KEGG","get_genes_by_ko_classResponse"), ofwhat=[ns0.ArrayOfDefinition_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_genes_by_ko_classResponse, encoded="SOAP/KEGG")
+
+class get_elements_by_pathwayRequest:
+    def __init__(self):
+        self._pathway_id = None
+        return
+get_elements_by_pathwayRequest.typecode = Struct(pname=("SOAP/KEGG","get_elements_by_pathway"), ofwhat=[ZSI.TC.String(pname="pathway_id", aname="_pathway_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_elements_by_pathwayRequest, encoded="SOAP/KEGG")
+
+class get_elements_by_pathwayResponse:
+    def __init__(self):
+        self._return = None
+        return
+get_elements_by_pathwayResponse.typecode = Struct(pname=("SOAP/KEGG","get_elements_by_pathwayResponse"), ofwhat=[ns0.ArrayOfPathwayElement_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_elements_by_pathwayResponse, encoded="SOAP/KEGG")
+
+class get_element_relations_by_pathwayRequest:
+    def __init__(self):
+        self._pathway_id = None
+        return
+get_element_relations_by_pathwayRequest.typecode = Struct(pname=("SOAP/KEGG","get_element_relations_by_pathway"), ofwhat=[ZSI.TC.String(pname="pathway_id", aname="_pathway_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_element_relations_by_pathwayRequest, encoded="SOAP/KEGG")
+
+class get_element_relations_by_pathwayResponse:
+    def __init__(self):
+        self._return = None
+        return
+get_element_relations_by_pathwayResponse.typecode = Struct(pname=("SOAP/KEGG","get_element_relations_by_pathwayResponse"), ofwhat=[ns0.ArrayOfPathwayElementRelation_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_element_relations_by_pathwayResponse, encoded="SOAP/KEGG")
+
+class color_pathway_by_elementsRequest:
+    def __init__(self):
+        self._pathway_id = None
+        self._element_list = None
+        self._fg_color_list = None
+        self._bg_color_list = None
+        return
+color_pathway_by_elementsRequest.typecode = Struct(pname=("SOAP/KEGG","color_pathway_by_elements"), ofwhat=[ZSI.TC.String(pname="pathway_id", aname="_pathway_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ns0.ArrayOfint_Def(pname="element_list", aname="_element_list", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ns0.ArrayOfstring_Def(pname="fg_color_list", aname="_fg_color_list", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ns0.ArrayOfstring_Def(pname="bg_color_list", aname="_bg_color_list", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=color_pathway_by_elementsRequest, encoded="SOAP/KEGG")
+
+class color_pathway_by_elementsResponse:
+    def __init__(self):
+        self._return = None
+        return
+color_pathway_by_elementsResponse.typecode = Struct(pname=("SOAP/KEGG","color_pathway_by_elementsResponse"), ofwhat=[ZSI.TC.String(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=color_pathway_by_elementsResponse, encoded="SOAP/KEGG")
+
+class get_html_of_colored_pathway_by_elementsRequest:
+    def __init__(self):
+        self._pathway_id = None
+        self._element_list = None
+        self._fg_color_list = None
+        self._bg_color_list = None
+        return
+get_html_of_colored_pathway_by_elementsRequest.typecode = Struct(pname=("SOAP/KEGG","get_html_of_colored_pathway_by_elements"), ofwhat=[ZSI.TC.String(pname="pathway_id", aname="_pathway_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ns0.ArrayOfint_Def(pname="element_list", aname="_element_list", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ns0.ArrayOfstring_Def(pname="fg_color_list", aname="_fg_color_list", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ns0.ArrayOfstring_Def(pname="bg_color_list", aname="_bg_color_list", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_html_of_colored_pathway_by_elementsRequest, encoded="SOAP/KEGG")
+
+class get_html_of_colored_pathway_by_elementsResponse:
+    def __init__(self):
+        self._return = None
+        return
+get_html_of_colored_pathway_by_elementsResponse.typecode = Struct(pname=("SOAP/KEGG","get_html_of_colored_pathway_by_elementsResponse"), ofwhat=[ZSI.TC.String(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_html_of_colored_pathway_by_elementsResponse, encoded="SOAP/KEGG")
+
+class mark_pathway_by_objectsRequest:
+    def __init__(self):
+        self._pathway_id = None
+        self._object_id_list = None
+        return
+mark_pathway_by_objectsRequest.typecode = Struct(pname=("SOAP/KEGG","mark_pathway_by_objects"), ofwhat=[ZSI.TC.String(pname="pathway_id", aname="_pathway_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ns0.ArrayOfstring_Def(pname="object_id_list", aname="_object_id_list", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=mark_pathway_by_objectsRequest, encoded="SOAP/KEGG")
+
+class mark_pathway_by_objectsResponse:
+    def __init__(self):
+        self._return = None
+        return
+mark_pathway_by_objectsResponse.typecode = Struct(pname=("SOAP/KEGG","mark_pathway_by_objectsResponse"), ofwhat=[ZSI.TC.String(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=mark_pathway_by_objectsResponse, encoded="SOAP/KEGG")
+
+class color_pathway_by_objectsRequest:
+    def __init__(self):
+        self._pathway_id = None
+        self._object_id_list = None
+        self._fg_color_list = None
+        self._bg_color_list = None
+        return
+color_pathway_by_objectsRequest.typecode = Struct(pname=("SOAP/KEGG","color_pathway_by_objects"), ofwhat=[ZSI.TC.String(pname="pathway_id", aname="_pathway_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ns0.ArrayOfstring_Def(pname="object_id_list", aname="_object_id_list", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ns0.ArrayOfstring_Def(pname="fg_color_list", aname="_fg_color_list", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ns0.ArrayOfstring_Def(pname="bg_color_list", aname="_bg_color_list", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=color_pathway_by_objectsRequest, encoded="SOAP/KEGG")
+
+class color_pathway_by_objectsResponse:
+    def __init__(self):
+        self._return = None
+        return
+color_pathway_by_objectsResponse.typecode = Struct(pname=("SOAP/KEGG","color_pathway_by_objectsResponse"), ofwhat=[ZSI.TC.String(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=color_pathway_by_objectsResponse, encoded="SOAP/KEGG")
+
+class get_html_of_marked_pathway_by_objectsRequest:
+    def __init__(self):
+        self._pathway_id = None
+        self._object_id_list = None
+        return
+get_html_of_marked_pathway_by_objectsRequest.typecode = Struct(pname=("SOAP/KEGG","get_html_of_marked_pathway_by_objects"), ofwhat=[ZSI.TC.String(pname="pathway_id", aname="_pathway_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ns0.ArrayOfstring_Def(pname="object_id_list", aname="_object_id_list", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_html_of_marked_pathway_by_objectsRequest, encoded="SOAP/KEGG")
+
+class get_html_of_marked_pathway_by_objectsResponse:
+    def __init__(self):
+        self._return = None
+        return
+get_html_of_marked_pathway_by_objectsResponse.typecode = Struct(pname=("SOAP/KEGG","get_html_of_marked_pathway_by_objectsResponse"), ofwhat=[ZSI.TC.String(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_html_of_marked_pathway_by_objectsResponse, encoded="SOAP/KEGG")
+
+class get_html_of_colored_pathway_by_objectsRequest:
+    def __init__(self):
+        self._pathway_id = None
+        self._object_id_list = None
+        self._fg_color_list = None
+        self._bg_color_list = None
+        return
+get_html_of_colored_pathway_by_objectsRequest.typecode = Struct(pname=("SOAP/KEGG","get_html_of_colored_pathway_by_objects"), ofwhat=[ZSI.TC.String(pname="pathway_id", aname="_pathway_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ns0.ArrayOfstring_Def(pname="object_id_list", aname="_object_id_list", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ns0.ArrayOfstring_Def(pname="fg_color_list", aname="_fg_color_list", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ns0.ArrayOfstring_Def(pname="bg_color_list", aname="_bg_color_list", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_html_of_colored_pathway_by_objectsRequest, encoded="SOAP/KEGG")
+
+class get_html_of_colored_pathway_by_objectsResponse:
+    def __init__(self):
+        self._return = None
+        return
+get_html_of_colored_pathway_by_objectsResponse.typecode = Struct(pname=("SOAP/KEGG","get_html_of_colored_pathway_by_objectsResponse"), ofwhat=[ZSI.TC.String(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_html_of_colored_pathway_by_objectsResponse, encoded="SOAP/KEGG")
+
+class get_genes_by_pathwayRequest:
+    def __init__(self):
+        self._pathway_id = None
+        return
+get_genes_by_pathwayRequest.typecode = Struct(pname=("SOAP/KEGG","get_genes_by_pathway"), ofwhat=[ZSI.TC.String(pname="pathway_id", aname="_pathway_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_genes_by_pathwayRequest, encoded="SOAP/KEGG")
+
+class get_genes_by_pathwayResponse:
+    def __init__(self):
+        self._return = None
+        return
+get_genes_by_pathwayResponse.typecode = Struct(pname=("SOAP/KEGG","get_genes_by_pathwayResponse"), ofwhat=[ns0.ArrayOfstring_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_genes_by_pathwayResponse, encoded="SOAP/KEGG")
+
+class get_enzymes_by_pathwayRequest:
+    def __init__(self):
+        self._pathway_id = None
+        return
+get_enzymes_by_pathwayRequest.typecode = Struct(pname=("SOAP/KEGG","get_enzymes_by_pathway"), ofwhat=[ZSI.TC.String(pname="pathway_id", aname="_pathway_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_enzymes_by_pathwayRequest, encoded="SOAP/KEGG")
+
+class get_enzymes_by_pathwayResponse:
+    def __init__(self):
+        self._return = None
+        return
+get_enzymes_by_pathwayResponse.typecode = Struct(pname=("SOAP/KEGG","get_enzymes_by_pathwayResponse"), ofwhat=[ns0.ArrayOfstring_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_enzymes_by_pathwayResponse, encoded="SOAP/KEGG")
+
+class get_reactions_by_pathwayRequest:
+    def __init__(self):
+        self._pathway_id = None
+        return
+get_reactions_by_pathwayRequest.typecode = Struct(pname=("SOAP/KEGG","get_reactions_by_pathway"), ofwhat=[ZSI.TC.String(pname="pathway_id", aname="_pathway_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_reactions_by_pathwayRequest, encoded="SOAP/KEGG")
+
+class get_reactions_by_pathwayResponse:
+    def __init__(self):
+        self._return = None
+        return
+get_reactions_by_pathwayResponse.typecode = Struct(pname=("SOAP/KEGG","get_reactions_by_pathwayResponse"), ofwhat=[ns0.ArrayOfstring_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_reactions_by_pathwayResponse, encoded="SOAP/KEGG")
+
+class get_pathways_by_genesRequest:
+    def __init__(self):
+        self._genes_id_list = None
+        return
+get_pathways_by_genesRequest.typecode = Struct(pname=("SOAP/KEGG","get_pathways_by_genes"), ofwhat=[ns0.ArrayOfstring_Def(pname="genes_id_list", aname="_genes_id_list", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_pathways_by_genesRequest, encoded="SOAP/KEGG")
+
+class get_pathways_by_genesResponse:
+    def __init__(self):
+        self._return = None
+        return
+get_pathways_by_genesResponse.typecode = Struct(pname=("SOAP/KEGG","get_pathways_by_genesResponse"), ofwhat=[ns0.ArrayOfstring_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_pathways_by_genesResponse, encoded="SOAP/KEGG")
+
+class get_pathways_by_enzymesRequest:
+    def __init__(self):
+        self._enzyme_id_list = None
+        return
+get_pathways_by_enzymesRequest.typecode = Struct(pname=("SOAP/KEGG","get_pathways_by_enzymes"), ofwhat=[ns0.ArrayOfstring_Def(pname="enzyme_id_list", aname="_enzyme_id_list", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_pathways_by_enzymesRequest, encoded="SOAP/KEGG")
+
+class get_pathways_by_enzymesResponse:
+    def __init__(self):
+        self._return = None
+        return
+get_pathways_by_enzymesResponse.typecode = Struct(pname=("SOAP/KEGG","get_pathways_by_enzymesResponse"), ofwhat=[ns0.ArrayOfstring_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_pathways_by_enzymesResponse, encoded="SOAP/KEGG")
+
+class get_pathways_by_reactionsRequest:
+    def __init__(self):
+        self._reaction_id_list = None
+        return
+get_pathways_by_reactionsRequest.typecode = Struct(pname=("SOAP/KEGG","get_pathways_by_reactions"), ofwhat=[ns0.ArrayOfstring_Def(pname="reaction_id_list", aname="_reaction_id_list", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_pathways_by_reactionsRequest, encoded="SOAP/KEGG")
+
+class get_pathways_by_reactionsResponse:
+    def __init__(self):
+        self._return = None
+        return
+get_pathways_by_reactionsResponse.typecode = Struct(pname=("SOAP/KEGG","get_pathways_by_reactionsResponse"), ofwhat=[ns0.ArrayOfstring_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_pathways_by_reactionsResponse, encoded="SOAP/KEGG")
+
+class get_linked_pathwaysRequest:
+    def __init__(self):
+        self._pathway_id = None
+        return
+get_linked_pathwaysRequest.typecode = Struct(pname=("SOAP/KEGG","get_linked_pathways"), ofwhat=[ZSI.TC.String(pname="pathway_id", aname="_pathway_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_linked_pathwaysRequest, encoded="SOAP/KEGG")
+
+class get_linked_pathwaysResponse:
+    def __init__(self):
+        self._return = None
+        return
+get_linked_pathwaysResponse.typecode = Struct(pname=("SOAP/KEGG","get_linked_pathwaysResponse"), ofwhat=[ns0.ArrayOfstring_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_linked_pathwaysResponse, encoded="SOAP/KEGG")
+
+class get_genes_by_enzymeRequest:
+    def __init__(self):
+        self._enzyme_id = None
+        self._org = None
+        return
+get_genes_by_enzymeRequest.typecode = Struct(pname=("SOAP/KEGG","get_genes_by_enzyme"), ofwhat=[ZSI.TC.String(pname="enzyme_id", aname="_enzyme_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="org", aname="_org", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_genes_by_enzymeRequest, encoded="SOAP/KEGG")
+
+class get_genes_by_enzymeResponse:
+    def __init__(self):
+        self._return = None
+        return
+get_genes_by_enzymeResponse.typecode = Struct(pname=("SOAP/KEGG","get_genes_by_enzymeResponse"), ofwhat=[ns0.ArrayOfstring_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_genes_by_enzymeResponse, encoded="SOAP/KEGG")
+
+class get_enzymes_by_geneRequest:
+    def __init__(self):
+        self._genes_id = None
+        return
+get_enzymes_by_geneRequest.typecode = Struct(pname=("SOAP/KEGG","get_enzymes_by_gene"), ofwhat=[ZSI.TC.String(pname="genes_id", aname="_genes_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_enzymes_by_geneRequest, encoded="SOAP/KEGG")
+
+class get_enzymes_by_geneResponse:
+    def __init__(self):
+        self._return = None
+        return
+get_enzymes_by_geneResponse.typecode = Struct(pname=("SOAP/KEGG","get_enzymes_by_geneResponse"), ofwhat=[ns0.ArrayOfstring_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_enzymes_by_geneResponse, encoded="SOAP/KEGG")
+
+class get_enzymes_by_reactionRequest:
+    def __init__(self):
+        self._reaction_id = None
+        return
+get_enzymes_by_reactionRequest.typecode = Struct(pname=("SOAP/KEGG","get_enzymes_by_reaction"), ofwhat=[ZSI.TC.String(pname="reaction_id", aname="_reaction_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_enzymes_by_reactionRequest, encoded="SOAP/KEGG")
+
+class get_enzymes_by_reactionResponse:
+    def __init__(self):
+        self._return = None
+        return
+get_enzymes_by_reactionResponse.typecode = Struct(pname=("SOAP/KEGG","get_enzymes_by_reactionResponse"), ofwhat=[ns0.ArrayOfstring_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_enzymes_by_reactionResponse, encoded="SOAP/KEGG")
+
+class get_reactions_by_enzymeRequest:
+    def __init__(self):
+        self._enzyme_id = None
+        return
+get_reactions_by_enzymeRequest.typecode = Struct(pname=("SOAP/KEGG","get_reactions_by_enzyme"), ofwhat=[ZSI.TC.String(pname="enzyme_id", aname="_enzyme_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_reactions_by_enzymeRequest, encoded="SOAP/KEGG")
+
+class get_reactions_by_enzymeResponse:
+    def __init__(self):
+        self._return = None
+        return
+get_reactions_by_enzymeResponse.typecode = Struct(pname=("SOAP/KEGG","get_reactions_by_enzymeResponse"), ofwhat=[ns0.ArrayOfstring_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_reactions_by_enzymeResponse, encoded="SOAP/KEGG")
+
+class get_genes_by_organismRequest:
+    def __init__(self):
+        self._org = None
+        self._offset = None
+        self._limit = None
+        return
+get_genes_by_organismRequest.typecode = Struct(pname=("SOAP/KEGG","get_genes_by_organism"), ofwhat=[ZSI.TC.String(pname="org", aname="_org", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TCnumbers.Iint(pname="offset", aname="_offset", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TCnumbers.Iint(pname="limit", aname="_limit", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_genes_by_organismRequest, encoded="SOAP/KEGG")
+
+class get_genes_by_organismResponse:
+    def __init__(self):
+        self._return = None
+        return
+get_genes_by_organismResponse.typecode = Struct(pname=("SOAP/KEGG","get_genes_by_organismResponse"), ofwhat=[ns0.ArrayOfstring_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_genes_by_organismResponse, encoded="SOAP/KEGG")
+
+class get_number_of_genes_by_organismRequest:
+    def __init__(self):
+        self._abbr = None
+        return
+get_number_of_genes_by_organismRequest.typecode = Struct(pname=("SOAP/KEGG","get_number_of_genes_by_organism"), ofwhat=[ZSI.TC.String(pname="abbr", aname="_abbr", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_number_of_genes_by_organismRequest, encoded="SOAP/KEGG")
+
+class get_number_of_genes_by_organismResponse:
+    def __init__(self):
+        self._return = None
+        return
+get_number_of_genes_by_organismResponse.typecode = Struct(pname=("SOAP/KEGG","get_number_of_genes_by_organismResponse"), ofwhat=[ZSI.TCnumbers.Iint(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_number_of_genes_by_organismResponse, encoded="SOAP/KEGG")
+
+class get_reactions_by_glycanRequest:
+    def __init__(self):
+        self._glycan_id = None
+        return
+get_reactions_by_glycanRequest.typecode = Struct(pname=("SOAP/KEGG","get_reactions_by_glycan"), ofwhat=[ZSI.TC.String(pname="glycan_id", aname="_glycan_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_reactions_by_glycanRequest, encoded="SOAP/KEGG")
+
+class get_reactions_by_glycanResponse:
+    def __init__(self):
+        self._return = None
+        return
+get_reactions_by_glycanResponse.typecode = Struct(pname=("SOAP/KEGG","get_reactions_by_glycanResponse"), ofwhat=[ns0.ArrayOfstring_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_reactions_by_glycanResponse, encoded="SOAP/KEGG")
+
+class get_reactions_by_compoundRequest:
+    def __init__(self):
+        self._compound_id = None
+        return
+get_reactions_by_compoundRequest.typecode = Struct(pname=("SOAP/KEGG","get_reactions_by_compound"), ofwhat=[ZSI.TC.String(pname="compound_id", aname="_compound_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_reactions_by_compoundRequest, encoded="SOAP/KEGG")
+
+class get_reactions_by_compoundResponse:
+    def __init__(self):
+        self._return = None
+        return
+get_reactions_by_compoundResponse.typecode = Struct(pname=("SOAP/KEGG","get_reactions_by_compoundResponse"), ofwhat=[ns0.ArrayOfstring_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_reactions_by_compoundResponse, encoded="SOAP/KEGG")
+
+class get_enzymes_by_glycanRequest:
+    def __init__(self):
+        self._glycan_id = None
+        return
+get_enzymes_by_glycanRequest.typecode = Struct(pname=("SOAP/KEGG","get_enzymes_by_glycan"), ofwhat=[ZSI.TC.String(pname="glycan_id", aname="_glycan_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_enzymes_by_glycanRequest, encoded="SOAP/KEGG")
+
+class get_enzymes_by_glycanResponse:
+    def __init__(self):
+        self._return = None
+        return
+get_enzymes_by_glycanResponse.typecode = Struct(pname=("SOAP/KEGG","get_enzymes_by_glycanResponse"), ofwhat=[ns0.ArrayOfstring_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_enzymes_by_glycanResponse, encoded="SOAP/KEGG")
+
+class get_enzymes_by_compoundRequest:
+    def __init__(self):
+        self._compound_id = None
+        return
+get_enzymes_by_compoundRequest.typecode = Struct(pname=("SOAP/KEGG","get_enzymes_by_compound"), ofwhat=[ZSI.TC.String(pname="compound_id", aname="_compound_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_enzymes_by_compoundRequest, encoded="SOAP/KEGG")
+
+class get_enzymes_by_compoundResponse:
+    def __init__(self):
+        self._return = None
+        return
+get_enzymes_by_compoundResponse.typecode = Struct(pname=("SOAP/KEGG","get_enzymes_by_compoundResponse"), ofwhat=[ns0.ArrayOfstring_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_enzymes_by_compoundResponse, encoded="SOAP/KEGG")
+
+class get_pathways_by_compoundsRequest:
+    def __init__(self):
+        self._compound_id_list = None
+        return
+get_pathways_by_compoundsRequest.typecode = Struct(pname=("SOAP/KEGG","get_pathways_by_compounds"), ofwhat=[ns0.ArrayOfstring_Def(pname="compound_id_list", aname="_compound_id_list", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_pathways_by_compoundsRequest, encoded="SOAP/KEGG")
+
+class get_pathways_by_compoundsResponse:
+    def __init__(self):
+        self._return = None
+        return
+get_pathways_by_compoundsResponse.typecode = Struct(pname=("SOAP/KEGG","get_pathways_by_compoundsResponse"), ofwhat=[ns0.ArrayOfstring_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_pathways_by_compoundsResponse, encoded="SOAP/KEGG")
+
+class get_pathways_by_glycansRequest:
+    def __init__(self):
+        self._glycan_id_list = None
+        return
+get_pathways_by_glycansRequest.typecode = Struct(pname=("SOAP/KEGG","get_pathways_by_glycans"), ofwhat=[ns0.ArrayOfstring_Def(pname="glycan_id_list", aname="_glycan_id_list", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_pathways_by_glycansRequest, encoded="SOAP/KEGG")
+
+class get_pathways_by_glycansResponse:
+    def __init__(self):
+        self._return = None
+        return
+get_pathways_by_glycansResponse.typecode = Struct(pname=("SOAP/KEGG","get_pathways_by_glycansResponse"), ofwhat=[ns0.ArrayOfstring_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_pathways_by_glycansResponse, encoded="SOAP/KEGG")
+
+class get_compounds_by_pathwayRequest:
+    def __init__(self):
+        self._pathway_id = None
+        return
+get_compounds_by_pathwayRequest.typecode = Struct(pname=("SOAP/KEGG","get_compounds_by_pathway"), ofwhat=[ZSI.TC.String(pname="pathway_id", aname="_pathway_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_compounds_by_pathwayRequest, encoded="SOAP/KEGG")
+
+class get_compounds_by_pathwayResponse:
+    def __init__(self):
+        self._return = None
+        return
+get_compounds_by_pathwayResponse.typecode = Struct(pname=("SOAP/KEGG","get_compounds_by_pathwayResponse"), ofwhat=[ns0.ArrayOfstring_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_compounds_by_pathwayResponse, encoded="SOAP/KEGG")
+
+class get_glycans_by_pathwayRequest:
+    def __init__(self):
+        self._pathway_id = None
+        return
+get_glycans_by_pathwayRequest.typecode = Struct(pname=("SOAP/KEGG","get_glycans_by_pathway"), ofwhat=[ZSI.TC.String(pname="pathway_id", aname="_pathway_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_glycans_by_pathwayRequest, encoded="SOAP/KEGG")
+
+class get_glycans_by_pathwayResponse:
+    def __init__(self):
+        self._return = None
+        return
+get_glycans_by_pathwayResponse.typecode = Struct(pname=("SOAP/KEGG","get_glycans_by_pathwayResponse"), ofwhat=[ns0.ArrayOfstring_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_glycans_by_pathwayResponse, encoded="SOAP/KEGG")
+
+class get_compounds_by_reactionRequest:
+    def __init__(self):
+        self._reaction_id = None
+        return
+get_compounds_by_reactionRequest.typecode = Struct(pname=("SOAP/KEGG","get_compounds_by_reaction"), ofwhat=[ZSI.TC.String(pname="reaction_id", aname="_reaction_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_compounds_by_reactionRequest, encoded="SOAP/KEGG")
+
+class get_compounds_by_reactionResponse:
+    def __init__(self):
+        self._return = None
+        return
+get_compounds_by_reactionResponse.typecode = Struct(pname=("SOAP/KEGG","get_compounds_by_reactionResponse"), ofwhat=[ns0.ArrayOfstring_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_compounds_by_reactionResponse, encoded="SOAP/KEGG")
+
+class get_glycans_by_reactionRequest:
+    def __init__(self):
+        self._reaction_id = None
+        return
+get_glycans_by_reactionRequest.typecode = Struct(pname=("SOAP/KEGG","get_glycans_by_reaction"), ofwhat=[ZSI.TC.String(pname="reaction_id", aname="_reaction_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_glycans_by_reactionRequest, encoded="SOAP/KEGG")
+
+class get_glycans_by_reactionResponse:
+    def __init__(self):
+        self._return = None
+        return
+get_glycans_by_reactionResponse.typecode = Struct(pname=("SOAP/KEGG","get_glycans_by_reactionResponse"), ofwhat=[ns0.ArrayOfstring_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_glycans_by_reactionResponse, encoded="SOAP/KEGG")
+
+class get_compounds_by_enzymeRequest:
+    def __init__(self):
+        self._enzyme_id = None
+        return
+get_compounds_by_enzymeRequest.typecode = Struct(pname=("SOAP/KEGG","get_compounds_by_enzyme"), ofwhat=[ZSI.TC.String(pname="enzyme_id", aname="_enzyme_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_compounds_by_enzymeRequest, encoded="SOAP/KEGG")
+
+class get_compounds_by_enzymeResponse:
+    def __init__(self):
+        self._return = None
+        return
+get_compounds_by_enzymeResponse.typecode = Struct(pname=("SOAP/KEGG","get_compounds_by_enzymeResponse"), ofwhat=[ns0.ArrayOfstring_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_compounds_by_enzymeResponse, encoded="SOAP/KEGG")
+
+class get_glycans_by_enzymeRequest:
+    def __init__(self):
+        self._enzyme_id = None
+        return
+get_glycans_by_enzymeRequest.typecode = Struct(pname=("SOAP/KEGG","get_glycans_by_enzyme"), ofwhat=[ZSI.TC.String(pname="enzyme_id", aname="_enzyme_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_glycans_by_enzymeRequest, encoded="SOAP/KEGG")
+
+class get_glycans_by_enzymeResponse:
+    def __init__(self):
+        self._return = None
+        return
+get_glycans_by_enzymeResponse.typecode = Struct(pname=("SOAP/KEGG","get_glycans_by_enzymeResponse"), ofwhat=[ns0.ArrayOfstring_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_glycans_by_enzymeResponse, encoded="SOAP/KEGG")
+
+class convert_mol_to_kcfRequest:
+    def __init__(self):
+        self._mol_text = None
+        return
+convert_mol_to_kcfRequest.typecode = Struct(pname=("SOAP/KEGG","convert_mol_to_kcf"), ofwhat=[ZSI.TC.String(pname="mol_text", aname="_mol_text", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=convert_mol_to_kcfRequest, encoded="SOAP/KEGG")
+
+class convert_mol_to_kcfResponse:
+    def __init__(self):
+        self._return = None
+        return
+convert_mol_to_kcfResponse.typecode = Struct(pname=("SOAP/KEGG","convert_mol_to_kcfResponse"), ofwhat=[ZSI.TC.String(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=convert_mol_to_kcfResponse, encoded="SOAP/KEGG")
+
+class get_kos_by_pathwayRequest:
+    def __init__(self):
+        self._pathway_id = None
+        return
+get_kos_by_pathwayRequest.typecode = Struct(pname=("SOAP/KEGG","get_kos_by_pathway"), ofwhat=[ZSI.TC.String(pname="pathway_id", aname="_pathway_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_kos_by_pathwayRequest, encoded="SOAP/KEGG")
+
+class get_kos_by_pathwayResponse:
+    def __init__(self):
+        self._return = None
+        return
+get_kos_by_pathwayResponse.typecode = Struct(pname=("SOAP/KEGG","get_kos_by_pathwayResponse"), ofwhat=[ns0.ArrayOfstring_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_kos_by_pathwayResponse, encoded="SOAP/KEGG")
+
+class get_pathways_by_kosRequest:
+    def __init__(self):
+        self._ko_id_list = None
+        self._org = None
+        return
+get_pathways_by_kosRequest.typecode = Struct(pname=("SOAP/KEGG","get_pathways_by_kos"), ofwhat=[ns0.ArrayOfstring_Def(pname="ko_id_list", aname="_ko_id_list", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="org", aname="_org", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_pathways_by_kosRequest, encoded="SOAP/KEGG")
+
+class get_pathways_by_kosResponse:
+    def __init__(self):
+        self._return = None
+        return
+get_pathways_by_kosResponse.typecode = Struct(pname=("SOAP/KEGG","get_pathways_by_kosResponse"), ofwhat=[ns0.ArrayOfstring_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_pathways_by_kosResponse, encoded="SOAP/KEGG")
+
+class search_compounds_by_nameRequest:
+    def __init__(self):
+        self._name = None
+        return
+search_compounds_by_nameRequest.typecode = Struct(pname=("SOAP/KEGG","search_compounds_by_name"), ofwhat=[ZSI.TC.String(pname="name", aname="_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=search_compounds_by_nameRequest, encoded="SOAP/KEGG")
+
+class search_compounds_by_nameResponse:
+    def __init__(self):
+        self._return = None
+        return
+search_compounds_by_nameResponse.typecode = Struct(pname=("SOAP/KEGG","search_compounds_by_nameResponse"), ofwhat=[ns0.ArrayOfstring_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=search_compounds_by_nameResponse, encoded="SOAP/KEGG")
+
+class search_glycans_by_nameRequest:
+    def __init__(self):
+        self._name = None
+        return
+search_glycans_by_nameRequest.typecode = Struct(pname=("SOAP/KEGG","search_glycans_by_name"), ofwhat=[ZSI.TC.String(pname="name", aname="_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=search_glycans_by_nameRequest, encoded="SOAP/KEGG")
+
+class search_glycans_by_nameResponse:
+    def __init__(self):
+        self._return = None
+        return
+search_glycans_by_nameResponse.typecode = Struct(pname=("SOAP/KEGG","search_glycans_by_nameResponse"), ofwhat=[ns0.ArrayOfstring_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=search_glycans_by_nameResponse, encoded="SOAP/KEGG")
+
+class search_compounds_by_compositionRequest:
+    def __init__(self):
+        self._composition = None
+        return
+search_compounds_by_compositionRequest.typecode = Struct(pname=("SOAP/KEGG","search_compounds_by_composition"), ofwhat=[ZSI.TC.String(pname="composition", aname="_composition", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=search_compounds_by_compositionRequest, encoded="SOAP/KEGG")
+
+class search_compounds_by_compositionResponse:
+    def __init__(self):
+        self._return = None
+        return
+search_compounds_by_compositionResponse.typecode = Struct(pname=("SOAP/KEGG","search_compounds_by_compositionResponse"), ofwhat=[ns0.ArrayOfstring_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=search_compounds_by_compositionResponse, encoded="SOAP/KEGG")
+
+class search_compounds_by_massRequest:
+    def __init__(self):
+        self._mass = None
+        self._range = None
+        return
+search_compounds_by_massRequest.typecode = Struct(pname=("SOAP/KEGG","search_compounds_by_mass"), ofwhat=[ZSI.TCnumbers.FPfloat(pname="mass", aname="_mass", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TCnumbers.FPfloat(pname="range", aname="_range", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=search_compounds_by_massRequest, encoded="SOAP/KEGG")
+
+class search_compounds_by_massResponse:
+    def __init__(self):
+        self._return = None
+        return
+search_compounds_by_massResponse.typecode = Struct(pname=("SOAP/KEGG","search_compounds_by_massResponse"), ofwhat=[ns0.ArrayOfstring_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=search_compounds_by_massResponse, encoded="SOAP/KEGG")
+
+class search_glycans_by_massRequest:
+    def __init__(self):
+        self._mass = None
+        self._range = None
+        return
+search_glycans_by_massRequest.typecode = Struct(pname=("SOAP/KEGG","search_glycans_by_mass"), ofwhat=[ZSI.TCnumbers.FPfloat(pname="mass", aname="_mass", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TCnumbers.FPfloat(pname="range", aname="_range", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=search_glycans_by_massRequest, encoded="SOAP/KEGG")
+
+class search_glycans_by_massResponse:
+    def __init__(self):
+        self._return = None
+        return
+search_glycans_by_massResponse.typecode = Struct(pname=("SOAP/KEGG","search_glycans_by_massResponse"), ofwhat=[ns0.ArrayOfstring_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=search_glycans_by_massResponse, encoded="SOAP/KEGG")
+
+class search_glycans_by_compositionRequest:
+    def __init__(self):
+        self._composition = None
+        return
+search_glycans_by_compositionRequest.typecode = Struct(pname=("SOAP/KEGG","search_glycans_by_composition"), ofwhat=[ZSI.TC.String(pname="composition", aname="_composition", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=search_glycans_by_compositionRequest, encoded="SOAP/KEGG")
+
+class search_glycans_by_compositionResponse:
+    def __init__(self):
+        self._return = None
+        return
+search_glycans_by_compositionResponse.typecode = Struct(pname=("SOAP/KEGG","search_glycans_by_compositionResponse"), ofwhat=[ns0.ArrayOfstring_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=search_glycans_by_compositionResponse, encoded="SOAP/KEGG")
+
+class search_compounds_by_subcompRequest:
+    def __init__(self):
+        self._mol = None
+        self._offset = None
+        self._limit = None
+        return
+search_compounds_by_subcompRequest.typecode = Struct(pname=("SOAP/KEGG","search_compounds_by_subcomp"), ofwhat=[ZSI.TC.String(pname="mol", aname="_mol", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TCnumbers.Iint(pname="offset", aname="_offset", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TCnumbers.Iint(pname="limit", aname="_limit", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=search_compounds_by_subcompRequest, encoded="SOAP/KEGG")
+
+class search_compounds_by_subcompResponse:
+    def __init__(self):
+        self._return = None
+        return
+search_compounds_by_subcompResponse.typecode = Struct(pname=("SOAP/KEGG","search_compounds_by_subcompResponse"), ofwhat=[ns0.ArrayOfStructureAlignment_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=search_compounds_by_subcompResponse, encoded="SOAP/KEGG")
+
+class search_glycans_by_kcamRequest:
+    def __init__(self):
+        self._kcf = None
+        self._program = None
+        self._option = None
+        self._offset = None
+        self._limit = None
+        return
+search_glycans_by_kcamRequest.typecode = Struct(pname=("SOAP/KEGG","search_glycans_by_kcam"), ofwhat=[ZSI.TC.String(pname="kcf", aname="_kcf", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="program", aname="_program", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="option", aname="_option", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TCnumbers.Iint(pname="offset", aname="_offset", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TCnumbers.Iint(pname="limit", aname="_limit", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=search_glycans_by_kcamRequest, encoded="SOAP/KEGG")
+
+class search_glycans_by_kcamResponse:
+    def __init__(self):
+        self._return = None
+        return
+search_glycans_by_kcamResponse.typecode = Struct(pname=("SOAP/KEGG","search_glycans_by_kcamResponse"), ofwhat=[ns0.ArrayOfStructureAlignment_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=search_glycans_by_kcamResponse, encoded="SOAP/KEGG")
+
+class get_linkdb_between_databasesRequest:
+    def __init__(self):
+        self._from_db = None
+        self._to_db = None
+        self._offset = None
+        self._limit = None
+        return
+get_linkdb_between_databasesRequest.typecode = Struct(pname=("SOAP/KEGG","get_linkdb_between_databases"), ofwhat=[ZSI.TC.String(pname="from_db", aname="_from_db", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="to_db", aname="_to_db", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TCnumbers.Iint(pname="offset", aname="_offset", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TCnumbers.Iint(pname="limit", aname="_limit", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_linkdb_between_databasesRequest, encoded="SOAP/KEGG")
+
+class get_linkdb_between_databasesResponse:
+    def __init__(self):
+        self._return = None
+        return
+get_linkdb_between_databasesResponse.typecode = Struct(pname=("SOAP/KEGG","get_linkdb_between_databasesResponse"), ofwhat=[ns0.ArrayOfLinkDBRelation_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_linkdb_between_databasesResponse, encoded="SOAP/KEGG")
+
+class search_drugs_by_nameRequest:
+    def __init__(self):
+        self._name = None
+        return
+search_drugs_by_nameRequest.typecode = Struct(pname=("SOAP/KEGG","search_drugs_by_name"), ofwhat=[ZSI.TC.String(pname="name", aname="_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=search_drugs_by_nameRequest, encoded="SOAP/KEGG")
+
+class search_drugs_by_nameResponse:
+    def __init__(self):
+        self._return = None
+        return
+search_drugs_by_nameResponse.typecode = Struct(pname=("SOAP/KEGG","search_drugs_by_nameResponse"), ofwhat=[ns0.ArrayOfstring_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=search_drugs_by_nameResponse, encoded="SOAP/KEGG")
+
+class search_drugs_by_compositionRequest:
+    def __init__(self):
+        self._composition = None
+        return
+search_drugs_by_compositionRequest.typecode = Struct(pname=("SOAP/KEGG","search_drugs_by_composition"), ofwhat=[ZSI.TC.String(pname="composition", aname="_composition", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=search_drugs_by_compositionRequest, encoded="SOAP/KEGG")
+
+class search_drugs_by_compositionResponse:
+    def __init__(self):
+        self._return = None
+        return
+search_drugs_by_compositionResponse.typecode = Struct(pname=("SOAP/KEGG","search_drugs_by_compositionResponse"), ofwhat=[ns0.ArrayOfstring_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=search_drugs_by_compositionResponse, encoded="SOAP/KEGG")
+
+class search_drugs_by_massRequest:
+    def __init__(self):
+        self._mass = None
+        self._range = None
+        return
+search_drugs_by_massRequest.typecode = Struct(pname=("SOAP/KEGG","search_drugs_by_mass"), ofwhat=[ZSI.TCnumbers.FPfloat(pname="mass", aname="_mass", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TCnumbers.FPfloat(pname="range", aname="_range", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=search_drugs_by_massRequest, encoded="SOAP/KEGG")
+
+class search_drugs_by_massResponse:
+    def __init__(self):
+        self._return = None
+        return
+search_drugs_by_massResponse.typecode = Struct(pname=("SOAP/KEGG","search_drugs_by_massResponse"), ofwhat=[ns0.ArrayOfstring_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=search_drugs_by_massResponse, encoded="SOAP/KEGG")
+
+class search_drugs_by_subcompRequest:
+    def __init__(self):
+        self._mol = None
+        self._offset = None
+        self._limit = None
+        return
+search_drugs_by_subcompRequest.typecode = Struct(pname=("SOAP/KEGG","search_drugs_by_subcomp"), ofwhat=[ZSI.TC.String(pname="mol", aname="_mol", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TCnumbers.Iint(pname="offset", aname="_offset", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TCnumbers.Iint(pname="limit", aname="_limit", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=search_drugs_by_subcompRequest, encoded="SOAP/KEGG")
+
+class search_drugs_by_subcompResponse:
+    def __init__(self):
+        self._return = None
+        return
+search_drugs_by_subcompResponse.typecode = Struct(pname=("SOAP/KEGG","search_drugs_by_subcompResponse"), ofwhat=[ns0.ArrayOfStructureAlignment_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=search_drugs_by_subcompResponse, encoded="SOAP/KEGG")
+
+class get_references_by_pathwayRequest:
+    def __init__(self):
+        self._pathway_id = None
+        return
+get_references_by_pathwayRequest.typecode = Struct(pname=("SOAP/KEGG","get_references_by_pathway"), ofwhat=[ZSI.TC.String(pname="pathway_id", aname="_pathway_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_references_by_pathwayRequest, encoded="SOAP/KEGG")
+
+class get_references_by_pathwayResponse:
+    def __init__(self):
+        self._return = None
+        return
+get_references_by_pathwayResponse.typecode = Struct(pname=("SOAP/KEGG","get_references_by_pathwayResponse"), ofwhat=[ns0.ArrayOfint_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_references_by_pathwayResponse, encoded="SOAP/KEGG")
+
+class get_drugs_by_pathwayRequest:
+    def __init__(self):
+        self._pathway_id = None
+        return
+get_drugs_by_pathwayRequest.typecode = Struct(pname=("SOAP/KEGG","get_drugs_by_pathway"), ofwhat=[ZSI.TC.String(pname="pathway_id", aname="_pathway_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_drugs_by_pathwayRequest, encoded="SOAP/KEGG")
+
+class get_drugs_by_pathwayResponse:
+    def __init__(self):
+        self._return = None
+        return
+get_drugs_by_pathwayResponse.typecode = Struct(pname=("SOAP/KEGG","get_drugs_by_pathwayResponse"), ofwhat=[ns0.ArrayOfstring_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_drugs_by_pathwayResponse, encoded="SOAP/KEGG")
+
+class get_pathways_by_drugsRequest:
+    def __init__(self):
+        self._drug_id_list = None
+        return
+get_pathways_by_drugsRequest.typecode = Struct(pname=("SOAP/KEGG","get_pathways_by_drugs"), ofwhat=[ns0.ArrayOfstring_Def(pname="drug_id_list", aname="_drug_id_list", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_pathways_by_drugsRequest, encoded="SOAP/KEGG")
+
+class get_pathways_by_drugsResponse:
+    def __init__(self):
+        self._return = None
+        return
+get_pathways_by_drugsResponse.typecode = Struct(pname=("SOAP/KEGG","get_pathways_by_drugsResponse"), ofwhat=[ns0.ArrayOfstring_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_pathways_by_drugsResponse, encoded="SOAP/KEGG")
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/KEGG/KEGG_v6_2_services_types.py	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,297 @@
+################################################## 
+# KEGG_v6_2_services_types.py 
+# generated by ZSI.generate.wsdl2python
+##################################################
+
+
+import ZSI
+import ZSI.TCcompound
+from ZSI.schema import LocalElementDeclaration, ElementDeclaration, TypeDefinition, GTD, GED
+
+##############################
+# targetNamespace
+# SOAP/KEGG
+##############################
+
+class ns0:
+    targetNamespace = "SOAP/KEGG"
+
+    class ArrayOfint_Def(ZSI.TC.Array, TypeDefinition):
+        #complexType/complexContent base="SOAP-ENC:Array"
+        schema = "SOAP/KEGG"
+        type = (schema, "ArrayOfint")
+        def __init__(self, pname, ofwhat=(), extend=False, restrict=False, attributes=None, **kw):
+            ofwhat = ZSI.TCnumbers.Iint(None, typed=False)
+            atype = (u'http://www.w3.org/2001/XMLSchema', u'int[]')
+            ZSI.TCcompound.Array.__init__(self, atype, ofwhat, pname=pname, childnames='item', **kw)
+
+    class ArrayOfstring_Def(ZSI.TC.Array, TypeDefinition):
+        #complexType/complexContent base="SOAP-ENC:Array"
+        schema = "SOAP/KEGG"
+        type = (schema, "ArrayOfstring")
+        def __init__(self, pname, ofwhat=(), extend=False, restrict=False, attributes=None, **kw):
+            ofwhat = ZSI.TC.String(None, typed=False)
+            atype = (u'http://www.w3.org/2001/XMLSchema', u'string[]')
+            ZSI.TCcompound.Array.__init__(self, atype, ofwhat, pname=pname, childnames='item', **kw)
+
+    class SSDBRelation_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "SOAP/KEGG"
+        type = (schema, "SSDBRelation")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.SSDBRelation_Def.schema
+            TClist = [ZSI.TC.String(pname="genes_id1", aname="_genes_id1", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="genes_id2", aname="_genes_id2", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="sw_score", aname="_sw_score", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.FPfloat(pname="bit_score", aname="_bit_score", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.FPfloat(pname="identity", aname="_identity", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="overlap", aname="_overlap", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="start_position1", aname="_start_position1", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="end_position1", aname="_end_position1", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="start_position2", aname="_start_position2", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="end_position2", aname="_end_position2", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.Boolean(pname="best_flag_1to2", aname="_best_flag_1to2", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.Boolean(pname="best_flag_2to1", aname="_best_flag_2to1", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="definition1", aname="_definition1", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="definition2", aname="_definition2", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="length1", aname="_length1", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="length2", aname="_length2", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._genes_id1 = None
+                    self._genes_id2 = None
+                    self._sw_score = None
+                    self._bit_score = None
+                    self._identity = None
+                    self._overlap = None
+                    self._start_position1 = None
+                    self._end_position1 = None
+                    self._start_position2 = None
+                    self._end_position2 = None
+                    self._best_flag_1to2 = None
+                    self._best_flag_2to1 = None
+                    self._definition1 = None
+                    self._definition2 = None
+                    self._length1 = None
+                    self._length2 = None
+                    return
+            Holder.__name__ = "SSDBRelation_Holder"
+            self.pyclass = Holder
+
+    class ArrayOfSSDBRelation_Def(ZSI.TC.Array, TypeDefinition):
+        #complexType/complexContent base="SOAP-ENC:Array"
+        schema = "SOAP/KEGG"
+        type = (schema, "ArrayOfSSDBRelation")
+        def __init__(self, pname, ofwhat=(), extend=False, restrict=False, attributes=None, **kw):
+            ofwhat = ns0.SSDBRelation_Def(None, typed=False)
+            atype = (u'SOAP/KEGG', u'SSDBRelation[]')
+            ZSI.TCcompound.Array.__init__(self, atype, ofwhat, pname=pname, childnames='item', **kw)
+
+    class MotifResult_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "SOAP/KEGG"
+        type = (schema, "MotifResult")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.MotifResult_Def.schema
+            TClist = [ZSI.TC.String(pname="motif_id", aname="_motif_id", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="definition", aname="_definition", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="genes_id", aname="_genes_id", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="start_position", aname="_start_position", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="end_position", aname="_end_position", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.FPfloat(pname="score", aname="_score", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.FPdouble(pname="evalue", aname="_evalue", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._motif_id = None
+                    self._definition = None
+                    self._genes_id = None
+                    self._start_position = None
+                    self._end_position = None
+                    self._score = None
+                    self._evalue = None
+                    return
+            Holder.__name__ = "MotifResult_Holder"
+            self.pyclass = Holder
+
+    class ArrayOfMotifResult_Def(ZSI.TC.Array, TypeDefinition):
+        #complexType/complexContent base="SOAP-ENC:Array"
+        schema = "SOAP/KEGG"
+        type = (schema, "ArrayOfMotifResult")
+        def __init__(self, pname, ofwhat=(), extend=False, restrict=False, attributes=None, **kw):
+            ofwhat = ns0.MotifResult_Def(None, typed=False)
+            atype = (u'SOAP/KEGG', u'MotifResult[]')
+            ZSI.TCcompound.Array.__init__(self, atype, ofwhat, pname=pname, childnames='item', **kw)
+
+    class Definition_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "SOAP/KEGG"
+        type = (schema, "Definition")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.Definition_Def.schema
+            TClist = [ZSI.TC.String(pname="entry_id", aname="_entry_id", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="definition", aname="_definition", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._entry_id = None
+                    self._definition = None
+                    return
+            Holder.__name__ = "Definition_Holder"
+            self.pyclass = Holder
+
+    class ArrayOfDefinition_Def(ZSI.TC.Array, TypeDefinition):
+        #complexType/complexContent base="SOAP-ENC:Array"
+        schema = "SOAP/KEGG"
+        type = (schema, "ArrayOfDefinition")
+        def __init__(self, pname, ofwhat=(), extend=False, restrict=False, attributes=None, **kw):
+            ofwhat = ns0.Definition_Def(None, typed=False)
+            atype = (u'SOAP/KEGG', u'Definition[]')
+            ZSI.TCcompound.Array.__init__(self, atype, ofwhat, pname=pname, childnames='item', **kw)
+
+    class LinkDBRelation_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "SOAP/KEGG"
+        type = (schema, "LinkDBRelation")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.LinkDBRelation_Def.schema
+            TClist = [ZSI.TC.String(pname="entry_id1", aname="_entry_id1", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="entry_id2", aname="_entry_id2", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="type", aname="_type", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="path", aname="_path", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._entry_id1 = None
+                    self._entry_id2 = None
+                    self._type = None
+                    self._path = None
+                    return
+            Holder.__name__ = "LinkDBRelation_Holder"
+            self.pyclass = Holder
+
+    class ArrayOfLinkDBRelation_Def(ZSI.TC.Array, TypeDefinition):
+        #complexType/complexContent base="SOAP-ENC:Array"
+        schema = "SOAP/KEGG"
+        type = (schema, "ArrayOfLinkDBRelation")
+        def __init__(self, pname, ofwhat=(), extend=False, restrict=False, attributes=None, **kw):
+            ofwhat = ns0.LinkDBRelation_Def(None, typed=False)
+            atype = (u'SOAP/KEGG', u'LinkDBRelation[]')
+            ZSI.TCcompound.Array.__init__(self, atype, ofwhat, pname=pname, childnames='item', **kw)
+
+    class PathwayElement_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "SOAP/KEGG"
+        type = (schema, "PathwayElement")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.PathwayElement_Def.schema
+            TClist = [ZSI.TCnumbers.Iint(pname="element_id", aname="_element_id", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="type", aname="_type", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("SOAP/KEGG","ArrayOfstring",lazy=False)(pname="names", aname="_names", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("SOAP/KEGG","ArrayOfint",lazy=False)(pname="components", aname="_components", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._element_id = None
+                    self._type = None
+                    self._names = None
+                    self._components = None
+                    return
+            Holder.__name__ = "PathwayElement_Holder"
+            self.pyclass = Holder
+
+    class ArrayOfPathwayElement_Def(ZSI.TC.Array, TypeDefinition):
+        #complexType/complexContent base="SOAP-ENC:Array"
+        schema = "SOAP/KEGG"
+        type = (schema, "ArrayOfPathwayElement")
+        def __init__(self, pname, ofwhat=(), extend=False, restrict=False, attributes=None, **kw):
+            ofwhat = ns0.PathwayElement_Def(None, typed=False)
+            atype = (u'SOAP/KEGG', u'PathwayElement[]')
+            ZSI.TCcompound.Array.__init__(self, atype, ofwhat, pname=pname, childnames='item', **kw)
+
+    class PathwayElementRelation_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "SOAP/KEGG"
+        type = (schema, "PathwayElementRelation")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.PathwayElementRelation_Def.schema
+            TClist = [ZSI.TCnumbers.Iint(pname="element_id1", aname="_element_id1", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="element_id2", aname="_element_id2", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="type", aname="_type", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("SOAP/KEGG","ArrayOfSubtype",lazy=False)(pname="subtypes", aname="_subtypes", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._element_id1 = None
+                    self._element_id2 = None
+                    self._type = None
+                    self._subtypes = None
+                    return
+            Holder.__name__ = "PathwayElementRelation_Holder"
+            self.pyclass = Holder
+
+    class ArrayOfPathwayElementRelation_Def(ZSI.TC.Array, TypeDefinition):
+        #complexType/complexContent base="SOAP-ENC:Array"
+        schema = "SOAP/KEGG"
+        type = (schema, "ArrayOfPathwayElementRelation")
+        def __init__(self, pname, ofwhat=(), extend=False, restrict=False, attributes=None, **kw):
+            ofwhat = ns0.PathwayElementRelation_Def(None, typed=False)
+            atype = (u'SOAP/KEGG', u'PathwayElementRelation[]')
+            ZSI.TCcompound.Array.__init__(self, atype, ofwhat, pname=pname, childnames='item', **kw)
+
+    class Subtype_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "SOAP/KEGG"
+        type = (schema, "Subtype")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.Subtype_Def.schema
+            TClist = [ZSI.TC.String(pname="relation", aname="_relation", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="element_id", aname="_element_id", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="type", aname="_type", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._relation = None
+                    self._element_id = None
+                    self._type = None
+                    return
+            Holder.__name__ = "Subtype_Holder"
+            self.pyclass = Holder
+
+    class ArrayOfSubtype_Def(ZSI.TC.Array, TypeDefinition):
+        #complexType/complexContent base="SOAP-ENC:Array"
+        schema = "SOAP/KEGG"
+        type = (schema, "ArrayOfSubtype")
+        def __init__(self, pname, ofwhat=(), extend=False, restrict=False, attributes=None, **kw):
+            ofwhat = ns0.Subtype_Def(None, typed=False)
+            atype = (u'SOAP/KEGG', u'Subtype[]')
+            ZSI.TCcompound.Array.__init__(self, atype, ofwhat, pname=pname, childnames='item', **kw)
+
+    class StructureAlignment_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "SOAP/KEGG"
+        type = (schema, "StructureAlignment")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.StructureAlignment_Def.schema
+            TClist = [ZSI.TC.String(pname="target_id", aname="_target_id", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.FPfloat(pname="score", aname="_score", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("SOAP/KEGG","ArrayOfint",lazy=False)(pname="query_nodes", aname="_query_nodes", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("SOAP/KEGG","ArrayOfint",lazy=False)(pname="target_nodes", aname="_target_nodes", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._target_id = None
+                    self._score = None
+                    self._query_nodes = None
+                    self._target_nodes = None
+                    return
+            Holder.__name__ = "StructureAlignment_Holder"
+            self.pyclass = Holder
+
+    class ArrayOfStructureAlignment_Def(ZSI.TC.Array, TypeDefinition):
+        #complexType/complexContent base="SOAP-ENC:Array"
+        schema = "SOAP/KEGG"
+        type = (schema, "ArrayOfStructureAlignment")
+        def __init__(self, pname, ofwhat=(), extend=False, restrict=False, attributes=None, **kw):
+            ofwhat = ns0.StructureAlignment_Def(None, typed=False)
+            atype = (u'SOAP/KEGG', u'StructureAlignment[]')
+            ZSI.TCcompound.Array.__init__(self, atype, ofwhat, pname=pname, childnames='item', **kw)
+
+# end class ns0 (tns: SOAP/KEGG)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/WSDbfetchDoclit/WSDBFetchDoclitServerService_services.py	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,193 @@
+################################################## 
+# WSDBFetchDoclitServerService_services.py 
+# generated by ZSI.generate.wsdl2python
+##################################################
+
+
+from WSDBFetchDoclitServerService_services_types import *
+import urlparse, types
+from ZSI.TCcompound import ComplexType, Struct
+from ZSI import client
+import ZSI
+
+# Locator
+class WSDBFetchDoclitServerServiceLocator:
+    WSDBFetchServer_address = "http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit"
+    def getWSDBFetchServerAddress(self):
+        return WSDBFetchDoclitServerServiceLocator.WSDBFetchServer_address
+    def getWSDBFetchServer(self, url=None, **kw):
+        return WSDbfetchDoclitSoapBindingSOAP(url or WSDBFetchDoclitServerServiceLocator.WSDBFetchServer_address, **kw)
+
+# Methods
+class WSDbfetchDoclitSoapBindingSOAP:
+    def __init__(self, url, **kw):
+        kw.setdefault("readerclass", None)
+        kw.setdefault("writerclass", None)
+        # no resource properties
+        self.binding = client.Binding(url=url, **kw)
+        # no ws-addressing
+
+    # op: getSupportedDBs
+    def getSupportedDBs(self, request):
+        if isinstance(request, getSupportedDBsRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="", **kw)
+        # no output wsaction
+        response = self.binding.Receive(getSupportedDBsResponse.typecode)
+        return response
+
+    # op: getSupportedFormats
+    def getSupportedFormats(self, request):
+        if isinstance(request, getSupportedFormatsRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="", **kw)
+        # no output wsaction
+        response = self.binding.Receive(getSupportedFormatsResponse.typecode)
+        return response
+
+    # op: getSupportedStyles
+    def getSupportedStyles(self, request):
+        if isinstance(request, getSupportedStylesRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="", **kw)
+        # no output wsaction
+        response = self.binding.Receive(getSupportedStylesResponse.typecode)
+        return response
+
+    # op: getDatabaseInfoList
+    def getDatabaseInfoList(self, request):
+        if isinstance(request, getDatabaseInfoListRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="", **kw)
+        # no output wsaction
+        response = self.binding.Receive(getDatabaseInfoListResponse.typecode)
+        return response
+
+    # op: getDatabaseInfo
+    def getDatabaseInfo(self, request):
+        if isinstance(request, getDatabaseInfoRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="", **kw)
+        # no output wsaction
+        response = self.binding.Receive(getDatabaseInfoResponse.typecode)
+        return response
+
+    # op: getDbFormats
+    def getDbFormats(self, request):
+        if isinstance(request, getDbFormatsRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="", **kw)
+        # no output wsaction
+        response = self.binding.Receive(getDbFormatsResponse.typecode)
+        return response
+
+    # op: getFormatInfo
+    def getFormatInfo(self, request):
+        if isinstance(request, getFormatInfoRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="", **kw)
+        # no output wsaction
+        response = self.binding.Receive(getFormatInfoResponse.typecode)
+        return response
+
+    # op: getFormatStyles
+    def getFormatStyles(self, request):
+        if isinstance(request, getFormatStylesRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="", **kw)
+        # no output wsaction
+        response = self.binding.Receive(getFormatStylesResponse.typecode)
+        return response
+
+    # op: getStyleInfo
+    def getStyleInfo(self, request):
+        if isinstance(request, getStyleInfoRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="", **kw)
+        # no output wsaction
+        response = self.binding.Receive(getStyleInfoResponse.typecode)
+        return response
+
+    # op: fetchData
+    def fetchData(self, request):
+        if isinstance(request, fetchDataRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="", **kw)
+        # no output wsaction
+        response = self.binding.Receive(fetchDataResponse.typecode)
+        return response
+
+    # op: fetchBatch
+    def fetchBatch(self, request):
+        if isinstance(request, fetchBatchRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="", **kw)
+        # no output wsaction
+        response = self.binding.Receive(fetchBatchResponse.typecode)
+        return response
+
+getSupportedDBsRequest = ns0.getSupportedDBs_Dec().pyclass
+
+getSupportedDBsResponse = ns0.getSupportedDBsResponse_Dec().pyclass
+
+getSupportedFormatsRequest = ns0.getSupportedFormats_Dec().pyclass
+
+getSupportedFormatsResponse = ns0.getSupportedFormatsResponse_Dec().pyclass
+
+getSupportedStylesRequest = ns0.getSupportedStyles_Dec().pyclass
+
+getSupportedStylesResponse = ns0.getSupportedStylesResponse_Dec().pyclass
+
+getDatabaseInfoListRequest = ns0.getDatabaseInfoList_Dec().pyclass
+
+getDatabaseInfoListResponse = ns0.getDatabaseInfoListResponse_Dec().pyclass
+
+getDatabaseInfoRequest = ns0.getDatabaseInfo_Dec().pyclass
+
+getDatabaseInfoResponse = ns0.getDatabaseInfoResponse_Dec().pyclass
+
+getDbFormatsRequest = ns0.getDbFormats_Dec().pyclass
+
+getDbFormatsResponse = ns0.getDbFormatsResponse_Dec().pyclass
+
+getFormatInfoRequest = ns0.getFormatInfo_Dec().pyclass
+
+getFormatInfoResponse = ns0.getFormatInfoResponse_Dec().pyclass
+
+getFormatStylesRequest = ns0.getFormatStyles_Dec().pyclass
+
+getFormatStylesResponse = ns0.getFormatStylesResponse_Dec().pyclass
+
+getStyleInfoRequest = ns0.getStyleInfo_Dec().pyclass
+
+getStyleInfoResponse = ns0.getStyleInfoResponse_Dec().pyclass
+
+fetchDataRequest = ns0.fetchData_Dec().pyclass
+
+fetchDataResponse = ns0.fetchDataResponse_Dec().pyclass
+
+fetchBatchRequest = ns0.fetchBatch_Dec().pyclass
+
+fetchBatchResponse = ns0.fetchBatchResponse_Dec().pyclass
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/WSDbfetchDoclit/WSDBFetchDoclitServerService_services_types.py	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,960 @@
+################################################## 
+# WSDBFetchDoclitServerService_services_types.py 
+# generated by ZSI.generate.wsdl2python
+##################################################
+
+
+import ZSI
+import ZSI.TCcompound
+from ZSI.schema import LocalElementDeclaration, ElementDeclaration, TypeDefinition, GTD, GED
+
+##############################
+# targetNamespace
+# http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit
+##############################
+
+class ns0:
+    targetNamespace = "http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit"
+
+    class ExampleIdentifiersInfo_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit"
+        type = (schema, "ExampleIdentifiersInfo")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.ExampleIdentifiersInfo_Def.schema
+            TClist = [self.__class__.accessionList_Dec(minOccurs=1, maxOccurs=1, nillable=True, encoded=kw.get("encoded")), self.__class__.entryVersionList_Dec(minOccurs=1, maxOccurs=1, nillable=True, encoded=kw.get("encoded")), self.__class__.idList_Dec(minOccurs=1, maxOccurs=1, nillable=True, encoded=kw.get("encoded")), self.__class__.nameList_Dec(minOccurs=1, maxOccurs=1, nillable=True, encoded=kw.get("encoded")), self.__class__.sequenceVersionList_Dec(minOccurs=1, maxOccurs=1, nillable=True, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._accessionList = None
+                    self._entryVersionList = None
+                    self._idList = None
+                    self._nameList = None
+                    self._sequenceVersionList = None
+                    return
+            Holder.__name__ = "ExampleIdentifiersInfo_Holder"
+            self.pyclass = Holder
+
+
+        class accessionList_Dec(ZSI.TCcompound.ComplexType, LocalElementDeclaration):
+            literal = "accessionList"
+            schema = "http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit"
+            def __init__(self, **kw):
+                ns = ns0.ExampleIdentifiersInfo_Def.accessionList_Dec.schema
+                TClist = [ZSI.TC.String(pname=(ns,"accession"), aname="_accession", minOccurs=0, maxOccurs="unbounded", nillable=False, typed=False, encoded=kw.get("encoded"))]
+                kw["pname"] = ("http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit","accessionList")
+                kw["aname"] = "_accessionList"
+                self.attribute_typecode_dict = {}
+                ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+                class Holder:
+                    typecode = self
+                    def __init__(self):
+                        # pyclass
+                        self._accession = []
+                        return
+                Holder.__name__ = "accessionList_Holder"
+                self.pyclass = Holder
+
+
+
+
+
+        class entryVersionList_Dec(ZSI.TCcompound.ComplexType, LocalElementDeclaration):
+            literal = "entryVersionList"
+            schema = "http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit"
+            def __init__(self, **kw):
+                ns = ns0.ExampleIdentifiersInfo_Def.entryVersionList_Dec.schema
+                TClist = [ZSI.TC.String(pname=(ns,"entryVersion"), aname="_entryVersion", minOccurs=0, maxOccurs="unbounded", nillable=False, typed=False, encoded=kw.get("encoded"))]
+                kw["pname"] = ("http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit","entryVersionList")
+                kw["aname"] = "_entryVersionList"
+                self.attribute_typecode_dict = {}
+                ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+                class Holder:
+                    typecode = self
+                    def __init__(self):
+                        # pyclass
+                        self._entryVersion = []
+                        return
+                Holder.__name__ = "entryVersionList_Holder"
+                self.pyclass = Holder
+
+
+
+
+
+        class idList_Dec(ZSI.TCcompound.ComplexType, LocalElementDeclaration):
+            literal = "idList"
+            schema = "http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit"
+            def __init__(self, **kw):
+                ns = ns0.ExampleIdentifiersInfo_Def.idList_Dec.schema
+                TClist = [ZSI.TC.String(pname=(ns,"id"), aname="_id", minOccurs=0, maxOccurs="unbounded", nillable=False, typed=False, encoded=kw.get("encoded"))]
+                kw["pname"] = ("http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit","idList")
+                kw["aname"] = "_idList"
+                self.attribute_typecode_dict = {}
+                ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+                class Holder:
+                    typecode = self
+                    def __init__(self):
+                        # pyclass
+                        self._id = []
+                        return
+                Holder.__name__ = "idList_Holder"
+                self.pyclass = Holder
+
+
+
+
+
+        class nameList_Dec(ZSI.TCcompound.ComplexType, LocalElementDeclaration):
+            literal = "nameList"
+            schema = "http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit"
+            def __init__(self, **kw):
+                ns = ns0.ExampleIdentifiersInfo_Def.nameList_Dec.schema
+                TClist = [ZSI.TC.String(pname=(ns,"name"), aname="_name", minOccurs=0, maxOccurs="unbounded", nillable=False, typed=False, encoded=kw.get("encoded"))]
+                kw["pname"] = ("http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit","nameList")
+                kw["aname"] = "_nameList"
+                self.attribute_typecode_dict = {}
+                ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+                class Holder:
+                    typecode = self
+                    def __init__(self):
+                        # pyclass
+                        self._name = []
+                        return
+                Holder.__name__ = "nameList_Holder"
+                self.pyclass = Holder
+
+
+
+
+
+        class sequenceVersionList_Dec(ZSI.TCcompound.ComplexType, LocalElementDeclaration):
+            literal = "sequenceVersionList"
+            schema = "http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit"
+            def __init__(self, **kw):
+                ns = ns0.ExampleIdentifiersInfo_Def.sequenceVersionList_Dec.schema
+                TClist = [ZSI.TC.String(pname=(ns,"sequenceVersion"), aname="_sequenceVersion", minOccurs=0, maxOccurs="unbounded", nillable=False, typed=False, encoded=kw.get("encoded"))]
+                kw["pname"] = ("http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit","sequenceVersionList")
+                kw["aname"] = "_sequenceVersionList"
+                self.attribute_typecode_dict = {}
+                ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+                class Holder:
+                    typecode = self
+                    def __init__(self):
+                        # pyclass
+                        self._sequenceVersion = []
+                        return
+                Holder.__name__ = "sequenceVersionList_Holder"
+                self.pyclass = Holder
+
+
+
+
+    class StyleInfo_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit"
+        type = (schema, "StyleInfo")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.StyleInfo_Def.schema
+            TClist = [ZSI.TC.String(pname=(ns,"mimeType"), aname="_mimeType", minOccurs=1, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname=(ns,"name"), aname="_name", minOccurs=1, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._mimeType = None
+                    self._name = None
+                    return
+            Holder.__name__ = "StyleInfo_Holder"
+            self.pyclass = Holder
+
+    class StyleInfoList_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit"
+        type = (schema, "StyleInfoList")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.StyleInfoList_Def.schema
+            TClist = [GTD("http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit","StyleInfo",lazy=False)(pname=(ns,"styleInfo"), aname="_styleInfo", minOccurs=0, maxOccurs="unbounded", nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._styleInfo = []
+                    return
+            Holder.__name__ = "StyleInfoList_Holder"
+            self.pyclass = Holder
+
+    class FormatInfo_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit"
+        type = (schema, "FormatInfo")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.FormatInfo_Def.schema
+            TClist = [self.__class__.aliases_Dec(minOccurs=1, maxOccurs=1, nillable=True, encoded=kw.get("encoded")), self.__class__.dataTerms_Dec(minOccurs=1, maxOccurs=1, nillable=True, encoded=kw.get("encoded")), ZSI.TC.String(pname=(ns,"name"), aname="_name", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit","StyleInfoList",lazy=False)(pname=(ns,"styleInfoList"), aname="_styleInfoList", minOccurs=1, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), self.__class__.syntaxTerms_Dec(minOccurs=1, maxOccurs=1, nillable=True, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._aliases = None
+                    self._dataTerms = None
+                    self._name = None
+                    self._styleInfoList = None
+                    self._syntaxTerms = None
+                    return
+            Holder.__name__ = "FormatInfo_Holder"
+            self.pyclass = Holder
+
+
+        class aliases_Dec(ZSI.TCcompound.ComplexType, LocalElementDeclaration):
+            literal = "aliases"
+            schema = "http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit"
+            def __init__(self, **kw):
+                ns = ns0.FormatInfo_Def.aliases_Dec.schema
+                TClist = [ZSI.TC.String(pname=(ns,"alias"), aname="_alias", minOccurs=0, maxOccurs="unbounded", nillable=False, typed=False, encoded=kw.get("encoded"))]
+                kw["pname"] = ("http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit","aliases")
+                kw["aname"] = "_aliases"
+                self.attribute_typecode_dict = {}
+                ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+                class Holder:
+                    typecode = self
+                    def __init__(self):
+                        # pyclass
+                        self._alias = []
+                        return
+                Holder.__name__ = "aliases_Holder"
+                self.pyclass = Holder
+
+
+
+
+
+        class dataTerms_Dec(ZSI.TCcompound.ComplexType, LocalElementDeclaration):
+            literal = "dataTerms"
+            schema = "http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit"
+            def __init__(self, **kw):
+                ns = ns0.FormatInfo_Def.dataTerms_Dec.schema
+                TClist = [ZSI.TC.String(pname=(ns,"dataTerm"), aname="_dataTerm", minOccurs=0, maxOccurs="unbounded", nillable=False, typed=False, encoded=kw.get("encoded"))]
+                kw["pname"] = ("http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit","dataTerms")
+                kw["aname"] = "_dataTerms"
+                self.attribute_typecode_dict = {}
+                ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+                class Holder:
+                    typecode = self
+                    def __init__(self):
+                        # pyclass
+                        self._dataTerm = []
+                        return
+                Holder.__name__ = "dataTerms_Holder"
+                self.pyclass = Holder
+
+
+
+
+
+        class syntaxTerms_Dec(ZSI.TCcompound.ComplexType, LocalElementDeclaration):
+            literal = "syntaxTerms"
+            schema = "http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit"
+            def __init__(self, **kw):
+                ns = ns0.FormatInfo_Def.syntaxTerms_Dec.schema
+                TClist = [ZSI.TC.String(pname=(ns,"syntaxTerm"), aname="_syntaxTerm", minOccurs=0, maxOccurs="unbounded", nillable=False, typed=False, encoded=kw.get("encoded"))]
+                kw["pname"] = ("http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit","syntaxTerms")
+                kw["aname"] = "_syntaxTerms"
+                self.attribute_typecode_dict = {}
+                ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+                class Holder:
+                    typecode = self
+                    def __init__(self):
+                        # pyclass
+                        self._syntaxTerm = []
+                        return
+                Holder.__name__ = "syntaxTerms_Holder"
+                self.pyclass = Holder
+
+
+
+
+    class FormatInfoList_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit"
+        type = (schema, "FormatInfoList")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.FormatInfoList_Def.schema
+            TClist = [GTD("http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit","FormatInfo",lazy=False)(pname=(ns,"formatInfo"), aname="_formatInfo", minOccurs=0, maxOccurs="unbounded", nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._formatInfo = []
+                    return
+            Holder.__name__ = "FormatInfoList_Holder"
+            self.pyclass = Holder
+
+    class DatabaseInfo_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit"
+        type = (schema, "DatabaseInfo")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.DatabaseInfo_Def.schema
+            TClist = [self.__class__.aliasList_Dec(minOccurs=1, maxOccurs=1, nillable=True, encoded=kw.get("encoded")), self.__class__.databaseTerms_Dec(minOccurs=1, maxOccurs=1, nillable=True, encoded=kw.get("encoded")), ZSI.TC.String(pname=(ns,"defaultFormat"), aname="_defaultFormat", minOccurs=1, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname=(ns,"description"), aname="_description", minOccurs=1, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname=(ns,"displayName"), aname="_displayName", minOccurs=1, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), GTD("http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit","ExampleIdentifiersInfo",lazy=False)(pname=(ns,"exampleIdentifiers"), aname="_exampleIdentifiers", minOccurs=1, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), GTD("http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit","FormatInfoList",lazy=False)(pname=(ns,"formatInfoList"), aname="_formatInfoList", minOccurs=1, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname=(ns,"href"), aname="_href", minOccurs=1, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname=(ns,"name"), aname="_name", minOccurs=1, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._aliasList = None
+                    self._databaseTerms = None
+                    self._defaultFormat = None
+                    self._description = None
+                    self._displayName = None
+                    self._exampleIdentifiers = None
+                    self._formatInfoList = None
+                    self._href = None
+                    self._name = None
+                    return
+            Holder.__name__ = "DatabaseInfo_Holder"
+            self.pyclass = Holder
+
+
+        class aliasList_Dec(ZSI.TCcompound.ComplexType, LocalElementDeclaration):
+            literal = "aliasList"
+            schema = "http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit"
+            def __init__(self, **kw):
+                ns = ns0.DatabaseInfo_Def.aliasList_Dec.schema
+                TClist = [ZSI.TC.String(pname=(ns,"alias"), aname="_alias", minOccurs=0, maxOccurs="unbounded", nillable=False, typed=False, encoded=kw.get("encoded"))]
+                kw["pname"] = ("http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit","aliasList")
+                kw["aname"] = "_aliasList"
+                self.attribute_typecode_dict = {}
+                ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+                class Holder:
+                    typecode = self
+                    def __init__(self):
+                        # pyclass
+                        self._alias = []
+                        return
+                Holder.__name__ = "aliasList_Holder"
+                self.pyclass = Holder
+
+
+
+
+
+        class databaseTerms_Dec(ZSI.TCcompound.ComplexType, LocalElementDeclaration):
+            literal = "databaseTerms"
+            schema = "http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit"
+            def __init__(self, **kw):
+                ns = ns0.DatabaseInfo_Def.databaseTerms_Dec.schema
+                TClist = [ZSI.TC.String(pname=(ns,"databaseTerm"), aname="_databaseTerm", minOccurs=0, maxOccurs="unbounded", nillable=False, typed=False, encoded=kw.get("encoded"))]
+                kw["pname"] = ("http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit","databaseTerms")
+                kw["aname"] = "_databaseTerms"
+                self.attribute_typecode_dict = {}
+                ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+                class Holder:
+                    typecode = self
+                    def __init__(self):
+                        # pyclass
+                        self._databaseTerm = []
+                        return
+                Holder.__name__ = "databaseTerms_Holder"
+                self.pyclass = Holder
+
+
+
+
+    class DbfException_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit"
+        type = (schema, "DbfException")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.DbfException_Def.schema
+            TClist = []
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    return
+            Holder.__name__ = "DbfException_Holder"
+            self.pyclass = Holder
+
+    class DbfParamsException_Def(TypeDefinition):
+        #complexType/complexContent extension
+        schema = "http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit"
+        type = (schema, "DbfParamsException")
+        def __init__(self, pname, ofwhat=(), extend=False, restrict=False, attributes=None, **kw):
+            ns = ns0.DbfParamsException_Def.schema
+            TClist = []
+            attributes = self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            if ns0.DbfException_Def not in ns0.DbfParamsException_Def.__bases__:
+                bases = list(ns0.DbfParamsException_Def.__bases__)
+                bases.insert(0, ns0.DbfException_Def)
+                ns0.DbfParamsException_Def.__bases__ = tuple(bases)
+
+            ns0.DbfException_Def.__init__(self, pname, ofwhat=TClist, extend=True, attributes=attributes, **kw)
+
+    class DbfConnException_Def(TypeDefinition):
+        #complexType/complexContent extension
+        schema = "http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit"
+        type = (schema, "DbfConnException")
+        def __init__(self, pname, ofwhat=(), extend=False, restrict=False, attributes=None, **kw):
+            ns = ns0.DbfConnException_Def.schema
+            TClist = []
+            attributes = self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            if ns0.DbfException_Def not in ns0.DbfConnException_Def.__bases__:
+                bases = list(ns0.DbfConnException_Def.__bases__)
+                bases.insert(0, ns0.DbfException_Def)
+                ns0.DbfConnException_Def.__bases__ = tuple(bases)
+
+            ns0.DbfException_Def.__init__(self, pname, ofwhat=TClist, extend=True, attributes=attributes, **kw)
+
+    class DbfNoEntryFoundException_Def(TypeDefinition):
+        #complexType/complexContent extension
+        schema = "http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit"
+        type = (schema, "DbfNoEntryFoundException")
+        def __init__(self, pname, ofwhat=(), extend=False, restrict=False, attributes=None, **kw):
+            ns = ns0.DbfNoEntryFoundException_Def.schema
+            TClist = []
+            attributes = self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            if ns0.DbfException_Def not in ns0.DbfNoEntryFoundException_Def.__bases__:
+                bases = list(ns0.DbfNoEntryFoundException_Def.__bases__)
+                bases.insert(0, ns0.DbfException_Def)
+                ns0.DbfNoEntryFoundException_Def.__bases__ = tuple(bases)
+
+            ns0.DbfException_Def.__init__(self, pname, ofwhat=TClist, extend=True, attributes=attributes, **kw)
+
+    class InputException_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit"
+        type = (schema, "InputException")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.InputException_Def.schema
+            TClist = []
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    return
+            Holder.__name__ = "InputException_Holder"
+            self.pyclass = Holder
+
+    class getSupportedDBs_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getSupportedDBs"
+        schema = "http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit"
+        def __init__(self, **kw):
+            ns = ns0.getSupportedDBs_Dec.schema
+            TClist = []
+            kw["pname"] = ("http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit","getSupportedDBs")
+            kw["aname"] = "_getSupportedDBs"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    return
+            Holder.__name__ = "getSupportedDBs_Holder"
+            self.pyclass = Holder
+
+    class getSupportedDBsResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getSupportedDBsResponse"
+        schema = "http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit"
+        def __init__(self, **kw):
+            ns = ns0.getSupportedDBsResponse_Dec.schema
+            TClist = [ZSI.TC.String(pname=(ns,"getSupportedDBsReturn"), aname="_getSupportedDBsReturn", minOccurs=1, maxOccurs="unbounded", nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit","getSupportedDBsResponse")
+            kw["aname"] = "_getSupportedDBsResponse"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._getSupportedDBsReturn = []
+                    return
+            Holder.__name__ = "getSupportedDBsResponse_Holder"
+            self.pyclass = Holder
+
+    class getSupportedFormats_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getSupportedFormats"
+        schema = "http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit"
+        def __init__(self, **kw):
+            ns = ns0.getSupportedFormats_Dec.schema
+            TClist = []
+            kw["pname"] = ("http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit","getSupportedFormats")
+            kw["aname"] = "_getSupportedFormats"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    return
+            Holder.__name__ = "getSupportedFormats_Holder"
+            self.pyclass = Holder
+
+    class getSupportedFormatsResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getSupportedFormatsResponse"
+        schema = "http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit"
+        def __init__(self, **kw):
+            ns = ns0.getSupportedFormatsResponse_Dec.schema
+            TClist = [ZSI.TC.String(pname=(ns,"getSupportedFormatsReturn"), aname="_getSupportedFormatsReturn", minOccurs=1, maxOccurs="unbounded", nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit","getSupportedFormatsResponse")
+            kw["aname"] = "_getSupportedFormatsResponse"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._getSupportedFormatsReturn = []
+                    return
+            Holder.__name__ = "getSupportedFormatsResponse_Holder"
+            self.pyclass = Holder
+
+    class getSupportedStyles_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getSupportedStyles"
+        schema = "http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit"
+        def __init__(self, **kw):
+            ns = ns0.getSupportedStyles_Dec.schema
+            TClist = []
+            kw["pname"] = ("http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit","getSupportedStyles")
+            kw["aname"] = "_getSupportedStyles"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    return
+            Holder.__name__ = "getSupportedStyles_Holder"
+            self.pyclass = Holder
+
+    class getSupportedStylesResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getSupportedStylesResponse"
+        schema = "http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit"
+        def __init__(self, **kw):
+            ns = ns0.getSupportedStylesResponse_Dec.schema
+            TClist = [ZSI.TC.String(pname=(ns,"getSupportedStylesReturn"), aname="_getSupportedStylesReturn", minOccurs=1, maxOccurs="unbounded", nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit","getSupportedStylesResponse")
+            kw["aname"] = "_getSupportedStylesResponse"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._getSupportedStylesReturn = []
+                    return
+            Holder.__name__ = "getSupportedStylesResponse_Holder"
+            self.pyclass = Holder
+
+    class getDatabaseInfoList_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getDatabaseInfoList"
+        schema = "http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit"
+        def __init__(self, **kw):
+            ns = ns0.getDatabaseInfoList_Dec.schema
+            TClist = []
+            kw["pname"] = ("http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit","getDatabaseInfoList")
+            kw["aname"] = "_getDatabaseInfoList"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    return
+            Holder.__name__ = "getDatabaseInfoList_Holder"
+            self.pyclass = Holder
+
+    class getDatabaseInfoListResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getDatabaseInfoListResponse"
+        schema = "http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit"
+        def __init__(self, **kw):
+            ns = ns0.getDatabaseInfoListResponse_Dec.schema
+            TClist = [GTD("http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit","DatabaseInfo",lazy=False)(pname=(ns,"getDatabaseInfoListReturn"), aname="_getDatabaseInfoListReturn", minOccurs=1, maxOccurs="unbounded", nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit","getDatabaseInfoListResponse")
+            kw["aname"] = "_getDatabaseInfoListResponse"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._getDatabaseInfoListReturn = []
+                    return
+            Holder.__name__ = "getDatabaseInfoListResponse_Holder"
+            self.pyclass = Holder
+
+    class getDatabaseInfo_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getDatabaseInfo"
+        schema = "http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit"
+        def __init__(self, **kw):
+            ns = ns0.getDatabaseInfo_Dec.schema
+            TClist = [ZSI.TC.String(pname=(ns,"db"), aname="_db", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit","getDatabaseInfo")
+            kw["aname"] = "_getDatabaseInfo"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._db = None
+                    return
+            Holder.__name__ = "getDatabaseInfo_Holder"
+            self.pyclass = Holder
+
+    class getDatabaseInfoResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getDatabaseInfoResponse"
+        schema = "http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit"
+        def __init__(self, **kw):
+            ns = ns0.getDatabaseInfoResponse_Dec.schema
+            TClist = [GTD("http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit","DatabaseInfo",lazy=False)(pname=(ns,"getDatabaseInfoReturn"), aname="_getDatabaseInfoReturn", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit","getDatabaseInfoResponse")
+            kw["aname"] = "_getDatabaseInfoResponse"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._getDatabaseInfoReturn = None
+                    return
+            Holder.__name__ = "getDatabaseInfoResponse_Holder"
+            self.pyclass = Holder
+
+    class fault_Dec(ElementDeclaration):
+        literal = "fault"
+        schema = "http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit"
+        def __init__(self, **kw):
+            kw["pname"] = ("http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit","fault")
+            kw["aname"] = "_fault"
+            if ns0.DbfParamsException_Def not in ns0.fault_Dec.__bases__:
+                bases = list(ns0.fault_Dec.__bases__)
+                bases.insert(0, ns0.DbfParamsException_Def)
+                ns0.fault_Dec.__bases__ = tuple(bases)
+
+            ns0.DbfParamsException_Def.__init__(self, **kw)
+            if self.pyclass is not None: self.pyclass.__name__ = "fault_Dec_Holder"
+
+    class getDbFormats_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getDbFormats"
+        schema = "http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit"
+        def __init__(self, **kw):
+            ns = ns0.getDbFormats_Dec.schema
+            TClist = [ZSI.TC.String(pname=(ns,"db"), aname="_db", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit","getDbFormats")
+            kw["aname"] = "_getDbFormats"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._db = None
+                    return
+            Holder.__name__ = "getDbFormats_Holder"
+            self.pyclass = Holder
+
+    class getDbFormatsResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getDbFormatsResponse"
+        schema = "http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit"
+        def __init__(self, **kw):
+            ns = ns0.getDbFormatsResponse_Dec.schema
+            TClist = [ZSI.TC.String(pname=(ns,"getDbFormatsReturn"), aname="_getDbFormatsReturn", minOccurs=1, maxOccurs="unbounded", nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit","getDbFormatsResponse")
+            kw["aname"] = "_getDbFormatsResponse"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._getDbFormatsReturn = []
+                    return
+            Holder.__name__ = "getDbFormatsResponse_Holder"
+            self.pyclass = Holder
+
+    class getFormatInfo_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getFormatInfo"
+        schema = "http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit"
+        def __init__(self, **kw):
+            ns = ns0.getFormatInfo_Dec.schema
+            TClist = [ZSI.TC.String(pname=(ns,"db"), aname="_db", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname=(ns,"format"), aname="_format", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit","getFormatInfo")
+            kw["aname"] = "_getFormatInfo"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._db = None
+                    self._format = None
+                    return
+            Holder.__name__ = "getFormatInfo_Holder"
+            self.pyclass = Holder
+
+    class getFormatInfoResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getFormatInfoResponse"
+        schema = "http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit"
+        def __init__(self, **kw):
+            ns = ns0.getFormatInfoResponse_Dec.schema
+            TClist = [GTD("http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit","FormatInfo",lazy=False)(pname=(ns,"getFormatInfoReturn"), aname="_getFormatInfoReturn", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit","getFormatInfoResponse")
+            kw["aname"] = "_getFormatInfoResponse"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._getFormatInfoReturn = None
+                    return
+            Holder.__name__ = "getFormatInfoResponse_Holder"
+            self.pyclass = Holder
+
+    class getFormatStyles_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getFormatStyles"
+        schema = "http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit"
+        def __init__(self, **kw):
+            ns = ns0.getFormatStyles_Dec.schema
+            TClist = [ZSI.TC.String(pname=(ns,"db"), aname="_db", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname=(ns,"format"), aname="_format", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit","getFormatStyles")
+            kw["aname"] = "_getFormatStyles"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._db = None
+                    self._format = None
+                    return
+            Holder.__name__ = "getFormatStyles_Holder"
+            self.pyclass = Holder
+
+    class getFormatStylesResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getFormatStylesResponse"
+        schema = "http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit"
+        def __init__(self, **kw):
+            ns = ns0.getFormatStylesResponse_Dec.schema
+            TClist = [ZSI.TC.String(pname=(ns,"getFormatStylesReturn"), aname="_getFormatStylesReturn", minOccurs=1, maxOccurs="unbounded", nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit","getFormatStylesResponse")
+            kw["aname"] = "_getFormatStylesResponse"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._getFormatStylesReturn = []
+                    return
+            Holder.__name__ = "getFormatStylesResponse_Holder"
+            self.pyclass = Holder
+
+    class getStyleInfo_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getStyleInfo"
+        schema = "http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit"
+        def __init__(self, **kw):
+            ns = ns0.getStyleInfo_Dec.schema
+            TClist = [ZSI.TC.String(pname=(ns,"db"), aname="_db", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname=(ns,"format"), aname="_format", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname=(ns,"style"), aname="_style", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit","getStyleInfo")
+            kw["aname"] = "_getStyleInfo"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._db = None
+                    self._format = None
+                    self._style = None
+                    return
+            Holder.__name__ = "getStyleInfo_Holder"
+            self.pyclass = Holder
+
+    class getStyleInfoResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getStyleInfoResponse"
+        schema = "http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit"
+        def __init__(self, **kw):
+            ns = ns0.getStyleInfoResponse_Dec.schema
+            TClist = [GTD("http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit","StyleInfo",lazy=False)(pname=(ns,"getStyleInfoReturn"), aname="_getStyleInfoReturn", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit","getStyleInfoResponse")
+            kw["aname"] = "_getStyleInfoResponse"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._getStyleInfoReturn = None
+                    return
+            Holder.__name__ = "getStyleInfoResponse_Holder"
+            self.pyclass = Holder
+
+    class fetchData_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "fetchData"
+        schema = "http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit"
+        def __init__(self, **kw):
+            ns = ns0.fetchData_Dec.schema
+            TClist = [ZSI.TC.String(pname=(ns,"query"), aname="_query", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname=(ns,"format"), aname="_format", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname=(ns,"style"), aname="_style", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit","fetchData")
+            kw["aname"] = "_fetchData"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._query = None
+                    self._format = None
+                    self._style = None
+                    return
+            Holder.__name__ = "fetchData_Holder"
+            self.pyclass = Holder
+
+    class fetchDataResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "fetchDataResponse"
+        schema = "http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit"
+        def __init__(self, **kw):
+            ns = ns0.fetchDataResponse_Dec.schema
+            TClist = [ZSI.TC.String(pname=(ns,"fetchDataReturn"), aname="_fetchDataReturn", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit","fetchDataResponse")
+            kw["aname"] = "_fetchDataResponse"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._fetchDataReturn = None
+                    return
+            Holder.__name__ = "fetchDataResponse_Holder"
+            self.pyclass = Holder
+
+    class fault1_Dec(ElementDeclaration):
+        literal = "fault1"
+        schema = "http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit"
+        def __init__(self, **kw):
+            kw["pname"] = ("http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit","fault1")
+            kw["aname"] = "_fault1"
+            if ns0.DbfConnException_Def not in ns0.fault1_Dec.__bases__:
+                bases = list(ns0.fault1_Dec.__bases__)
+                bases.insert(0, ns0.DbfConnException_Def)
+                ns0.fault1_Dec.__bases__ = tuple(bases)
+
+            ns0.DbfConnException_Def.__init__(self, **kw)
+            if self.pyclass is not None: self.pyclass.__name__ = "fault1_Dec_Holder"
+
+    class fault2_Dec(ElementDeclaration):
+        literal = "fault2"
+        schema = "http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit"
+        def __init__(self, **kw):
+            kw["pname"] = ("http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit","fault2")
+            kw["aname"] = "_fault2"
+            if ns0.DbfNoEntryFoundException_Def not in ns0.fault2_Dec.__bases__:
+                bases = list(ns0.fault2_Dec.__bases__)
+                bases.insert(0, ns0.DbfNoEntryFoundException_Def)
+                ns0.fault2_Dec.__bases__ = tuple(bases)
+
+            ns0.DbfNoEntryFoundException_Def.__init__(self, **kw)
+            if self.pyclass is not None: self.pyclass.__name__ = "fault2_Dec_Holder"
+
+    class fault3_Dec(ElementDeclaration):
+        literal = "fault3"
+        schema = "http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit"
+        def __init__(self, **kw):
+            kw["pname"] = ("http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit","fault3")
+            kw["aname"] = "_fault3"
+            if ns0.DbfException_Def not in ns0.fault3_Dec.__bases__:
+                bases = list(ns0.fault3_Dec.__bases__)
+                bases.insert(0, ns0.DbfException_Def)
+                ns0.fault3_Dec.__bases__ = tuple(bases)
+
+            ns0.DbfException_Def.__init__(self, **kw)
+            if self.pyclass is not None: self.pyclass.__name__ = "fault3_Dec_Holder"
+
+    class fault4_Dec(ElementDeclaration):
+        literal = "fault4"
+        schema = "http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit"
+        def __init__(self, **kw):
+            kw["pname"] = ("http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit","fault4")
+            kw["aname"] = "_fault4"
+            if ns0.InputException_Def not in ns0.fault4_Dec.__bases__:
+                bases = list(ns0.fault4_Dec.__bases__)
+                bases.insert(0, ns0.InputException_Def)
+                ns0.fault4_Dec.__bases__ = tuple(bases)
+
+            ns0.InputException_Def.__init__(self, **kw)
+            if self.pyclass is not None: self.pyclass.__name__ = "fault4_Dec_Holder"
+
+    class fetchBatch_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "fetchBatch"
+        schema = "http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit"
+        def __init__(self, **kw):
+            ns = ns0.fetchBatch_Dec.schema
+            TClist = [ZSI.TC.String(pname=(ns,"db"), aname="_db", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname=(ns,"ids"), aname="_ids", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname=(ns,"format"), aname="_format", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname=(ns,"style"), aname="_style", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit","fetchBatch")
+            kw["aname"] = "_fetchBatch"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._db = None
+                    self._ids = None
+                    self._format = None
+                    self._style = None
+                    return
+            Holder.__name__ = "fetchBatch_Holder"
+            self.pyclass = Holder
+
+    class fetchBatchResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "fetchBatchResponse"
+        schema = "http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit"
+        def __init__(self, **kw):
+            ns = ns0.fetchBatchResponse_Dec.schema
+            TClist = [ZSI.TC.String(pname=(ns,"fetchBatchReturn"), aname="_fetchBatchReturn", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit","fetchBatchResponse")
+            kw["aname"] = "_fetchBatchResponse"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._fetchBatchReturn = None
+                    return
+            Holder.__name__ = "fetchBatchResponse_Holder"
+            self.pyclass = Holder
+
+# end class ns0 (tns: http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/WSWUBlast/WSWUBlast_services.py	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,484 @@
+################################################## 
+# WSWUBlast_services.py 
+# generated by ZSI.generate.wsdl2python
+##################################################
+
+
+from WSWUBlast_services_types import *
+import urlparse, types
+from ZSI.TCcompound import ComplexType, Struct
+from ZSI import client
+import ZSI
+
+# Locator
+class WSWUBlastServiceLocator:
+    WSWUBlast_address = "http://www.ebi.ac.uk/Tools/es/ws-servers/WSWUBlast"
+    def getWSWUBlastAddress(self):
+        return WSWUBlastServiceLocator.WSWUBlast_address
+    def getWSWUBlast(self, url=None, **kw):
+        return WSWUBlastSoapBindingSOAP(url or WSWUBlastServiceLocator.WSWUBlast_address, **kw)
+
+# Methods
+class WSWUBlastSoapBindingSOAP:
+    def __init__(self, url, **kw):
+        kw.setdefault("readerclass", None)
+        kw.setdefault("writerclass", None)
+        # no resource properties
+        self.binding = client.Binding(url=url, **kw)
+        # no ws-addressing
+
+    # op: runWUBlast
+    def runWUBlast(self, request):
+        if isinstance(request, runWUBlastRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="http://www.ebi.ac.uk/WSWUBlast#runWUBlast", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=runWUBlastResponse.typecode.ofwhat, pyclass=runWUBlastResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: poll
+    def poll(self, request):
+        if isinstance(request, pollRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="http://www.ebi.ac.uk/WSWUBlast#poll", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=pollResponse.typecode.ofwhat, pyclass=pollResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: getIds
+    def getIds(self, request):
+        if isinstance(request, getIdsRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="http://www.ebi.ac.uk/WSWUBlast#getIds", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=getIdsResponse.typecode.ofwhat, pyclass=getIdsResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: getMatrices
+    def getMatrices(self, request):
+        if isinstance(request, getMatricesRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="http://www.ebi.ac.uk/WSWUBlast#getMatrices", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=getMatricesResponse.typecode.ofwhat, pyclass=getMatricesResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: getPrograms
+    def getPrograms(self, request):
+        if isinstance(request, getProgramsRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="http://www.ebi.ac.uk/WSWUBlast#getPrograms", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=getProgramsResponse.typecode.ofwhat, pyclass=getProgramsResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: getDatabases
+    def getDatabases(self, request):
+        if isinstance(request, getDatabasesRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="http://www.ebi.ac.uk/WSWUBlast#getDatabases", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=getDatabasesResponse.typecode.ofwhat, pyclass=getDatabasesResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: getSort
+    def getSort(self, request):
+        if isinstance(request, getSortRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="http://www.ebi.ac.uk/WSWUBlast#getSort", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=getSortResponse.typecode.ofwhat, pyclass=getSortResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: getStats
+    def getStats(self, request):
+        if isinstance(request, getStatsRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="http://www.ebi.ac.uk/WSWUBlast#getStats", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=getStatsResponse.typecode.ofwhat, pyclass=getStatsResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: getXmlFormats
+    def getXmlFormats(self, request):
+        if isinstance(request, getXmlFormatsRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="http://www.ebi.ac.uk/WSWUBlast#getXmlFormats", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=getXmlFormatsResponse.typecode.ofwhat, pyclass=getXmlFormatsResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: getSensitivity
+    def getSensitivity(self, request):
+        if isinstance(request, getSensitivityRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="http://www.ebi.ac.uk/WSWUBlast#getSensitivity", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=getSensitivityResponse.typecode.ofwhat, pyclass=getSensitivityResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: getFilters
+    def getFilters(self, request):
+        if isinstance(request, getFiltersRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="http://www.ebi.ac.uk/WSWUBlast#getFilters", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=getFiltersResponse.typecode.ofwhat, pyclass=getFiltersResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: checkStatus
+    def checkStatus(self, request):
+        if isinstance(request, statusRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="http://www.ebi.ac.uk/WSWUBlast#checkStatus", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=statusResponse.typecode.ofwhat, pyclass=statusResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: getResults
+    def getResults(self, request):
+        if isinstance(request, resultsRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="http://www.ebi.ac.uk/WSWUBlast#getResults", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=resultsResponse.typecode.ofwhat, pyclass=resultsResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: getOutput
+    def getOutput(self, request):
+        if isinstance(request, getOutput) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="http://www.ebi.ac.uk/WSWUBlast#getOutput", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=getOutputResponse.typecode.ofwhat, pyclass=getOutputResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: getXML
+    def getXML(self, request):
+        if isinstance(request, getXML) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="http://www.ebi.ac.uk/WSWUBlast#getXML", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=getXMLResponse.typecode.ofwhat, pyclass=getXMLResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: blastp
+    def blastp(self, request):
+        if isinstance(request, blastp) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="http://www.ebi.ac.uk/WSWUBlast#blastp", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=blastpResponse.typecode.ofwhat, pyclass=blastpResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: blastn
+    def blastn(self, request):
+        if isinstance(request, blastn) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="http://www.ebi.ac.uk/WSWUBlast#blastn", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=blastnResponse.typecode.ofwhat, pyclass=blastnResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: polljob
+    def polljob(self, request):
+        if isinstance(request, polljobRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="http://www.ebi.ac.uk/WSWUBlast#polljob", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=polljobResponse.typecode.ofwhat, pyclass=polljobResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: doWUBlast
+    def doWUBlast(self, request):
+        if isinstance(request, doWUBlastRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="http://www.ebi.ac.uk/WSWUBlast#doWUBlast", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=doWUBlastResponse.typecode.ofwhat, pyclass=doWUBlastResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+class runWUBlastRequest:
+    def __init__(self):
+        self._params = None
+        self._content = None
+        return
+runWUBlastRequest.typecode = Struct(pname=("http://www.ebi.ac.uk/WSWUBlast","runWUBlast"), ofwhat=[ns0.inputParams_Def(pname="params", aname="_params", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ns0.WSArrayofData_Def(pname="content", aname="_content", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=runWUBlastRequest, encoded="http://www.ebi.ac.uk/WSWUBlast")
+
+class runWUBlastResponse:
+    def __init__(self):
+        self._jobid = None
+        return
+runWUBlastResponse.typecode = Struct(pname=("http://www.ebi.ac.uk/WSWUBlast","runWUBlastResponse"), ofwhat=[ZSI.TC.String(pname="jobid", aname="_jobid", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=runWUBlastResponse, encoded="http://www.ebi.ac.uk/WSWUBlast")
+
+class pollRequest:
+    def __init__(self):
+        self._jobid = None
+        self._type = None
+        return
+pollRequest.typecode = Struct(pname=("http://www.ebi.ac.uk/WSWUBlast","poll"), ofwhat=[ZSI.TC.String(pname="jobid", aname="_jobid", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="type", aname="_type", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=pollRequest, encoded="http://www.ebi.ac.uk/WSWUBlast")
+
+class pollResponse:
+    def __init__(self):
+        self._result = None
+        return
+pollResponse.typecode = Struct(pname=("http://www.ebi.ac.uk/WSWUBlast","pollResponse"), ofwhat=[ZSI.TC.Base64String(pname="result", aname="_result", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=pollResponse, encoded="http://www.ebi.ac.uk/WSWUBlast")
+
+class getIdsRequest:
+    def __init__(self):
+        self._jobid = None
+        return
+getIdsRequest.typecode = Struct(pname=("http://www.ebi.ac.uk/WSWUBlast","getIds"), ofwhat=[ZSI.TC.String(pname="jobid", aname="_jobid", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=getIdsRequest, encoded="http://www.ebi.ac.uk/WSWUBlast")
+
+class getIdsResponse:
+    def __init__(self):
+        self._result = None
+        return
+getIdsResponse.typecode = Struct(pname=("http://www.ebi.ac.uk/WSWUBlast","getIdsResponse"), ofwhat=[ns0.ArrayOf_xsd_string_Def(pname="result", aname="_result", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=getIdsResponse, encoded="http://www.ebi.ac.uk/WSWUBlast")
+
+class getMatricesRequest:
+    def __init__(self):
+        return
+getMatricesRequest.typecode = Struct(pname=("http://www.ebi.ac.uk/WSWUBlast","getMatrices"), ofwhat=[], pyclass=getMatricesRequest, encoded="http://www.ebi.ac.uk/WSWUBlast")
+
+class getMatricesResponse:
+    def __init__(self):
+        self._result = None
+        return
+getMatricesResponse.typecode = Struct(pname=("http://www.ebi.ac.uk/WSWUBlast","getMatricesResponse"), ofwhat=[ns0.WSArrayofoutData_Def(pname="result", aname="_result", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=getMatricesResponse, encoded="http://www.ebi.ac.uk/WSWUBlast")
+
+class getProgramsRequest:
+    def __init__(self):
+        return
+getProgramsRequest.typecode = Struct(pname=("http://www.ebi.ac.uk/WSWUBlast","getPrograms"), ofwhat=[], pyclass=getProgramsRequest, encoded="http://www.ebi.ac.uk/WSWUBlast")
+
+class getProgramsResponse:
+    def __init__(self):
+        self._result = None
+        return
+getProgramsResponse.typecode = Struct(pname=("http://www.ebi.ac.uk/WSWUBlast","getProgramsResponse"), ofwhat=[ns0.WSArrayofoutData_Def(pname="result", aname="_result", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=getProgramsResponse, encoded="http://www.ebi.ac.uk/WSWUBlast")
+
+class getDatabasesRequest:
+    def __init__(self):
+        return
+getDatabasesRequest.typecode = Struct(pname=("http://www.ebi.ac.uk/WSWUBlast","getDatabases"), ofwhat=[], pyclass=getDatabasesRequest, encoded="http://www.ebi.ac.uk/WSWUBlast")
+
+class getDatabasesResponse:
+    def __init__(self):
+        self._result = None
+        return
+getDatabasesResponse.typecode = Struct(pname=("http://www.ebi.ac.uk/WSWUBlast","getDatabasesResponse"), ofwhat=[ns0.WSArrayofoutData_Def(pname="result", aname="_result", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=getDatabasesResponse, encoded="http://www.ebi.ac.uk/WSWUBlast")
+
+class getSortRequest:
+    def __init__(self):
+        return
+getSortRequest.typecode = Struct(pname=("http://www.ebi.ac.uk/WSWUBlast","getSort"), ofwhat=[], pyclass=getSortRequest, encoded="http://www.ebi.ac.uk/WSWUBlast")
+
+class getSortResponse:
+    def __init__(self):
+        self._result = None
+        return
+getSortResponse.typecode = Struct(pname=("http://www.ebi.ac.uk/WSWUBlast","getSortResponse"), ofwhat=[ns0.WSArrayofoutData_Def(pname="result", aname="_result", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=getSortResponse, encoded="http://www.ebi.ac.uk/WSWUBlast")
+
+class getStatsRequest:
+    def __init__(self):
+        return
+getStatsRequest.typecode = Struct(pname=("http://www.ebi.ac.uk/WSWUBlast","getStats"), ofwhat=[], pyclass=getStatsRequest, encoded="http://www.ebi.ac.uk/WSWUBlast")
+
+class getStatsResponse:
+    def __init__(self):
+        self._result = None
+        return
+getStatsResponse.typecode = Struct(pname=("http://www.ebi.ac.uk/WSWUBlast","getStatsResponse"), ofwhat=[ns0.WSArrayofoutData_Def(pname="result", aname="_result", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=getStatsResponse, encoded="http://www.ebi.ac.uk/WSWUBlast")
+
+class getXmlFormatsRequest:
+    def __init__(self):
+        return
+getXmlFormatsRequest.typecode = Struct(pname=("http://www.ebi.ac.uk/WSWUBlast","getXmlFormats"), ofwhat=[], pyclass=getXmlFormatsRequest, encoded="http://www.ebi.ac.uk/WSWUBlast")
+
+class getXmlFormatsResponse:
+    def __init__(self):
+        self._result = None
+        return
+getXmlFormatsResponse.typecode = Struct(pname=("http://www.ebi.ac.uk/WSWUBlast","getXmlFormatsResponse"), ofwhat=[ns0.WSArrayofoutData_Def(pname="result", aname="_result", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=getXmlFormatsResponse, encoded="http://www.ebi.ac.uk/WSWUBlast")
+
+class getSensitivityRequest:
+    def __init__(self):
+        return
+getSensitivityRequest.typecode = Struct(pname=("http://www.ebi.ac.uk/WSWUBlast","getSensitivity"), ofwhat=[], pyclass=getSensitivityRequest, encoded="http://www.ebi.ac.uk/WSWUBlast")
+
+class getSensitivityResponse:
+    def __init__(self):
+        self._result = None
+        return
+getSensitivityResponse.typecode = Struct(pname=("http://www.ebi.ac.uk/WSWUBlast","getSensitivityResponse"), ofwhat=[ns0.WSArrayofoutData_Def(pname="result", aname="_result", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=getSensitivityResponse, encoded="http://www.ebi.ac.uk/WSWUBlast")
+
+class getFiltersRequest:
+    def __init__(self):
+        return
+getFiltersRequest.typecode = Struct(pname=("http://www.ebi.ac.uk/WSWUBlast","getFilters"), ofwhat=[], pyclass=getFiltersRequest, encoded="http://www.ebi.ac.uk/WSWUBlast")
+
+class getFiltersResponse:
+    def __init__(self):
+        self._result = None
+        return
+getFiltersResponse.typecode = Struct(pname=("http://www.ebi.ac.uk/WSWUBlast","getFiltersResponse"), ofwhat=[ns0.WSArrayofoutData_Def(pname="result", aname="_result", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=getFiltersResponse, encoded="http://www.ebi.ac.uk/WSWUBlast")
+
+class statusRequest:
+    def __init__(self):
+        self._jobid = None
+        return
+statusRequest.typecode = Struct(pname=("http://www.ebi.ac.uk/WSWUBlast","checkStatus"), ofwhat=[ZSI.TC.String(pname="jobid", aname="_jobid", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=statusRequest, encoded="http://www.ebi.ac.uk/WSWUBlast")
+
+class statusResponse:
+    def __init__(self):
+        self._status = None
+        return
+statusResponse.typecode = Struct(pname=("http://www.ebi.ac.uk/WSWUBlast","checkStatusResponse"), ofwhat=[ZSI.TC.String(pname="status", aname="_status", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=statusResponse, encoded="http://www.ebi.ac.uk/WSWUBlast")
+
+class resultsRequest:
+    def __init__(self):
+        self._jobid = None
+        return
+resultsRequest.typecode = Struct(pname=("http://www.ebi.ac.uk/WSWUBlast","getResults"), ofwhat=[ZSI.TC.String(pname="jobid", aname="_jobid", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=resultsRequest, encoded="http://www.ebi.ac.uk/WSWUBlast")
+
+class resultsResponse:
+    def __init__(self):
+        self._results = None
+        return
+resultsResponse.typecode = Struct(pname=("http://www.ebi.ac.uk/WSWUBlast","getResultsResponse"), ofwhat=[ns0.WSArrayofFile_Def(pname="results", aname="_results", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=resultsResponse, encoded="http://www.ebi.ac.uk/WSWUBlast")
+
+class getOutput:
+    def __init__(self):
+        self._jobid = None
+        return
+getOutput.typecode = Struct(pname=("http://www.ebi.ac.uk/WSWUBlast","getOutput"), ofwhat=[ZSI.TC.String(pname="jobid", aname="_jobid", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=getOutput, encoded="http://www.ebi.ac.uk/WSWUBlast")
+
+class getOutputResponse:
+    def __init__(self):
+        self._result = None
+        return
+getOutputResponse.typecode = Struct(pname=("http://www.ebi.ac.uk/WSWUBlast","getOutputResponse"), ofwhat=[ZSI.TC.String(pname="result", aname="_result", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=getOutputResponse, encoded="http://www.ebi.ac.uk/WSWUBlast")
+
+class getXML:
+    def __init__(self):
+        self._jobid = None
+        return
+getXML.typecode = Struct(pname=("http://www.ebi.ac.uk/WSWUBlast","getXML"), ofwhat=[ZSI.TC.String(pname="jobid", aname="_jobid", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=getXML, encoded="http://www.ebi.ac.uk/WSWUBlast")
+
+class getXMLResponse:
+    def __init__(self):
+        self._result = None
+        return
+getXMLResponse.typecode = Struct(pname=("http://www.ebi.ac.uk/WSWUBlast","getXMLResponse"), ofwhat=[ZSI.TC.String(pname="result", aname="_result", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=getXMLResponse, encoded="http://www.ebi.ac.uk/WSWUBlast")
+
+class blastp:
+    def __init__(self):
+        self._database = None
+        self._sequence = None
+        self._email = None
+        return
+blastp.typecode = Struct(pname=("http://www.ebi.ac.uk/WSWUBlast","blastp"), ofwhat=[ZSI.TC.String(pname="database", aname="_database", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="sequence", aname="_sequence", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="email", aname="_email", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=blastp, encoded="http://www.ebi.ac.uk/WSWUBlast")
+
+class blastpResponse:
+    def __init__(self):
+        self._jobid = None
+        return
+blastpResponse.typecode = Struct(pname=("http://www.ebi.ac.uk/WSWUBlast","blastpResponse"), ofwhat=[ZSI.TC.String(pname="jobid", aname="_jobid", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=blastpResponse, encoded="http://www.ebi.ac.uk/WSWUBlast")
+
+class blastn:
+    def __init__(self):
+        self._database = None
+        self._sequence = None
+        self._email = None
+        return
+blastn.typecode = Struct(pname=("http://www.ebi.ac.uk/WSWUBlast","blastn"), ofwhat=[ZSI.TC.String(pname="database", aname="_database", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="sequence", aname="_sequence", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="email", aname="_email", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=blastn, encoded="http://www.ebi.ac.uk/WSWUBlast")
+
+class blastnResponse:
+    def __init__(self):
+        self._jobid = None
+        return
+blastnResponse.typecode = Struct(pname=("http://www.ebi.ac.uk/WSWUBlast","blastnResponse"), ofwhat=[ZSI.TC.String(pname="jobid", aname="_jobid", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=blastnResponse, encoded="http://www.ebi.ac.uk/WSWUBlast")
+
+class polljobRequest:
+    def __init__(self):
+        self._jobid = None
+        self._outformat = None
+        return
+polljobRequest.typecode = Struct(pname=("http://www.ebi.ac.uk/WSWUBlast","polljob"), ofwhat=[ZSI.TC.String(pname="jobid", aname="_jobid", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="outformat", aname="_outformat", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=polljobRequest, encoded="http://www.ebi.ac.uk/WSWUBlast")
+
+class polljobResponse:
+    def __init__(self):
+        self._result = None
+        return
+polljobResponse.typecode = Struct(pname=("http://www.ebi.ac.uk/WSWUBlast","polljobResponse"), ofwhat=[ZSI.TC.Base64String(pname="result", aname="_result", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=polljobResponse, encoded="http://www.ebi.ac.uk/WSWUBlast")
+
+class doWUBlastRequest:
+    def __init__(self):
+        self._params = None
+        self._content = None
+        return
+doWUBlastRequest.typecode = Struct(pname=("http://www.ebi.ac.uk/WSWUBlast","doWUBlast"), ofwhat=[ns0.inputParams_Def(pname="params", aname="_params", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.Base64String(pname="content", aname="_content", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=doWUBlastRequest, encoded="http://www.ebi.ac.uk/WSWUBlast")
+
+class doWUBlastResponse:
+    def __init__(self):
+        self._result = None
+        return
+doWUBlastResponse.typecode = Struct(pname=("http://www.ebi.ac.uk/WSWUBlast","doWUBlastResponse"), ofwhat=[ZSI.TC.Base64String(pname="result", aname="_result", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=doWUBlastResponse, encoded="http://www.ebi.ac.uk/WSWUBlast")
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/WSWUBlast/WSWUBlast_services_types.py	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,154 @@
+################################################## 
+# WSWUBlast_services_types.py 
+# generated by ZSI.generate.wsdl2python
+##################################################
+
+
+import ZSI
+import ZSI.TCcompound
+from ZSI.schema import LocalElementDeclaration, ElementDeclaration, TypeDefinition, GTD, GED
+
+##############################
+# targetNamespace
+# http://www.ebi.ac.uk/WSWUBlast
+##############################
+
+class ns0:
+    targetNamespace = "http://www.ebi.ac.uk/WSWUBlast"
+
+    class inputParams_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://www.ebi.ac.uk/WSWUBlast"
+        type = (schema, "inputParams")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.inputParams_Def.schema
+            TClist = [ZSI.TC.String(pname="program", aname="_program", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="database", aname="_database", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="matrix", aname="_matrix", minOccurs=1, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.FPfloat(pname="exp", aname="_exp", minOccurs=1, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.Boolean(pname="echofilter", aname="_echofilter", minOccurs=1, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="filter", aname="_filter", minOccurs=1, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="numal", aname="_numal", minOccurs=1, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="scores", aname="_scores", minOccurs=1, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="sensitivity", aname="_sensitivity", minOccurs=1, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="sort", aname="_sort", minOccurs=1, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="stats", aname="_stats", minOccurs=1, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="strand", aname="_strand", minOccurs=1, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="outformat", aname="_outformat", minOccurs=1, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="topcombon", aname="_topcombon", minOccurs=1, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="appxml", aname="_appxml", minOccurs=1, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.Boolean(pname="async", aname="_async", minOccurs=1, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="email", aname="_email", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._program = None
+                    self._database = None
+                    self._matrix = None
+                    self._exp = None
+                    self._echofilter = None
+                    self._filter = None
+                    self._numal = None
+                    self._scores = None
+                    self._sensitivity = None
+                    self._sort = None
+                    self._stats = None
+                    self._strand = None
+                    self._outformat = None
+                    self._topcombon = None
+                    self._appxml = None
+                    self._async = None
+                    self._email = None
+                    return
+            Holder.__name__ = "inputParams_Holder"
+            self.pyclass = Holder
+
+    class data_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://www.ebi.ac.uk/WSWUBlast"
+        type = (schema, "data")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.data_Def.schema
+            TClist = [ZSI.TC.String(pname="type", aname="_type", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="content", aname="_content", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._type = None
+                    self._content = None
+                    return
+            Holder.__name__ = "data_Holder"
+            self.pyclass = Holder
+
+    class ArrayOf_xsd_string_Def(ZSI.TC.Array, TypeDefinition):
+        #complexType/complexContent base="SOAP-ENC:Array"
+        schema = "http://www.ebi.ac.uk/WSWUBlast"
+        type = (schema, "ArrayOf_xsd_string")
+        def __init__(self, pname, ofwhat=(), extend=False, restrict=False, attributes=None, **kw):
+            ofwhat = ZSI.TC.String(None, typed=False)
+            atype = (u'http://www.w3.org/2001/XMLSchema', u'string[]')
+            ZSI.TCcompound.Array.__init__(self, atype, ofwhat, pname=pname, childnames='item', **kw)
+
+    class WSArrayofFile_Def(ZSI.TC.Array, TypeDefinition):
+        #complexType/complexContent base="SOAP-ENC:Array"
+        schema = "http://www.ebi.ac.uk/WSWUBlast"
+        type = (schema, "WSArrayofFile")
+        def __init__(self, pname, ofwhat=(), extend=False, restrict=False, attributes=None, **kw):
+            ofwhat = ns0.WSFile_Def(None, typed=False)
+            atype = (u'http://www.ebi.ac.uk/WSWUBlast', u'WSFile[]')
+            ZSI.TCcompound.Array.__init__(self, atype, ofwhat, pname=pname, childnames='item', **kw)
+
+    class WSArrayofData_Def(ZSI.TC.Array, TypeDefinition):
+        #complexType/complexContent base="SOAP-ENC:Array"
+        schema = "http://www.ebi.ac.uk/WSWUBlast"
+        type = (schema, "WSArrayofData")
+        def __init__(self, pname, ofwhat=(), extend=False, restrict=False, attributes=None, **kw):
+            ofwhat = ns0.data_Def(None, typed=False)
+            atype = (u'http://www.ebi.ac.uk/WSWUBlast', u'data[]')
+            ZSI.TCcompound.Array.__init__(self, atype, ofwhat, pname=pname, childnames='item', **kw)
+
+    class WSFile_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://www.ebi.ac.uk/WSWUBlast"
+        type = (schema, "WSFile")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.WSFile_Def.schema
+            TClist = [ZSI.TC.String(pname="type", aname="_type", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="ext", aname="_ext", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._type = None
+                    self._ext = None
+                    return
+            Holder.__name__ = "WSFile_Holder"
+            self.pyclass = Holder
+
+    class outData_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://www.ebi.ac.uk/WSWUBlast"
+        type = (schema, "outData")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.outData_Def.schema
+            TClist = [ZSI.TC.String(pname="print_name", aname="_print_name", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="name", aname="_name", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="selected", aname="_selected", minOccurs=1, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="data_type", aname="_data_type", minOccurs=1, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="input_type", aname="_input_type", minOccurs=1, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="search_type", aname="_search_type", minOccurs=1, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._print_name = None
+                    self._name = None
+                    self._selected = None
+                    self._data_type = None
+                    self._input_type = None
+                    self._search_type = None
+                    return
+            Holder.__name__ = "outData_Holder"
+            self.pyclass = Holder
+
+    class WSArrayofoutData_Def(ZSI.TC.Array, TypeDefinition):
+        #complexType/complexContent base="SOAP-ENC:Array"
+        schema = "http://www.ebi.ac.uk/WSWUBlast"
+        type = (schema, "WSArrayofoutData")
+        def __init__(self, pname, ofwhat=(), extend=False, restrict=False, attributes=None, **kw):
+            ofwhat = ns0.outData_Def(None, typed=False)
+            atype = (u'http://www.ebi.ac.uk/WSWUBlast', u'outData[]')
+            ZSI.TCcompound.Array.__init__(self, atype, ofwhat, pname=pname, childnames='item', **kw)
+
+# end class ns0 (tns: http://www.ebi.ac.uk/WSWUBlast)
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/__init__.pyc has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/clustalw2/clustalw2_client.py	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,115 @@
+##################################################
+# file: clustalw2_client.py
+# 
+# client stubs generated by "ZSI.generate.wsdl2python.WriteServiceModule"
+#     /home/alok/galaxy-central/tools/WebServiceToolWorkflow_REST_SOAP/WebServiceTool_input_method_m.py /home/alok/galaxy-central/database/files/000/dataset_21.dat http://www.ebi.ac.uk/Tools/services/soap/clustalw2?wsdl getParameters /home/alok/galaxy-central/database/files/000/dataset_30.dat
+# 
+##################################################
+
+from clustalw2_types import *
+import urlparse, types
+from ZSI.TCcompound import ComplexType, Struct
+from ZSI import client
+from ZSI.schema import GED, GTD
+import ZSI
+
+# Locator
+class JDispatcherServiceLocator:
+    JDispatcherServiceHttpPort_address = "http://www.ebi.ac.uk/Tools/services/soap/clustalw2"
+    def getJDispatcherServiceHttpPortAddress(self):
+        return JDispatcherServiceLocator.JDispatcherServiceHttpPort_address
+    def getJDispatcherServiceHttpPort(self, url=None, **kw):
+        return JDispatcherServiceHttpBindingSOAP(url or JDispatcherServiceLocator.JDispatcherServiceHttpPort_address, **kw)
+
+# Methods
+class JDispatcherServiceHttpBindingSOAP:
+    def __init__(self, url, **kw):
+        kw.setdefault("readerclass", None)
+        kw.setdefault("writerclass", None)
+        # no resource properties
+        self.binding = client.Binding(url=url, **kw)
+        # no ws-addressing
+
+    # op: run
+    def run(self, request, **kw):
+        if isinstance(request, runRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="urn:Run", **kw)
+        # no output wsaction
+        response = self.binding.Receive(runResponse.typecode)
+        return response
+
+    # op: getStatus
+    def getStatus(self, request, **kw):
+        if isinstance(request, getStatusRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="urn:GetStatus", **kw)
+        # no output wsaction
+        response = self.binding.Receive(getStatusResponse.typecode)
+        return response
+
+    # op: getResultTypes
+    def getResultTypes(self, request, **kw):
+        if isinstance(request, getResultTypesRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="urn:GetResultTypes", **kw)
+        # no output wsaction
+        response = self.binding.Receive(getResultTypesResponse.typecode)
+        return response
+
+    # op: getResult
+    def getResult(self, request, **kw):
+        if isinstance(request, getResultRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="urn:GetResult", **kw)
+        # no output wsaction
+        response = self.binding.Receive(getResultResponse.typecode)
+        return response
+
+    # op: getParameters
+    def getParameters(self, request, **kw):
+        if isinstance(request, getParametersRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="urn:GetParameters", **kw)
+        # no output wsaction
+        response = self.binding.Receive(getParametersResponse.typecode)
+        return response
+
+    # op: getParameterDetails
+    def getParameterDetails(self, request, **kw):
+        if isinstance(request, getParameterDetailsRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="urn:GetParameterDetails", **kw)
+        # no output wsaction
+        response = self.binding.Receive(getParameterDetailsResponse.typecode)
+        return response
+
+runRequest = GED("http://soap.jdispatcher.ebi.ac.uk", "run").pyclass
+
+runResponse = GED("http://soap.jdispatcher.ebi.ac.uk", "runResponse").pyclass
+
+getStatusRequest = GED("http://soap.jdispatcher.ebi.ac.uk", "getStatus").pyclass
+
+getStatusResponse = GED("http://soap.jdispatcher.ebi.ac.uk", "getStatusResponse").pyclass
+
+getResultTypesRequest = GED("http://soap.jdispatcher.ebi.ac.uk", "getResultTypes").pyclass
+
+getResultTypesResponse = GED("http://soap.jdispatcher.ebi.ac.uk", "getResultTypesResponse").pyclass
+
+getResultRequest = GED("http://soap.jdispatcher.ebi.ac.uk", "getResult").pyclass
+
+getResultResponse = GED("http://soap.jdispatcher.ebi.ac.uk", "getResultResponse").pyclass
+
+getParametersRequest = GED("http://soap.jdispatcher.ebi.ac.uk", "getParameters").pyclass
+
+getParametersResponse = GED("http://soap.jdispatcher.ebi.ac.uk", "getParametersResponse").pyclass
+
+getParameterDetailsRequest = GED("http://soap.jdispatcher.ebi.ac.uk", "getParameterDetails").pyclass
+
+getParameterDetailsResponse = GED("http://soap.jdispatcher.ebi.ac.uk", "getParameterDetailsResponse").pyclass
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/clustalw2/clustalw2_server.py	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,89 @@
+##################################################
+# file: clustalw2_server.py
+#
+# skeleton generated by "ZSI.generate.wsdl2dispatch.ServiceModuleWriter"
+#      /home/alok/galaxy-central/tools/WebServiceToolWorkflow_REST_SOAP/WebServiceTool_input_method_m.py /home/alok/galaxy-central/database/files/000/dataset_21.dat http://www.ebi.ac.uk/Tools/services/soap/clustalw2?wsdl getParameters /home/alok/galaxy-central/database/files/000/dataset_30.dat
+#
+##################################################
+
+from ZSI.schema import GED, GTD
+from ZSI.TCcompound import ComplexType, Struct
+from clustalw2_types import *
+from ZSI.ServiceContainer import ServiceSOAPBinding
+
+# Messages  
+runRequest = GED("http://soap.jdispatcher.ebi.ac.uk", "run").pyclass
+
+runResponse = GED("http://soap.jdispatcher.ebi.ac.uk", "runResponse").pyclass
+
+getStatusRequest = GED("http://soap.jdispatcher.ebi.ac.uk", "getStatus").pyclass
+
+getStatusResponse = GED("http://soap.jdispatcher.ebi.ac.uk", "getStatusResponse").pyclass
+
+getResultTypesRequest = GED("http://soap.jdispatcher.ebi.ac.uk", "getResultTypes").pyclass
+
+getResultTypesResponse = GED("http://soap.jdispatcher.ebi.ac.uk", "getResultTypesResponse").pyclass
+
+getResultRequest = GED("http://soap.jdispatcher.ebi.ac.uk", "getResult").pyclass
+
+getResultResponse = GED("http://soap.jdispatcher.ebi.ac.uk", "getResultResponse").pyclass
+
+getParametersRequest = GED("http://soap.jdispatcher.ebi.ac.uk", "getParameters").pyclass
+
+getParametersResponse = GED("http://soap.jdispatcher.ebi.ac.uk", "getParametersResponse").pyclass
+
+getParameterDetailsRequest = GED("http://soap.jdispatcher.ebi.ac.uk", "getParameterDetails").pyclass
+
+getParameterDetailsResponse = GED("http://soap.jdispatcher.ebi.ac.uk", "getParameterDetailsResponse").pyclass
+
+
+# Service Skeletons
+class JDispatcherService(ServiceSOAPBinding):
+    soapAction = {}
+    root = {}
+
+    def __init__(self, post='/Tools/services/soap/clustalw2', **kw):
+        ServiceSOAPBinding.__init__(self, post)
+
+    def soap_run(self, ps, **kw):
+        request = ps.Parse(runRequest.typecode)
+        return request,runResponse()
+
+    soapAction['urn:Run'] = 'soap_run'
+    root[(runRequest.typecode.nspname,runRequest.typecode.pname)] = 'soap_run'
+
+    def soap_getStatus(self, ps, **kw):
+        request = ps.Parse(getStatusRequest.typecode)
+        return request,getStatusResponse()
+
+    soapAction['urn:GetStatus'] = 'soap_getStatus'
+    root[(getStatusRequest.typecode.nspname,getStatusRequest.typecode.pname)] = 'soap_getStatus'
+
+    def soap_getResultTypes(self, ps, **kw):
+        request = ps.Parse(getResultTypesRequest.typecode)
+        return request,getResultTypesResponse()
+
+    soapAction['urn:GetResultTypes'] = 'soap_getResultTypes'
+    root[(getResultTypesRequest.typecode.nspname,getResultTypesRequest.typecode.pname)] = 'soap_getResultTypes'
+
+    def soap_getResult(self, ps, **kw):
+        request = ps.Parse(getResultRequest.typecode)
+        return request,getResultResponse()
+
+    soapAction['urn:GetResult'] = 'soap_getResult'
+    root[(getResultRequest.typecode.nspname,getResultRequest.typecode.pname)] = 'soap_getResult'
+
+    def soap_getParameters(self, ps, **kw):
+        request = ps.Parse(getParametersRequest.typecode)
+        return request,getParametersResponse()
+
+    soapAction['urn:GetParameters'] = 'soap_getParameters'
+    root[(getParametersRequest.typecode.nspname,getParametersRequest.typecode.pname)] = 'soap_getParameters'
+
+    def soap_getParameterDetails(self, ps, **kw):
+        request = ps.Parse(getParameterDetailsRequest.typecode)
+        return request,getParameterDetailsResponse()
+
+    soapAction['urn:GetParameterDetails'] = 'soap_getParameterDetails'
+    root[(getParameterDetailsRequest.typecode.nspname,getParameterDetailsRequest.typecode.pname)] = 'soap_getParameterDetails'
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/clustalw2/clustalw2_services.py	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,118 @@
+################################################## 
+# clustalw2_services.py 
+# generated by ZSI.generate.wsdl2python
+##################################################
+
+
+from clustalw2_services_types import *
+import urlparse, types
+from ZSI.TCcompound import ComplexType, Struct
+from ZSI import client
+import ZSI
+
+# Locator
+class JDispatcherServiceLocator:
+    JDispatcherService_address = "http://www.ebi.ac.uk/Tools/services/soap/clustalw2"
+    def getJDispatcherServiceAddress(self):
+        return JDispatcherServiceLocator.JDispatcherService_address
+    def getJDispatcherService(self, url=None, **kw):
+        return JDispatcherServiceHttpBindingSOAP(url or JDispatcherServiceLocator.JDispatcherService_address, **kw)
+
+# Methods
+class JDispatcherServiceHttpBindingSOAP:
+    def __init__(self, url, **kw):
+        kw.setdefault("readerclass", None)
+        kw.setdefault("writerclass", None)
+        # no resource properties
+        self.binding = client.Binding(url=url, **kw)
+        # no ws-addressing
+
+    # op: run
+    def run(self, request):
+        if isinstance(request, runRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="urn:Run", **kw)
+        # no output wsaction
+        response = self.binding.Receive(runResponse.typecode)
+        return response
+
+    # op: getStatus
+    def getStatus(self, request):
+        if isinstance(request, getStatusRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="urn:GetStatus", **kw)
+        # no output wsaction
+        response = self.binding.Receive(getStatusResponse.typecode)
+        return response
+
+    # op: getResultTypes
+    def getResultTypes(self, request):
+        if isinstance(request, getResultTypesRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="urn:GetResultTypes", **kw)
+        # no output wsaction
+        response = self.binding.Receive(getResultTypesResponse.typecode)
+        return response
+
+    # op: getResult
+    def getResult(self, request):
+        if isinstance(request, getResultRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="urn:GetResult", **kw)
+        # no output wsaction
+        response = self.binding.Receive(getResultResponse.typecode)
+        return response
+
+    # op: getParameters
+    def getParameters(self, request):
+        if isinstance(request, getParametersRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="urn:GetParameters", **kw)
+        # no output wsaction
+        response = self.binding.Receive(getParametersResponse.typecode)
+        return response
+
+    # op: getParameterDetails
+    def getParameterDetails(self, request):
+        if isinstance(request, getParameterDetailsRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="urn:GetParameterDetails", **kw)
+        # no output wsaction
+        response = self.binding.Receive(getParameterDetailsResponse.typecode)
+        return response
+
+runRequest = ns0.run_Dec().pyclass
+
+runResponse = ns0.runResponse_Dec().pyclass
+
+getStatusRequest = ns0.getStatus_Dec().pyclass
+
+getStatusResponse = ns0.getStatusResponse_Dec().pyclass
+
+getResultTypesRequest = ns0.getResultTypes_Dec().pyclass
+
+getResultTypesResponse = ns0.getResultTypesResponse_Dec().pyclass
+
+getResultRequest = ns0.getResult_Dec().pyclass
+
+getResultResponse = ns0.getResultResponse_Dec().pyclass
+
+getParametersRequest = ns0.getParameters_Dec().pyclass
+
+getParametersResponse = ns0.getParametersResponse_Dec().pyclass
+
+getParameterDetailsRequest = ns0.getParameterDetails_Dec().pyclass
+
+getParameterDetailsResponse = ns0.getParameterDetailsResponse_Dec().pyclass
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/clustalw2/clustalw2_services.py~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,121 @@
+################################################## 
+# clustalw2_services.py 
+# generated by ZSI.generate.wsdl2python
+##################################################
+
+
+from clustalw2_services_types import *
+import urlparse, types
+from ZSI.TCcompound import ComplexType, Struct
+from ZSI import client
+import ZSI
+
+# Locator
+class JDispatcherServiceLocator:
+    JDispatcherService_address = "http://www.ebi.ac.uk/Tools/services/soap/clustalw2"
+    def getJDispatcherServiceAddress(self):
+        return JDispatcherServiceLocator.JDispatcherService_address
+    def getJDispatcherService(self, url=None, **kw):
+        return JDispatcherServiceHttpBindingSOAP(url or JDispatcherServiceLocator.JDispatcherService_address, **kw)
+
+# Methods
+class JDispatcherServiceHttpBindingSOAP:
+    def __init__(self, url, **kw):
+        kw.setdefault("readerclass", None)
+        kw.setdefault("writerclass", None)
+        # no resource properties
+        self.binding = client.Binding(url=url, **kw)
+        # no ws-addressing
+
+    # op: run
+    def run(self, request):
+        if isinstance(request, runRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="urn:Run", **kw)
+        # no output wsaction
+        response = self.binding.Receive(runResponse.typecode)
+        return response
+
+    # op: getStatus
+    def getStatus(self, request):
+        if isinstance(request, getStatusRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="urn:GetStatus", **kw)
+        # no output wsaction
+        response = self.binding.Receive(getStatusResponse.typecode)
+        return response
+
+    # op: getResultTypes
+    def getResultTypes(self, request):
+        if isinstance(request, getResultTypesRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="urn:GetResultTypes", **kw)
+        # no output wsaction
+        response = self.binding.Receive(getResultTypesResponse.typecode)
+        return response
+
+    # op: getResult
+    def getResult(self, request):
+        if isinstance(request, getResultRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="urn:GetResult", **kw)
+        # no output wsaction
+        response = self.binding.Receive(getResultResponse.typecode)
+        return response
+
+    # op: getParameters
+    def getParameters(self, request):
+        if isinstance(request, getParametersRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="urn:GetParameters", **kw)
+        # no output wsaction
+        response = self.binding.Receive(getParametersResponse.typecode)
+        partList=getattr(getattr(response, 'typecode'), 'ofwhat')
+        #print 'partlist : ',partList  #added
+        #print par  #added
+        return response
+
+    # op: getParameterDetails
+    def getParameterDetails(self, request):
+        if isinstance(request, getParameterDetailsRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="urn:GetParameterDetails", **kw)
+        # no output wsaction
+        response = self.binding.Receive(getParameterDetailsResponse.typecode)
+        return response
+
+runRequest = ns0.run_Dec().pyclass
+
+runResponse = ns0.runResponse_Dec().pyclass
+
+getStatusRequest = ns0.getStatus_Dec().pyclass
+
+getStatusResponse = ns0.getStatusResponse_Dec().pyclass
+
+getResultTypesRequest = ns0.getResultTypes_Dec().pyclass
+
+getResultTypesResponse = ns0.getResultTypesResponse_Dec().pyclass
+
+getResultRequest = ns0.getResult_Dec().pyclass
+
+getResultResponse = ns0.getResultResponse_Dec().pyclass
+
+getParametersRequest = ns0.getParameters_Dec().pyclass
+
+getParametersResponse = ns0.getParametersResponse_Dec().pyclass
+
+getParameterDetailsRequest = ns0.getParameterDetails_Dec().pyclass
+
+getParameterDetailsResponse = ns0.getParameterDetailsResponse_Dec().pyclass
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/clustalw2/clustalw2_services_types.py	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,512 @@
+################################################## 
+# clustalw2_services_types.py 
+# generated by ZSI.generate.wsdl2python
+##################################################
+
+
+import ZSI
+import ZSI.TCcompound
+from ZSI.schema import LocalElementDeclaration, ElementDeclaration, TypeDefinition, GTD, GED
+
+##############################
+# targetNamespace
+# http://soap.jdispatcher.ebi.ac.uk
+##############################
+
+class ns0:
+    targetNamespace = "http://soap.jdispatcher.ebi.ac.uk"
+
+    class InputParameters_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "InputParameters")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.InputParameters_Def.schema
+            TClist = [ZSI.TC.String(pname="alignment", aname="_alignment", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="type", aname="_type", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="ktup", aname="_ktup", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="window", aname="_window", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="score", aname="_score", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="topdiags", aname="_topdiags", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="pairgap", aname="_pairgap", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="pwmatrix", aname="_pwmatrix", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="pwdnamatrix", aname="_pwdnamatrix", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="pwgapopen", aname="_pwgapopen", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.FPfloat(pname="pwgapext", aname="_pwgapext", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="matrix", aname="_matrix", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="dnamatrix", aname="_dnamatrix", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="gapopen", aname="_gapopen", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.Boolean(pname="noendgaps", aname="_noendgaps", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.FPfloat(pname="gapext", aname="_gapext", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="gapdist", aname="_gapdist", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="iteration", aname="_iteration", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="numiter", aname="_numiter", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="clustering", aname="_clustering", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="output", aname="_output", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="outorder", aname="_outorder", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="sequence", aname="_sequence", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._alignment = None
+                    self._type = None
+                    self._ktup = None
+                    self._window = None
+                    self._score = None
+                    self._topdiags = None
+                    self._pairgap = None
+                    self._pwmatrix = None
+                    self._pwdnamatrix = None
+                    self._pwgapopen = None
+                    self._pwgapext = None
+                    self._matrix = None
+                    self._dnamatrix = None
+                    self._gapopen = None
+                    self._noendgaps = None
+                    self._gapext = None
+                    self._gapdist = None
+                    self._iteration = None
+                    self._numiter = None
+                    self._clustering = None
+                    self._output = None
+                    self._outorder = None
+                    self._sequence = None
+                    return
+            Holder.__name__ = "InputParameters_Holder"
+            self.pyclass = Holder
+
+    class ArrayOfString_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "ArrayOfString")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.ArrayOfString_Def.schema
+            TClist = [ZSI.TC.String(pname="string", aname="_string", minOccurs=0, maxOccurs="unbounded", nillable=True, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._string = []
+                    return
+            Holder.__name__ = "ArrayOfString_Holder"
+            self.pyclass = Holder
+
+    class wsResultTypes_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "wsResultTypes")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.wsResultTypes_Def.schema
+            TClist = [GTD("http://soap.jdispatcher.ebi.ac.uk","wsResultType",lazy=False)(pname="type", aname="_type", minOccurs=0, maxOccurs="unbounded", nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._type = []
+                    return
+            Holder.__name__ = "wsResultTypes_Holder"
+            self.pyclass = Holder
+
+    class wsResultType_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "wsResultType")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.wsResultType_Def.schema
+            TClist = [ZSI.TC.String(pname="description", aname="_description", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="fileSuffix", aname="_fileSuffix", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="identifier", aname="_identifier", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="label", aname="_label", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="mediaType", aname="_mediaType", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._description = None
+                    self._fileSuffix = None
+                    self._identifier = None
+                    self._label = None
+                    self._mediaType = None
+                    return
+            Holder.__name__ = "wsResultType_Holder"
+            self.pyclass = Holder
+
+    class wsRawOutputParameters_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "wsRawOutputParameters")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.wsRawOutputParameters_Def.schema
+            TClist = [GTD("http://soap.jdispatcher.ebi.ac.uk","wsRawOutputParameter",lazy=False)(pname="parameter", aname="_parameter", minOccurs=1, maxOccurs="unbounded", nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._parameter = []
+                    return
+            Holder.__name__ = "wsRawOutputParameters_Holder"
+            self.pyclass = Holder
+
+    class wsRawOutputParameter_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "wsRawOutputParameter")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.wsRawOutputParameter_Def.schema
+            TClist = [ZSI.TC.String(pname="name", aname="_name", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://soap.jdispatcher.ebi.ac.uk","ArrayOfString",lazy=False)(pname="value", aname="_value", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._name = None
+                    self._value = None
+                    return
+            Holder.__name__ = "wsRawOutputParameter_Holder"
+            self.pyclass = Holder
+
+    class wsParameters_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "wsParameters")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.wsParameters_Def.schema
+            TClist = [ZSI.TC.String(pname="id", aname="_id", minOccurs=0, maxOccurs="unbounded", nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._id = []
+                    return
+            Holder.__name__ = "wsParameters_Holder"
+            self.pyclass = Holder
+
+    class wsParameterDetails_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "wsParameterDetails")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.wsParameterDetails_Def.schema
+            TClist = [ZSI.TC.String(pname="name", aname="_name", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="description", aname="_description", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="type", aname="_type", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://soap.jdispatcher.ebi.ac.uk","wsParameterValues",lazy=False)(pname="values", aname="_values", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._name = None
+                    self._description = None
+                    self._type = None
+                    self._values = None
+                    return
+            Holder.__name__ = "wsParameterDetails_Holder"
+            self.pyclass = Holder
+
+    class wsParameterValues_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "wsParameterValues")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.wsParameterValues_Def.schema
+            TClist = [GTD("http://soap.jdispatcher.ebi.ac.uk","wsParameterValue",lazy=False)(pname="value", aname="_value", minOccurs=0, maxOccurs="unbounded", nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._value = []
+                    return
+            Holder.__name__ = "wsParameterValues_Holder"
+            self.pyclass = Holder
+
+    class wsParameterValue_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "wsParameterValue")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.wsParameterValue_Def.schema
+            TClist = [ZSI.TC.String(pname="label", aname="_label", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="value", aname="_value", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.Boolean(pname="defaultValue", aname="_defaultValue", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://soap.jdispatcher.ebi.ac.uk","wsProperties",lazy=False)(pname="properties", aname="_properties", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._label = None
+                    self._value = None
+                    self._defaultValue = None
+                    self._properties = None
+                    return
+            Holder.__name__ = "wsParameterValue_Holder"
+            self.pyclass = Holder
+
+    class wsProperties_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "wsProperties")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.wsProperties_Def.schema
+            TClist = [GTD("http://soap.jdispatcher.ebi.ac.uk","wsProperty",lazy=False)(pname="property", aname="_property", minOccurs=0, maxOccurs="unbounded", nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._property = []
+                    return
+            Holder.__name__ = "wsProperties_Holder"
+            self.pyclass = Holder
+
+    class wsProperty_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "wsProperty")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.wsProperty_Def.schema
+            TClist = [ZSI.TC.String(pname="key", aname="_key", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="value", aname="_value", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._key = None
+                    self._value = None
+                    return
+            Holder.__name__ = "wsProperty_Holder"
+            self.pyclass = Holder
+
+    class run_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "run"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.run_Dec.schema
+            TClist = [ZSI.TC.String(pname="email", aname="_email", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="title", aname="_title", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), GTD("http://soap.jdispatcher.ebi.ac.uk","InputParameters",lazy=False)(pname="parameters", aname="_parameters", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","run")
+            kw["aname"] = "_run"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._email = None
+                    self._title = None
+                    self._parameters = None
+                    return
+            Holder.__name__ = "run_Holder"
+            self.pyclass = Holder
+
+    class runResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "runResponse"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.runResponse_Dec.schema
+            TClist = [ZSI.TC.String(pname="jobId", aname="_jobId", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","runResponse")
+            kw["aname"] = "_runResponse"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._jobId = None
+                    return
+            Holder.__name__ = "runResponse_Holder"
+            self.pyclass = Holder
+
+    class getStatus_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getStatus"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.getStatus_Dec.schema
+            TClist = [ZSI.TC.String(pname="jobId", aname="_jobId", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getStatus")
+            kw["aname"] = "_getStatus"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._jobId = None
+                    return
+            Holder.__name__ = "getStatus_Holder"
+            self.pyclass = Holder
+
+    class getStatusResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getStatusResponse"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.getStatusResponse_Dec.schema
+            TClist = [ZSI.TC.String(pname="status", aname="_status", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getStatusResponse")
+            kw["aname"] = "_getStatusResponse"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._status = None
+                    return
+            Holder.__name__ = "getStatusResponse_Holder"
+            self.pyclass = Holder
+
+    class getResultTypes_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getResultTypes"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.getResultTypes_Dec.schema
+            TClist = [ZSI.TC.String(pname="jobId", aname="_jobId", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getResultTypes")
+            kw["aname"] = "_getResultTypes"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._jobId = None
+                    return
+            Holder.__name__ = "getResultTypes_Holder"
+            self.pyclass = Holder
+
+    class getResultTypesResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getResultTypesResponse"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.getResultTypesResponse_Dec.schema
+            TClist = [GTD("http://soap.jdispatcher.ebi.ac.uk","wsResultTypes",lazy=False)(pname="resultTypes", aname="_resultTypes", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getResultTypesResponse")
+            kw["aname"] = "_getResultTypesResponse"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._resultTypes = None
+                    return
+            Holder.__name__ = "getResultTypesResponse_Holder"
+            self.pyclass = Holder
+
+    class getResult_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getResult"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.getResult_Dec.schema
+            TClist = [ZSI.TC.String(pname="jobId", aname="_jobId", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="type", aname="_type", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://soap.jdispatcher.ebi.ac.uk","wsRawOutputParameters",lazy=False)(pname="parameters", aname="_parameters", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getResult")
+            kw["aname"] = "_getResult"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._jobId = None
+                    self._type = None
+                    self._parameters = None
+                    return
+            Holder.__name__ = "getResult_Holder"
+            self.pyclass = Holder
+
+    class getResultResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getResultResponse"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.getResultResponse_Dec.schema
+            TClist = [ZSI.TC.Base64String(pname="output", aname="_output", minOccurs=1, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getResultResponse")
+            kw["aname"] = "_getResultResponse"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._output = None
+                    return
+            Holder.__name__ = "getResultResponse_Holder"
+            self.pyclass = Holder
+
+    class getParameterDetails_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getParameterDetails"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.getParameterDetails_Dec.schema
+            TClist = [ZSI.TC.String(pname="parameterId", aname="_parameterId", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getParameterDetails")
+            kw["aname"] = "_getParameterDetails"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._parameterId = None
+                    return
+            Holder.__name__ = "getParameterDetails_Holder"
+            self.pyclass = Holder
+
+    class getParameterDetailsResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getParameterDetailsResponse"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.getParameterDetailsResponse_Dec.schema
+            TClist = [GTD("http://soap.jdispatcher.ebi.ac.uk","wsParameterDetails",lazy=False)(pname="parameterDetails", aname="_parameterDetails", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getParameterDetailsResponse")
+            kw["aname"] = "_getParameterDetailsResponse"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._parameterDetails = None
+                    return
+            Holder.__name__ = "getParameterDetailsResponse_Holder"
+            self.pyclass = Holder
+
+    class getParameters_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getParameters"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.getParameters_Dec.schema
+            TClist = []
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getParameters")
+            kw["aname"] = "_getParameters"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    return
+            Holder.__name__ = "getParameters_Holder"
+            self.pyclass = Holder
+
+    class getParametersResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getParametersResponse"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.getParametersResponse_Dec.schema
+            TClist = [GTD("http://soap.jdispatcher.ebi.ac.uk","wsParameters",lazy=False)(pname="parameters", aname="_parameters", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getParametersResponse")
+            kw["aname"] = "_getParametersResponse"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._parameters = None
+                    return
+            Holder.__name__ = "getParametersResponse_Holder"
+            self.pyclass = Holder
+
+# end class ns0 (tns: http://soap.jdispatcher.ebi.ac.uk)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/clustalw2/clustalw2_services_types.py~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,512 @@
+################################################## 
+# clustalw2_services_types.py 
+# generated by ZSI.generate.wsdl2python
+##################################################
+
+
+import ZSI
+import ZSI.TCcompound
+from ZSI.schema import LocalElementDeclaration, ElementDeclaration, TypeDefinition, GTD, GED
+
+##############################
+# targetNamespace
+# http://soap.jdispatcher.ebi.ac.uk
+##############################
+
+class ns0:
+    targetNamespace = "http://soap.jdispatcher.ebi.ac.uk"
+
+    class InputParameters_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "InputParameters")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.InputParameters_Def.schema
+            TClist = [ZSI.TC.String(pname="alignment", aname="_alignment", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="type", aname="_type", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="ktup", aname="_ktup", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="window", aname="_window", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="score", aname="_score", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="topdiags", aname="_topdiags", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="pairgap", aname="_pairgap", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="pwmatrix", aname="_pwmatrix", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="pwdnamatrix", aname="_pwdnamatrix", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="pwgapopen", aname="_pwgapopen", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.FPfloat(pname="pwgapext", aname="_pwgapext", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="matrix", aname="_matrix", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="dnamatrix", aname="_dnamatrix", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="gapopen", aname="_gapopen", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.Boolean(pname="noendgaps", aname="_noendgaps", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.FPfloat(pname="gapext", aname="_gapext", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="gapdist", aname="_gapdist", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="iteration", aname="_iteration", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="numiter", aname="_numiter", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="clustering", aname="_clustering", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="output", aname="_output", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="outorder", aname="_outorder", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="sequence", aname="_sequence", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._alignment = None
+                    self._type = None
+                    self._ktup = None
+                    self._window = None
+                    self._score = None
+                    self._topdiags = None
+                    self._pairgap = None
+                    self._pwmatrix = None
+                    self._pwdnamatrix = None
+                    self._pwgapopen = None
+                    self._pwgapext = None
+                    self._matrix = None
+                    self._dnamatrix = None
+                    self._gapopen = None
+                    self._noendgaps = None
+                    self._gapext = None
+                    self._gapdist = None
+                    self._iteration = None
+                    self._numiter = None
+                    self._clustering = None
+                    self._output = None
+                    self._outorder = None
+                    self._sequence = None
+                    return
+            Holder.__name__ = "InputParameters_Holder"
+            self.pyclass = Holder
+
+    class ArrayOfString_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "ArrayOfString")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.ArrayOfString_Def.schema
+            TClist = [ZSI.TC.String(pname="string", aname="_string", minOccurs=0, maxOccurs="unbounded", nillable=True, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._string = []
+                    return
+            Holder.__name__ = "ArrayOfString_Holder"
+            self.pyclass = Holder
+
+    class wsResultTypes_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "wsResultTypes")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.wsResultTypes_Def.schema
+            TClist = [GTD("http://soap.jdispatcher.ebi.ac.uk","wsResultType",lazy=False)(pname="type", aname="_type", minOccurs=0, maxOccurs="unbounded", nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._type = []
+                    return
+            Holder.__name__ = "wsResultTypes_Holder"
+            self.pyclass = Holder
+
+    class wsResultType_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "wsResultType")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.wsResultType_Def.schema
+            TClist = [ZSI.TC.String(pname="description", aname="_description", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="fileSuffix", aname="_fileSuffix", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="identifier", aname="_identifier", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="label", aname="_label", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="mediaType", aname="_mediaType", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._description = None
+                    self._fileSuffix = None
+                    self._identifier = None
+                    self._label = None
+                    self._mediaType = None
+                    return
+            Holder.__name__ = "wsResultType_Holder"
+            self.pyclass = Holder
+
+    class wsRawOutputParameters_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "wsRawOutputParameters")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.wsRawOutputParameters_Def.schema
+            TClist = [GTD("http://soap.jdispatcher.ebi.ac.uk","wsRawOutputParameter",lazy=False)(pname="parameter", aname="_parameter", minOccurs=1, maxOccurs="unbounded", nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._parameter = []
+                    return
+            Holder.__name__ = "wsRawOutputParameters_Holder"
+            self.pyclass = Holder
+
+    class wsRawOutputParameter_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "wsRawOutputParameter")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.wsRawOutputParameter_Def.schema
+            TClist = [ZSI.TC.String(pname="name", aname="_name", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://soap.jdispatcher.ebi.ac.uk","ArrayOfString",lazy=False)(pname="value", aname="_value", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._name = None
+                    self._value = None
+                    return
+            Holder.__name__ = "wsRawOutputParameter_Holder"
+            self.pyclass = Holder
+
+    class wsParameters_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "wsParameters")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.wsParameters_Def.schema
+            TClist = [ZSI.TC.String(pname="id", aname="_id", minOccurs=0, maxOccurs="unbounded", nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._id = []
+                    return
+            Holder.__name__ = "wsParameters_Holder"
+            self.pyclass = Holder
+
+    class wsParameterDetails_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "wsParameterDetails")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.wsParameterDetails_Def.schema
+            TClist = [ZSI.TC.String(pname="name", aname="_name", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="description", aname="_description", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="type", aname="_type", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://soap.jdispatcher.ebi.ac.uk","wsParameterValues",lazy=False)(pname="values", aname="_values", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._name = None
+                    self._description = None
+                    self._type = None
+                    self._values = None
+                    return
+            Holder.__name__ = "wsParameterDetails_Holder"
+            self.pyclass = Holder
+
+    class wsParameterValues_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "wsParameterValues")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.wsParameterValues_Def.schema
+            TClist = [GTD("http://soap.jdispatcher.ebi.ac.uk","wsParameterValue",lazy=False)(pname="value", aname="_value", minOccurs=0, maxOccurs="unbounded", nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._value = []
+                    return
+            Holder.__name__ = "wsParameterValues_Holder"
+            self.pyclass = Holder
+
+    class wsParameterValue_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "wsParameterValue")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.wsParameterValue_Def.schema
+            TClist = [ZSI.TC.String(pname="label", aname="_label", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="value", aname="_value", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.Boolean(pname="defaultValue", aname="_defaultValue", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://soap.jdispatcher.ebi.ac.uk","wsProperties",lazy=False)(pname="properties", aname="_properties", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._label = None
+                    self._value = None
+                    self._defaultValue = None
+                    self._properties = None
+                    return
+            Holder.__name__ = "wsParameterValue_Holder"
+            self.pyclass = Holder
+
+    class wsProperties_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "wsProperties")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.wsProperties_Def.schema
+            TClist = [GTD("http://soap.jdispatcher.ebi.ac.uk","wsProperty",lazy=False)(pname="property", aname="_property", minOccurs=0, maxOccurs="unbounded", nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._property = []
+                    return
+            Holder.__name__ = "wsProperties_Holder"
+            self.pyclass = Holder
+
+    class wsProperty_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "wsProperty")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.wsProperty_Def.schema
+            TClist = [ZSI.TC.String(pname="key", aname="_key", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="value", aname="_value", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._key = None
+                    self._value = None
+                    return
+            Holder.__name__ = "wsProperty_Holder"
+            self.pyclass = Holder
+
+    class run_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "run"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.run_Dec.schema
+            TClist = [ZSI.TC.String(pname="email", aname="_email", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="title", aname="_title", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), GTD("http://soap.jdispatcher.ebi.ac.uk","InputParameters",lazy=False)(pname="parameters", aname="_parameters", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","run")
+            kw["aname"] = "_run"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._email = None
+                    self._title = None
+                    self._parameters = None
+                    return
+            Holder.__name__ = "run_Holder"
+            self.pyclass = Holder
+
+    class runResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "runResponse"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.runResponse_Dec.schema
+            TClist = [ZSI.TC.String(pname="jobId", aname="_jobId", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","runResponse")
+            kw["aname"] = "_runResponse"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._jobId = None
+                    return
+            Holder.__name__ = "runResponse_Holder"
+            self.pyclass = Holder
+
+    class getStatus_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getStatus"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.getStatus_Dec.schema
+            TClist = [ZSI.TC.String(pname="jobId", aname="_jobId", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getStatus")
+            kw["aname"] = "_getStatus"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._jobId = None
+                    return
+            Holder.__name__ = "getStatus_Holder"
+            self.pyclass = Holder
+
+    class getStatusResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getStatusResponse"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.getStatusResponse_Dec.schema
+            TClist = [ZSI.TC.String(pname="status", aname="_status", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getStatusResponse")
+            kw["aname"] = "_getStatusResponse"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._status = None
+                    return
+            Holder.__name__ = "getStatusResponse_Holder"
+            self.pyclass = Holder
+
+    class getResultTypes_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getResultTypes"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.getResultTypes_Dec.schema
+            TClist = [ZSI.TC.String(pname="jobId", aname="_jobId", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getResultTypes")
+            kw["aname"] = "_getResultTypes"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._jobId = None
+                    return
+            Holder.__name__ = "getResultTypes_Holder"
+            self.pyclass = Holder
+
+    class getResultTypesResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getResultTypesResponse"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.getResultTypesResponse_Dec.schema
+            TClist = [GTD("http://soap.jdispatcher.ebi.ac.uk","wsResultTypes",lazy=False)(pname="resultTypes", aname="_resultTypes", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getResultTypesResponse")
+            kw["aname"] = "_getResultTypesResponse"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._resultTypes = None
+                    return
+            Holder.__name__ = "getResultTypesResponse_Holder"
+            self.pyclass = Holder
+
+    class getResult_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getResult"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.getResult_Dec.schema
+            TClist = [ZSI.TC.String(pname="jobId", aname="_jobId", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="type", aname="_type", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://soap.jdispatcher.ebi.ac.uk","wsRawOutputParameters",lazy=False)(pname="parameters", aname="_parameters", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getResult")
+            kw["aname"] = "_getResult"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._jobId = None
+                    self._type = None
+                    self._parameters = None
+                    return
+            Holder.__name__ = "getResult_Holder"
+            self.pyclass = Holder
+
+    class getResultResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getResultResponse"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.getResultResponse_Dec.schema
+            TClist = [ZSI.TC.Base64String(pname="output", aname="_output", minOccurs=1, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getResultResponse")
+            kw["aname"] = "_getResultResponse"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._output = None
+                    return
+            Holder.__name__ = "getResultResponse_Holder"
+            self.pyclass = Holder
+
+    class getParameterDetails_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getParameterDetails"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.getParameterDetails_Dec.schema
+            TClist = [ZSI.TC.String(pname="parameterId", aname="_parameterId", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getParameterDetails")
+            kw["aname"] = "_getParameterDetails"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._parameterId = None
+                    return
+            Holder.__name__ = "getParameterDetails_Holder"
+            self.pyclass = Holder
+
+    class getParameterDetailsResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getParameterDetailsResponse"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.getParameterDetailsResponse_Dec.schema
+            TClist = [GTD("http://soap.jdispatcher.ebi.ac.uk","wsParameterDetails",lazy=False)(pname="parameterDetails", aname="_parameterDetails", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getParameterDetailsResponse")
+            kw["aname"] = "_getParameterDetailsResponse"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._parameterDetails = None
+                    return
+            Holder.__name__ = "getParameterDetailsResponse_Holder"
+            self.pyclass = Holder
+
+    class getParameters_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getParameters"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.getParameters_Dec.schema
+            TClist = []
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getParameters")
+            kw["aname"] = "_getParameters"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    return
+            Holder.__name__ = "getParameters_Holder"
+            self.pyclass = Holder
+
+    class getParametersResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getParametersResponse"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.getParametersResponse_Dec.schema
+            TClist = [GTD("http://soap.jdispatcher.ebi.ac.uk","wsParameters",lazy=False)(pname="parameters", aname="_parameters", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getParametersResponse")
+            kw["aname"] = "_getParametersResponse"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._parameters = None
+                    return
+            Holder.__name__ = "getParametersResponse_Holder"
+            self.pyclass = Holder
+
+# end class ns0 (tns: http://soap.jdispatcher.ebi.ac.uk)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/clustalw2/clustalw2_types.py	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,514 @@
+##################################################
+# file: clustalw2_types.py
+#
+# schema types generated by "ZSI.generate.wsdl2python.WriteServiceModule"
+#    /home/alok/galaxy-central/tools/WebServiceToolWorkflow_REST_SOAP/WebServiceTool_input_method_m.py /home/alok/galaxy-central/database/files/000/dataset_21.dat http://www.ebi.ac.uk/Tools/services/soap/clustalw2?wsdl getParameters /home/alok/galaxy-central/database/files/000/dataset_30.dat
+#
+##################################################
+
+import ZSI
+import ZSI.TCcompound
+from ZSI.schema import LocalElementDeclaration, ElementDeclaration, TypeDefinition, GTD, GED
+
+##############################
+# targetNamespace
+# http://soap.jdispatcher.ebi.ac.uk
+##############################
+
+class ns0:
+    targetNamespace = "http://soap.jdispatcher.ebi.ac.uk"
+
+    class InputParameters_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "InputParameters")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.InputParameters_Def.schema
+            TClist = [ZSI.TC.String(pname="alignment", aname="_alignment", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="type", aname="_type", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="ktup", aname="_ktup", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="window", aname="_window", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="score", aname="_score", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="topdiags", aname="_topdiags", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="pairgap", aname="_pairgap", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="pwmatrix", aname="_pwmatrix", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="pwdnamatrix", aname="_pwdnamatrix", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="pwgapopen", aname="_pwgapopen", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.FPfloat(pname="pwgapext", aname="_pwgapext", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="matrix", aname="_matrix", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="dnamatrix", aname="_dnamatrix", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="gapopen", aname="_gapopen", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.Boolean(pname="noendgaps", aname="_noendgaps", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.FPfloat(pname="gapext", aname="_gapext", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="gapdist", aname="_gapdist", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="iteration", aname="_iteration", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="numiter", aname="_numiter", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="clustering", aname="_clustering", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="output", aname="_output", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="outorder", aname="_outorder", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="sequence", aname="_sequence", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._alignment = None
+                    self._type = None
+                    self._ktup = None
+                    self._window = None
+                    self._score = None
+                    self._topdiags = None
+                    self._pairgap = None
+                    self._pwmatrix = None
+                    self._pwdnamatrix = None
+                    self._pwgapopen = None
+                    self._pwgapext = None
+                    self._matrix = None
+                    self._dnamatrix = None
+                    self._gapopen = None
+                    self._noendgaps = None
+                    self._gapext = None
+                    self._gapdist = None
+                    self._iteration = None
+                    self._numiter = None
+                    self._clustering = None
+                    self._output = None
+                    self._outorder = None
+                    self._sequence = None
+                    return
+            Holder.__name__ = "InputParameters_Holder"
+            self.pyclass = Holder
+
+    class ArrayOfString_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "ArrayOfString")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.ArrayOfString_Def.schema
+            TClist = [ZSI.TC.String(pname="string", aname="_string", minOccurs=0, maxOccurs="unbounded", nillable=True, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._string = []
+                    return
+            Holder.__name__ = "ArrayOfString_Holder"
+            self.pyclass = Holder
+
+    class wsResultTypes_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "wsResultTypes")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.wsResultTypes_Def.schema
+            TClist = [GTD("http://soap.jdispatcher.ebi.ac.uk","wsResultType",lazy=False)(pname="type", aname="_type", minOccurs=0, maxOccurs="unbounded", nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._type = []
+                    return
+            Holder.__name__ = "wsResultTypes_Holder"
+            self.pyclass = Holder
+
+    class wsResultType_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "wsResultType")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.wsResultType_Def.schema
+            TClist = [ZSI.TC.String(pname="description", aname="_description", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="fileSuffix", aname="_fileSuffix", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="identifier", aname="_identifier", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="label", aname="_label", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="mediaType", aname="_mediaType", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._description = None
+                    self._fileSuffix = None
+                    self._identifier = None
+                    self._label = None
+                    self._mediaType = None
+                    return
+            Holder.__name__ = "wsResultType_Holder"
+            self.pyclass = Holder
+
+    class wsRawOutputParameters_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "wsRawOutputParameters")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.wsRawOutputParameters_Def.schema
+            TClist = [GTD("http://soap.jdispatcher.ebi.ac.uk","wsRawOutputParameter",lazy=False)(pname="parameter", aname="_parameter", minOccurs=1, maxOccurs="unbounded", nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._parameter = []
+                    return
+            Holder.__name__ = "wsRawOutputParameters_Holder"
+            self.pyclass = Holder
+
+    class wsRawOutputParameter_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "wsRawOutputParameter")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.wsRawOutputParameter_Def.schema
+            TClist = [ZSI.TC.String(pname="name", aname="_name", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://soap.jdispatcher.ebi.ac.uk","ArrayOfString",lazy=False)(pname="value", aname="_value", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._name = None
+                    self._value = None
+                    return
+            Holder.__name__ = "wsRawOutputParameter_Holder"
+            self.pyclass = Holder
+
+    class wsParameters_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "wsParameters")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.wsParameters_Def.schema
+            TClist = [ZSI.TC.String(pname="id", aname="_id", minOccurs=0, maxOccurs="unbounded", nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._id = []
+                    return
+            Holder.__name__ = "wsParameters_Holder"
+            self.pyclass = Holder
+
+    class wsParameterDetails_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "wsParameterDetails")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.wsParameterDetails_Def.schema
+            TClist = [ZSI.TC.String(pname="name", aname="_name", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="description", aname="_description", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="type", aname="_type", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://soap.jdispatcher.ebi.ac.uk","wsParameterValues",lazy=False)(pname="values", aname="_values", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._name = None
+                    self._description = None
+                    self._type = None
+                    self._values = None
+                    return
+            Holder.__name__ = "wsParameterDetails_Holder"
+            self.pyclass = Holder
+
+    class wsParameterValues_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "wsParameterValues")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.wsParameterValues_Def.schema
+            TClist = [GTD("http://soap.jdispatcher.ebi.ac.uk","wsParameterValue",lazy=False)(pname="value", aname="_value", minOccurs=0, maxOccurs="unbounded", nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._value = []
+                    return
+            Holder.__name__ = "wsParameterValues_Holder"
+            self.pyclass = Holder
+
+    class wsParameterValue_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "wsParameterValue")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.wsParameterValue_Def.schema
+            TClist = [ZSI.TC.String(pname="label", aname="_label", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="value", aname="_value", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.Boolean(pname="defaultValue", aname="_defaultValue", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://soap.jdispatcher.ebi.ac.uk","wsProperties",lazy=False)(pname="properties", aname="_properties", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._label = None
+                    self._value = None
+                    self._defaultValue = None
+                    self._properties = None
+                    return
+            Holder.__name__ = "wsParameterValue_Holder"
+            self.pyclass = Holder
+
+    class wsProperties_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "wsProperties")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.wsProperties_Def.schema
+            TClist = [GTD("http://soap.jdispatcher.ebi.ac.uk","wsProperty",lazy=False)(pname="property", aname="_property", minOccurs=0, maxOccurs="unbounded", nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._property = []
+                    return
+            Holder.__name__ = "wsProperties_Holder"
+            self.pyclass = Holder
+
+    class wsProperty_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "wsProperty")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.wsProperty_Def.schema
+            TClist = [ZSI.TC.String(pname="key", aname="_key", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="value", aname="_value", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._key = None
+                    self._value = None
+                    return
+            Holder.__name__ = "wsProperty_Holder"
+            self.pyclass = Holder
+
+    class run_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "run"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.run_Dec.schema
+            TClist = [ZSI.TC.String(pname="email", aname="_email", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="title", aname="_title", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), GTD("http://soap.jdispatcher.ebi.ac.uk","InputParameters",lazy=False)(pname="parameters", aname="_parameters", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","run")
+            kw["aname"] = "_run"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._email = None
+                    self._title = None
+                    self._parameters = None
+                    return
+            Holder.__name__ = "run_Holder"
+            self.pyclass = Holder
+
+    class runResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "runResponse"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.runResponse_Dec.schema
+            TClist = [ZSI.TC.String(pname="jobId", aname="_jobId", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","runResponse")
+            kw["aname"] = "_runResponse"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._jobId = None
+                    return
+            Holder.__name__ = "runResponse_Holder"
+            self.pyclass = Holder
+
+    class getStatus_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getStatus"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.getStatus_Dec.schema
+            TClist = [ZSI.TC.String(pname="jobId", aname="_jobId", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getStatus")
+            kw["aname"] = "_getStatus"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._jobId = None
+                    return
+            Holder.__name__ = "getStatus_Holder"
+            self.pyclass = Holder
+
+    class getStatusResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getStatusResponse"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.getStatusResponse_Dec.schema
+            TClist = [ZSI.TC.String(pname="status", aname="_status", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getStatusResponse")
+            kw["aname"] = "_getStatusResponse"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._status = None
+                    return
+            Holder.__name__ = "getStatusResponse_Holder"
+            self.pyclass = Holder
+
+    class getResultTypes_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getResultTypes"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.getResultTypes_Dec.schema
+            TClist = [ZSI.TC.String(pname="jobId", aname="_jobId", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getResultTypes")
+            kw["aname"] = "_getResultTypes"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._jobId = None
+                    return
+            Holder.__name__ = "getResultTypes_Holder"
+            self.pyclass = Holder
+
+    class getResultTypesResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getResultTypesResponse"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.getResultTypesResponse_Dec.schema
+            TClist = [GTD("http://soap.jdispatcher.ebi.ac.uk","wsResultTypes",lazy=False)(pname="resultTypes", aname="_resultTypes", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getResultTypesResponse")
+            kw["aname"] = "_getResultTypesResponse"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._resultTypes = None
+                    return
+            Holder.__name__ = "getResultTypesResponse_Holder"
+            self.pyclass = Holder
+
+    class getResult_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getResult"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.getResult_Dec.schema
+            TClist = [ZSI.TC.String(pname="jobId", aname="_jobId", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="type", aname="_type", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://soap.jdispatcher.ebi.ac.uk","wsRawOutputParameters",lazy=False)(pname="parameters", aname="_parameters", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getResult")
+            kw["aname"] = "_getResult"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._jobId = None
+                    self._type = None
+                    self._parameters = None
+                    return
+            Holder.__name__ = "getResult_Holder"
+            self.pyclass = Holder
+
+    class getResultResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getResultResponse"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.getResultResponse_Dec.schema
+            TClist = [ZSI.TC.Base64String(pname="output", aname="_output", minOccurs=1, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getResultResponse")
+            kw["aname"] = "_getResultResponse"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._output = None
+                    return
+            Holder.__name__ = "getResultResponse_Holder"
+            self.pyclass = Holder
+
+    class getParameterDetails_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getParameterDetails"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.getParameterDetails_Dec.schema
+            TClist = [ZSI.TC.String(pname="parameterId", aname="_parameterId", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getParameterDetails")
+            kw["aname"] = "_getParameterDetails"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._parameterId = None
+                    return
+            Holder.__name__ = "getParameterDetails_Holder"
+            self.pyclass = Holder
+
+    class getParameterDetailsResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getParameterDetailsResponse"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.getParameterDetailsResponse_Dec.schema
+            TClist = [GTD("http://soap.jdispatcher.ebi.ac.uk","wsParameterDetails",lazy=False)(pname="parameterDetails", aname="_parameterDetails", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getParameterDetailsResponse")
+            kw["aname"] = "_getParameterDetailsResponse"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._parameterDetails = None
+                    return
+            Holder.__name__ = "getParameterDetailsResponse_Holder"
+            self.pyclass = Holder
+
+    class getParameters_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getParameters"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.getParameters_Dec.schema
+            TClist = []
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getParameters")
+            kw["aname"] = "_getParameters"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    return
+            Holder.__name__ = "getParameters_Holder"
+            self.pyclass = Holder
+
+    class getParametersResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getParametersResponse"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.getParametersResponse_Dec.schema
+            TClist = [GTD("http://soap.jdispatcher.ebi.ac.uk","wsParameters",lazy=False)(pname="parameters", aname="_parameters", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getParametersResponse")
+            kw["aname"] = "_getParametersResponse"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._parameters = None
+                    return
+            Holder.__name__ = "getParametersResponse_Holder"
+            self.pyclass = Holder
+
+# end class ns0 (tns: http://soap.jdispatcher.ebi.ac.uk)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/creatorEngineComplex.py	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,308 @@
+'''
+@author  Rui Wang
+@see     LICENSE (MIT style license file).
+'''
+
+from types import *
+import copy
+import ZSI.TC
+from introspect import *
+from msHandler import *
+from paramConverter import *
+
+__author__="Rui Wang"
+
+class ClientCreator(Introspector):
+    """all method to introspect  module 
+    to return operations&inputs 
+    and to invoke operation"""
+    
+   
+    
+    def path2Ops(self, modulePath ):
+        '''given module(the service python file generated by wsdl2py) path, 
+        return dictionary of operation name: object (functions of class-**SOAP)'''
+        allclass=self.path2Class(modulePath)
+        #locator=''
+        opclass=''
+        for c in allclass.keys():
+            if c[len(c)-4:len(c)]=='SOAP':
+                opclass=c
+            
+        
+        #class object of which holds all ops
+        opclassOb=allclass[opclass]
+        #list of names of all ops
+        allattr=dir(opclassOb)
+        #print allattr
+        allops={}        
+        for opt in allattr:
+            #every operation object
+            optemp=getattr(opclassOb, opt)
+            #whether it's def and not private such as __init__
+            if callable(optemp) and optemp.__name__.startswith('__')==False:
+                allops[optemp.__name__]=optemp
+                
+        return allops
+        
+    def path2messageClassOb(self, modulePath):
+        '''given module path,
+        return all message class object'''
+        
+        
+        allclassOb=self.path2Class(modulePath)
+            
+        #find all message classes:  has 'typecode', type(obtemp)==ClassType 
+        allmsOb=[]        
+        for c in allclassOb.values():
+            if hasattr(c,'typecode'):
+                allmsOb.append(c)                
+        return allmsOb
+    
+    def opname2inputClassOb(self, opName, modulePath):
+        '''given operation name, module path, 
+        return input class object'''
+        
+        allopNames=self.path2Ops(modulePath)
+        if opName not in allopNames:
+            raise NameError, 'Warning: No operation has the given name!!'   
+            
+        else:
+            #find all message classes:  has 'typecode', type(obtemp)==ClassType             
+            allmsOb=self.path2messageClassOb(modulePath)
+            #find input message class of given operation: typecode has pname=operation name
+            for ms in allmsOb:
+                pnameOb=getattr(getattr(ms, 'typecode'), 'pname')
+                if opName==str(pnameOb):
+                    inputClass=ms
+                    break
+    
+            return inputClass
+    
+    def opname2outputClassOb(self, opName, modulePath):
+        '''given operation name, module path, 
+        return output class object'''
+        
+        allopNames=self.path2Ops(modulePath)
+        if opName not in allopNames:
+            raise NameError, 'Warning: No operation has the given name!!'
+            
+        else:
+            #find all message classes:  has 'typecode', type(obtemp)==ClassType             
+            allmsOb=self.path2messageClassOb(modulePath)
+        
+            #find output message class of given operation: typecode has pname=operation name+'Response'
+            for ms in allmsOb:
+                pnameOb=getattr(getattr(ms, 'typecode'), 'pname')
+                if opName+'Response'==str(pnameOb):
+                    outputClass=ms
+                    break
+    
+            return outputClass
+    
+    def opname2outputs(self, opName, modulePath):
+        '''given operation name, module path,
+        return a list of output nemes of the operation in the module'''
+        
+        allopNames=self.path2Ops(modulePath)
+        if opName not in allopNames:
+            raise NameError, 'Warning: No operation has the given name!!'
+            
+        else:            
+            #get input class object
+            outputClass=self.opname2outputClassOb(opName, modulePath)    
+            #find input parameters from message class : instrospect an instace  
+            msinstance=outputClass()
+
+            parameters={}
+            mshandler=MessageHandler()
+            parameters=mshandler.msParser(msinstance)
+            
+            return parameters   
+    
+    def opname2inputs(self, opName, modulePath):
+        '''given operation name, module path, 
+        return a list of all inputs name of the operation in the given module'''
+        
+        allopNames=self.path2Ops(modulePath)
+        if opName not in allopNames:
+            raise NameError, 'Warning: No operation has the given name!!'
+        else:            
+            #get input class object
+            inputClass=self.opname2inputClassOb(opName, modulePath)   
+            
+            parameters={}
+            mshandler=MessageHandler()
+            parameters=mshandler.msParser(inputClass())       #mshandler.flatten(inputClass())
+            
+            print 'The parametrrs after flattening : ',parameters
+            
+            ofwhat=getattr(getattr(inputClass, 'typecode'), 'ofwhat')
+            paramtypes={}
+            i=0
+            for k in parameters.keys():
+                paramtypes[k]=str(ofwhat[i])
+                i=i+1
+            for l in paramtypes.keys():
+                print "paramters",l
+                origPar=paramtypes[l]
+                copyPar=paramtypes[l]
+                #print copyPar#[-23:-1]
+                newPar=origPar.replace(copyPar[-23:-1],'').strip('<>')
+                paramtypes[l]=newPar
+            
+                                 
+                
+#            print ofwhat
+##            for p in ofwhat:
+##                if isinstance(p, ZSI.TC.ComplexType):
+##                    print 'complextype', p
+##                elif isinstance(p, ZSI.TC.Array) :
+##                    print 'arraytype', p
+##                elif isinstance(p,ZSI.TC.String):
+##                    print 'String',p
+##                elif isinstance(p,ZSI.TC.Integer):
+##                    print 'Integer',p
+##                else:
+##                    parameters[getattr(p, 'aname')]=None
+##         
+            #print parameters
+            return parameters
+            #return paramtypes
+            #find input parameters from message class : instrospect an instace  
+#            msinstance=inputClass()u can
+##            print dir(msinstance)
+#            parameters=[]
+#            for i in dir(msinstance):
+##                print i, type(getattr(msinstance, i))
+#                if (type(getattr(msinstance, i)) is NoneType) and i!='__doc__':
+#                    parameters.append(i)
+##            print parameters
+#            return parameters    
+
+    def path2service(self, modulePath):
+        '''given module path,
+        return return service instance
+        instead of: dbfetchSrv = WSDBFetchServerLegacyServiceLocator().getWSDBFetchServerLegacy()'''
+        
+        allclass=self.path2Class(modulePath)
+               
+        locator=''
+        for c in allclass.keys():
+            if c[len(c)-7:len(c)]=='Locator':
+                locator=c
+            
+        locatorClassOb=allclass[locator]
+        for obname in dir(locatorClassOb):
+            obtemp=getattr(locatorClassOb, obname)
+            if (type(obtemp) is MethodType)and not obtemp.__name__.endswith('Address'):
+                serverMethod=obtemp
+                break
+        # Create a service interface
+        service=serverMethod(locatorClassOb())
+        return service
+    
+    def invokeOp(self, opName, modulePath,  inputs):
+        allopNames=self.path2Ops(modulePath)
+        if opName not in allopNames:
+            raise NameError, 'Warning: No operation has the given name!!'
+        else:
+            # Create a service interface
+            serviceInstance=self.path2service(modulePath)
+            
+            #get input class object of given opName
+            inputClass=self.opname2inputClassOb(opName, modulePath)             
+                                            
+            mshandler=MessageHandler()
+            if len(inputs) != 0:
+                inputClassInstance=mshandler.msAssign(inputClass(), inputs)
+            else:
+                inputClassInstance= inputClass()
+            #get input name list of given opName
+#            inputNames=self.opname2inputs(opName, modulePath)
+            
+            #set value for inputs
+            #request._query = 'UNIPROT:ADH1A_HUMAN'
+            #request._format = 'fasta'
+#            #request._style = 'raw'
+#            if inputNames!= None:
+#                for inName in inputs.keys():
+#                    if inName not in inputNames:
+#                        raise TypeError, 'the input name is wrong!!!!'
+#                        #return None
+#                    else:
+#                        setattr(inputClassInstance, inName, inputs[inName])
+            
+            
+            #get dictionary of operation name:object(def)
+            opDict=self.path2Ops(modulePath)
+            
+            #get operation object(def)
+            opOb=opDict[opName]
+            
+            #invoke operation: response = dbfetchSrv.fetchData(request)
+            responseInstance=opOb(serviceInstance, inputClassInstance)
+            
+            #get output from outputmessage: result = response._fetchDataReturn
+            resultDict={}
+            resultDict=mshandler.flatten(responseInstance)   #mshandler.msParser(responseInstance)
+            flat =  nested2flatDict(resultDict)
+#            outputNames=self.opname2outputs(opName, modulePath)
+#            for out in outputNames:
+#                resultDict[out]=getattr(responseInstance, out)
+
+            #return flat#resultDict
+            return responseInstance
+
+#testing this module
+if __name__=="__main__":
+    test=ClientCreator()
+    
+    #picr web service
+#    print 'all operations of picr: \n', test.path2Ops('picr.AccessionMapperService_client').keys()
+#    print 'inputs of picr \n', test.opname2inputs('getUPIForSequence', 'picr.AccessionMapperService_client')
+#    print 'outputs of picr \n', test.opname2outputs('getUPIForSequence', 'picr.AccessionMapperService_client')
+
+
+    seq = """>Q8E5Q5_STRA3
+MKLSKRYRFWQKVIKALGVLALIATLVLVVYLYKLGILNDSNELKDLVHKYEFWGPMIFI
+VAQIVQIVFPVIPGGVTTVAGFLIFGPTLGFIYNYIGIIIGSVILFWLVKFYGRKFVLLF
+MDQKTFDKYESKLETSGYEKFFIFCMASPISPADIMVMITGLSNMSIKRFVTIIMITKPI
+SIIGYSYLWIYGGDILKNFLN"""
+#    inp = {'_content': [{'_type': 'sequence', '_content': 'MKLSKRYRFWQKVIKALGVLALIATLVLVVYLYKLGILNDSNELKDLVHKYEFWGPMIFI'}, {'_type': 'sequence', '_content': 'MDQKTFDKYESKLETSGYEKFFIFCMASPISPADIMVMITGLSNMSIKRFVTIIMITKPI'}], '_params': {'_database': 'swissprot', '_email': 'chaitanya@gmail.com', '_program': 'blastp'}}
+    inp = {'_parameters': {'_stype': 'protein', '_sequence': 'MKLSKRYRFWQKVIKALGVLALIATLVLVVYLYKLGILNDSNELKDLVHKYEFWGPMIFI','_database':{ '_string' : ['uniprotkb','uniprotkb_swissprot']}, '_program': 'blastp'}, '_email': 'chaitanya@gmail.com'}
+    inputDict={'_params':{ '_program' : 'blastp', '_database' :'swissprot', '_email' :'riververy@yahoo.com', '_async': 1}, '_content':[{'_type':'sequence', '_content':'MKLSKRYRFWQKVIKALGVLALIATLVLVVYLYKLGILNDSNELKDLVHKYEFWGPMIFI'}]}
+#    inputDict = {}
+    inputs ={'_jobId':'wublast-S20110517-051830-0552-49531676-oy','_type':'out'}
+    inp = {}
+    #print test.invokeOp('run', 'wublast.wublast_services', inp)
+    print test.invokeOp('getParameters', 'wublast.wublast_services', inp)
+    #print test.opname2inputs('getResult','wublast.wublast_services')
+#    print 'all operations: \n', test.path2Ops('blast.WSWUBlast_client').keys()
+#    print 'inputs of runWUBlast \n', test.opname2inputs('runWUBlast', 'blast.WSWUBlast_client')
+#    print 'outputs of runWUBlast \n', test.opname2outputs('runWUBlast', 'blast.WSWUBlast_client')
+
+
+#    modul=test.path2Module('ebiDbfetch.WSDBFetchServerLegacyService_services')
+#    print dir(modul)
+#    print 'all operations: \n', test.path2Ops('ebiDbfetch.WSDBFetchServerLegacyService_services').keys()
+#    print 'inputs of fetchData:\n', test.opname2inputs('fetchData', 'ebiDbfetch.WSDBFetchServerLegacyService_services')
+#    print 'all classes:\n', test.path2Class('ebiDbfetch.WSDBFetchServerLegacyService_services').keys()
+#    print 'service instance ob:\n', test.path2service('ebiDbfetch.WSDBFetchServerLegacyService_services')
+#    print 'outputs of fetchData:\n', test.opname2outputs('fetchData', 'ebiDbfetch.WSDBFetchServerLegacyService_services')
+#    inputDict={'_format':'fasta', '_query':'UNIPROT:ADH1A_HUMAN', '_style':'raw'}
+#    print test.invokeOp('fetchData', 'ebiDbfetch.WSDBFetchServerLegacyService_services', inputDict).values()[0]
+    
+#    print 'all operations: \n', test.path2Ops('dbfetch.WSDBFetchServerLegacyService_services').keys()
+#    print 'inputs of fetchData:\n', test.opname2inputs('fetchData', 'dbfetch.WSDBFetchServerLegacyService_services')
+#    inputDict={'_format':'fasta', '_query':'UNIPROT:ADH1A_HUMAN', '_style':'raw'}
+#    print test.invokeOp('fetchData', 'dbfetch.WSDBFetchServerLegacyService_services', inputDict).values()[0]
+
+#dbfetch.WSDBFetchServerLegacyService_client
+#    print 'all operations: \n', test.path2Ops('dbfetch.WSDBFetchServerLegacyService_client').keys()
+#    print 'inputs of fetchData:\n', test.opname2inputs('fetchData', 'dbfetch.WSDBFetchServerLegacyService_client')
+#    inputDict={'_format':'fasta', '_query':'UNIPROT:ADH1A_HUMAN', '_style':'raw'}
+#    print test.invokeOp('fetchData', 'dbfetch.WSDBFetchServerLegacyService_client', inputDict).values()[0]
+
+
+
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/creatorEngineComplex.pyc has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/creatorEngineComplex.py~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,308 @@
+'''
+@author  Rui Wang
+@see     LICENSE (MIT style license file).
+'''
+
+from types import *
+import copy
+import ZSI.TC
+from introspect import *
+from msHandler import *
+from paramConverter import *
+
+__author__="Rui Wang"
+
+class ClientCreator(Introspector):
+    """all method to introspect  module 
+    to return operations&inputs 
+    and to invoke operation"""
+    
+   
+    
+    def path2Ops(self, modulePath ):
+        '''given module(the service python file generated by wsdl2py) path, 
+        return dictionary of operation name: object (functions of class-**SOAP)'''
+        allclass=self.path2Class(modulePath)
+        #locator=''
+        opclass=''
+        for c in allclass.keys():
+            if c[len(c)-4:len(c)]=='SOAP':
+                opclass=c
+            
+        
+        #class object of which holds all ops
+        opclassOb=allclass[opclass]
+        #list of names of all ops
+        allattr=dir(opclassOb)
+        #print allattr
+        allops={}        
+        for opt in allattr:
+            #every operation object
+            optemp=getattr(opclassOb, opt)
+            #whether it's def and not private such as __init__
+            if callable(optemp) and optemp.__name__.startswith('__')==False:
+                allops[optemp.__name__]=optemp
+                
+        return allops
+        
+    def path2messageClassOb(self, modulePath):
+        '''given module path,
+        return all message class object'''
+        
+        
+        allclassOb=self.path2Class(modulePath)
+            
+        #find all message classes:  has 'typecode', type(obtemp)==ClassType 
+        allmsOb=[]        
+        for c in allclassOb.values():
+            if hasattr(c,'typecode'):
+                allmsOb.append(c)                
+        return allmsOb
+    
+    def opname2inputClassOb(self, opName, modulePath):
+        '''given operation name, module path, 
+        return input class object'''
+        
+        allopNames=self.path2Ops(modulePath)
+        if opName not in allopNames:
+            raise NameError, 'Warning: No operation has the given name!!'   
+            
+        else:
+            #find all message classes:  has 'typecode', type(obtemp)==ClassType             
+            allmsOb=self.path2messageClassOb(modulePath)
+            #find input message class of given operation: typecode has pname=operation name
+            for ms in allmsOb:
+                pnameOb=getattr(getattr(ms, 'typecode'), 'pname')
+                if opName==str(pnameOb):
+                    inputClass=ms
+                    break
+    
+            return inputClass
+    
+    def opname2outputClassOb(self, opName, modulePath):
+        '''given operation name, module path, 
+        return output class object'''
+        
+        allopNames=self.path2Ops(modulePath)
+        if opName not in allopNames:
+            raise NameError, 'Warning: No operation has the given name!!'
+            
+        else:
+            #find all message classes:  has 'typecode', type(obtemp)==ClassType             
+            allmsOb=self.path2messageClassOb(modulePath)
+        
+            #find output message class of given operation: typecode has pname=operation name+'Response'
+            for ms in allmsOb:
+                pnameOb=getattr(getattr(ms, 'typecode'), 'pname')
+                if opName+'Response'==str(pnameOb):
+                    outputClass=ms
+                    break
+    
+            return outputClass
+    
+    def opname2outputs(self, opName, modulePath):
+        '''given operation name, module path,
+        return a list of output nemes of the operation in the module'''
+        
+        allopNames=self.path2Ops(modulePath)
+        if opName not in allopNames:
+            raise NameError, 'Warning: No operation has the given name!!'
+            
+        else:            
+            #get input class object
+            outputClass=self.opname2outputClassOb(opName, modulePath)    
+            #find input parameters from message class : instrospect an instace  
+            msinstance=outputClass()
+
+            parameters={}
+            mshandler=MessageHandler()
+            parameters=mshandler.msParser(msinstance)
+            
+            return parameters   
+    
+    def opname2inputs(self, opName, modulePath):
+        '''given operation name, module path, 
+        return a list of all inputs name of the operation in the given module'''
+        
+        allopNames=self.path2Ops(modulePath)
+        if opName not in allopNames:
+            raise NameError, 'Warning: No operation has the given name!!'
+        else:            
+            #get input class object
+            inputClass=self.opname2inputClassOb(opName, modulePath)   
+            
+            parameters={}
+            mshandler=MessageHandler()
+            parameters=mshandler.msParser(inputClass())       #mshandler.flatten(inputClass())
+            
+            print 'The parametrrs after flattening : ',parameters
+            
+            ofwhat=getattr(getattr(inputClass, 'typecode'), 'ofwhat')
+            paramtypes={}
+            i=0
+            for k in parameters.keys():
+                paramtypes[k]=str(ofwhat[i])
+                i=i+1
+            for l in paramtypes.keys():
+                print "paramters",l
+                origPar=paramtypes[l]
+                copyPar=paramtypes[l]
+                #print copyPar#[-23:-1]
+                newPar=origPar.replace(copyPar[-23:-1],'').strip('<>')
+                paramtypes[l]=newPar
+            
+                                 
+                
+#            print ofwhat
+##            for p in ofwhat:
+##                if isinstance(p, ZSI.TC.ComplexType):
+##                    print 'complextype', p
+##                elif isinstance(p, ZSI.TC.Array) :
+##                    print 'arraytype', p
+##                elif isinstance(p,ZSI.TC.String):
+##                    print 'String',p
+##                elif isinstance(p,ZSI.TC.Integer):
+##                    print 'Integer',p
+##                else:
+##                    parameters[getattr(p, 'aname')]=None
+##         
+            #print parameters
+            return parameters
+            #return paramtypes
+            #find input parameters from message class : instrospect an instace  
+#            msinstance=inputClass()u can
+##            print dir(msinstance)
+#            parameters=[]
+#            for i in dir(msinstance):
+##                print i, type(getattr(msinstance, i))
+#                if (type(getattr(msinstance, i)) is NoneType) and i!='__doc__':
+#                    parameters.append(i)
+##            print parameters
+#            return parameters    
+
+    def path2service(self, modulePath):
+        '''given module path,
+        return return service instance
+        instead of: dbfetchSrv = WSDBFetchServerLegacyServiceLocator().getWSDBFetchServerLegacy()'''
+        
+        allclass=self.path2Class(modulePath)
+               
+        locator=''
+        for c in allclass.keys():
+            if c[len(c)-7:len(c)]=='Locator':
+                locator=c
+            
+        locatorClassOb=allclass[locator]
+        for obname in dir(locatorClassOb):
+            obtemp=getattr(locatorClassOb, obname)
+            if (type(obtemp) is MethodType)and not obtemp.__name__.endswith('Address'):
+                serverMethod=obtemp
+                break
+        # Create a service interface
+        service=serverMethod(locatorClassOb())
+        return service
+    
+    def invokeOp(self, opName, modulePath,  inputs):
+        allopNames=self.path2Ops(modulePath)
+        if opName not in allopNames:
+            raise NameError, 'Warning: No operation has the given name!!'
+        else:
+            # Create a service interface
+            serviceInstance=self.path2service(modulePath)
+            
+            #get input class object of given opName
+            inputClass=self.opname2inputClassOb(opName, modulePath)             
+                                            
+            mshandler=MessageHandler()
+            if len(inputs) != 0:
+                inputClassInstance=mshandler.msAssign(inputClass(), inputs)
+            else:
+                inputClassInstance= inputClass()
+            #get input name list of given opName
+#            inputNames=self.opname2inputs(opName, modulePath)
+            
+            #set value for inputs
+            #request._query = 'UNIPROT:ADH1A_HUMAN'
+            #request._format = 'fasta'
+#            #request._style = 'raw'
+#            if inputNames!= None:
+#                for inName in inputs.keys():
+#                    if inName not in inputNames:
+#                        raise TypeError, 'the input name is wrong!!!!'
+#                        #return None
+#                    else:
+#                        setattr(inputClassInstance, inName, inputs[inName])
+            
+            
+            #get dictionary of operation name:object(def)
+            opDict=self.path2Ops(modulePath)
+            
+            #get operation object(def)
+            opOb=opDict[opName]
+            
+            #invoke operation: response = dbfetchSrv.fetchData(request)
+            responseInstance=opOb(serviceInstance, inputClassInstance)
+            
+            #get output from outputmessage: result = response._fetchDataReturn
+            resultDict={}
+            resultDict=mshandler.flatten(responseInstance)   #mshandler.msParser(responseInstance)
+            flat =  nested2flatDict(resultDict)
+#            outputNames=self.opname2outputs(opName, modulePath)
+#            for out in outputNames:
+#                resultDict[out]=getattr(responseInstance, out)
+
+            return flat#resultDict
+            #return responseInstance
+
+#testing this module
+if __name__=="__main__":
+    test=ClientCreator()
+    
+    #picr web service
+#    print 'all operations of picr: \n', test.path2Ops('picr.AccessionMapperService_client').keys()
+#    print 'inputs of picr \n', test.opname2inputs('getUPIForSequence', 'picr.AccessionMapperService_client')
+#    print 'outputs of picr \n', test.opname2outputs('getUPIForSequence', 'picr.AccessionMapperService_client')
+
+
+    seq = """>Q8E5Q5_STRA3
+MKLSKRYRFWQKVIKALGVLALIATLVLVVYLYKLGILNDSNELKDLVHKYEFWGPMIFI
+VAQIVQIVFPVIPGGVTTVAGFLIFGPTLGFIYNYIGIIIGSVILFWLVKFYGRKFVLLF
+MDQKTFDKYESKLETSGYEKFFIFCMASPISPADIMVMITGLSNMSIKRFVTIIMITKPI
+SIIGYSYLWIYGGDILKNFLN"""
+#    inp = {'_content': [{'_type': 'sequence', '_content': 'MKLSKRYRFWQKVIKALGVLALIATLVLVVYLYKLGILNDSNELKDLVHKYEFWGPMIFI'}, {'_type': 'sequence', '_content': 'MDQKTFDKYESKLETSGYEKFFIFCMASPISPADIMVMITGLSNMSIKRFVTIIMITKPI'}], '_params': {'_database': 'swissprot', '_email': 'chaitanya@gmail.com', '_program': 'blastp'}}
+    inp = {'_parameters': {'_stype': 'protein', '_sequence': 'MKLSKRYRFWQKVIKALGVLALIATLVLVVYLYKLGILNDSNELKDLVHKYEFWGPMIFI','_database':{ '_string' : ['uniprotkb','uniprotkb_swissprot']}, '_program': 'blastp'}, '_email': 'chaitanya@gmail.com'}
+    inputDict={'_params':{ '_program' : 'blastp', '_database' :'swissprot', '_email' :'riververy@yahoo.com', '_async': 1}, '_content':[{'_type':'sequence', '_content':'MKLSKRYRFWQKVIKALGVLALIATLVLVVYLYKLGILNDSNELKDLVHKYEFWGPMIFI'}]}
+#    inputDict = {}
+    inputs ={'_jobId':'wublast-S20110517-051830-0552-49531676-oy','_type':'out'}
+    inp = {}
+    #print test.invokeOp('run', 'wublast.wublast_services', inp)
+    print test.invokeOp('getParameters', 'wublast.wublast_services', inp)
+    #print test.opname2inputs('getResult','wublast.wublast_services')
+#    print 'all operations: \n', test.path2Ops('blast.WSWUBlast_client').keys()
+#    print 'inputs of runWUBlast \n', test.opname2inputs('runWUBlast', 'blast.WSWUBlast_client')
+#    print 'outputs of runWUBlast \n', test.opname2outputs('runWUBlast', 'blast.WSWUBlast_client')
+
+
+#    modul=test.path2Module('ebiDbfetch.WSDBFetchServerLegacyService_services')
+#    print dir(modul)
+#    print 'all operations: \n', test.path2Ops('ebiDbfetch.WSDBFetchServerLegacyService_services').keys()
+#    print 'inputs of fetchData:\n', test.opname2inputs('fetchData', 'ebiDbfetch.WSDBFetchServerLegacyService_services')
+#    print 'all classes:\n', test.path2Class('ebiDbfetch.WSDBFetchServerLegacyService_services').keys()
+#    print 'service instance ob:\n', test.path2service('ebiDbfetch.WSDBFetchServerLegacyService_services')
+#    print 'outputs of fetchData:\n', test.opname2outputs('fetchData', 'ebiDbfetch.WSDBFetchServerLegacyService_services')
+#    inputDict={'_format':'fasta', '_query':'UNIPROT:ADH1A_HUMAN', '_style':'raw'}
+#    print test.invokeOp('fetchData', 'ebiDbfetch.WSDBFetchServerLegacyService_services', inputDict).values()[0]
+    
+#    print 'all operations: \n', test.path2Ops('dbfetch.WSDBFetchServerLegacyService_services').keys()
+#    print 'inputs of fetchData:\n', test.opname2inputs('fetchData', 'dbfetch.WSDBFetchServerLegacyService_services')
+#    inputDict={'_format':'fasta', '_query':'UNIPROT:ADH1A_HUMAN', '_style':'raw'}
+#    print test.invokeOp('fetchData', 'dbfetch.WSDBFetchServerLegacyService_services', inputDict).values()[0]
+
+#dbfetch.WSDBFetchServerLegacyService_client
+#    print 'all operations: \n', test.path2Ops('dbfetch.WSDBFetchServerLegacyService_client').keys()
+#    print 'inputs of fetchData:\n', test.opname2inputs('fetchData', 'dbfetch.WSDBFetchServerLegacyService_client')
+#    inputDict={'_format':'fasta', '_query':'UNIPROT:ADH1A_HUMAN', '_style':'raw'}
+#    print test.invokeOp('fetchData', 'dbfetch.WSDBFetchServerLegacyService_client', inputDict).values()[0]
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/creatorTest.py~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,40 @@
+from creatorEngineComplex import *
+from wsdl2path import *
+
+
+if __name__=="__main__":
+#    filename='testforrindex.py'
+#    print filename[0:filename.rindex('.py')]
+
+    test1=wsdlLoader()
+    print 'stub file path generated by wsdl2py: \n', test1.wsdlUrl2path('http://webservices.daehosting.com/services/TemperatureConversions.wso?WSDL', 'Temp')
+
+##    print 'stub file path generated by wsdl2py: \n', test1.wsdlUrl2path('http://www.ebi.ac.uk/Tools/webservices/wsdl/WSDbfetch.wsdl', 'dbfetch')
+  #  print 'stub file path generated by wsdl2py: \n', test1.wsdlFile2path('../wsdl/WSDbfetch.wsdl', 'dbfetch')
+    
+    test=ClientCreator()
+    
+##    print 'all operations: \n', test.path2Ops('dbfetch.WSDBFetchServerLegacyService_client').keys()
+##    print 'inputs of fetchData:\n', test.opname2inputs('fetchData', 'dbfetch.WSDBFetchServerLegacyService_client')
+##    inputDict={'_format':'fasta', '_query':'UNIPROT:ADH1A_HUMAN', '_style':'raw'}
+##    print 'invoke the fetchData operation of web service and return: \n',test.invokeOp('fetchData', 'dbfetch.WSDBFetchServerLegacyService_client', inputDict)
+    print 'all operations: \n', test.path2Ops('Temp.TemperatureConversions_client').keys()
+    print 'inputs of fetchData:\n', test.opname2inputs('WindChillInCelcius', 'Temp.TemperatureConversions_client')
+    inputDict={'_nWindSpeed': 90, '_nCelcius': 40}
+    print 'invoke the fetchData operation of web service and return: \n',
+    result=test.invokeOp('WindChillInCelcius', 'Temp.TemperatureConversions_client', inputDict)
+    for r in result:
+        print r,':',result[r]
+##    
+#    print 'all operations of wublast: \n', test.path2Ops('blast.WSWUBlast_client').keys()
+#    print 'inputs of runWUBlast operation \n', test.opname2inputs('runWUBlast', 'blast.WSWUBlast_client')
+#    print 'outputs of runWUBlast operation \n', test.opname2outputs('runWUBlast', 'blast.WSWUBlast_client')
+#
+#    seq = """>Q8E5Q5_STRA3
+#    MKLSKRYRFWQKVIKALGVLALIATLVLVVYLYKLGILNDSNELKDLVHKYEFWGPMIFI
+#    VAQIVQIVFPVIPGGVTTVAGFLIFGPTLGFIYNYIGIIIGSVILFWLVKFYGRKFVLLF
+#    MDQKTFDKYESKLETSGYEKFFIFCMASPISPADIMVMITGLSNMSIKRFVTIIMITKPI
+#    SIIGYSYLWIYGGDILKNFLN"""
+#    inputDict={'_params':{ '_program' : 'blastp', '_database' :'swissprot', '_email' :'riververy@yahoo.com', '_async': 1}, '_content':[{'_type':'sequence', '_content':seq}]}
+#    print 'invoke runWUBlast operation and return: \n', test.invokeOp('runWUBlast', 'blast.WSWUBlast_client', inputDict)
+    
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/introspect.py	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,120 @@
+'''
+@author  Rui Wang
+@see     LICENSE (MIT style license file).
+'''
+
+import sys, os, imp
+#import buildin types
+from types import *
+import os
+import sys 
+import warnings
+
+__author__="Rui Wang"
+
+galaxyhome=os.environ.get('GALAXY_HOME')
+sys.path.append(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator/')
+os.chdir(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator/')
+class Introspector:
+    '''introspect module, 
+    to import module,
+    to find classes in the module,
+    '''
+    #os.chdir('/home/tuxdistro/galaxy_dist/webservice')
+    def path2Module(self, modulePath):
+        '''given modulePath=package.module, return module object'''
+      
+        #dynamic import module, e.g.'ebiDbfetch.WSDBFetchServerLegacyService_services'
+        path=modulePath
+        #print 'ModulePath:',path
+        #path='/home/tuxdistro/galaxy_dist/webservice/'+modulePath
+        #print os.getcwd()
+        #print dir()
+        print 'the path is : ',path    #added
+        moduRoot=__import__(path)
+        components = path.split('.')
+        modu=getattr(moduRoot,components[-1])
+        #list all object in the module file
+#        allOB=dir(modu)
+#        print "all objects in module: "
+#        print allOB
+#        print dir(moduRoot)
+#        print moduRoot
+        return modu
+
+    
+    def path2Class(self, modulePath):
+        '''given module path, return dict of all class name:object'''
+        modu=self.path2Module(modulePath)
+#        print 'module====', modu
+#        modu=self.loadModule(modulePath)
+        #list all object in the service file
+        allOB=dir(modu)
+#        print allOB
+        #find classes  type(obtemp)==ClassType 
+        allclass={}
+        for ob in allOB:
+            obtemp=getattr(modu, ob)
+            #print obtemp, "----", type(obtemp).__name__
+            if type(obtemp) is ClassType:
+                allclass[obtemp.__name__]=obtemp
+    
+        return allclass
+        
+    def loadModule(self, name):
+        """
+        Load a module given by name.
+        name -- The fully qualified name of a module
+        """
+        modNames = name.split('.');
+        module = None;
+#        currDir = [self.baseDir];
+        idx = sys.argv[0].rindex(os.path.sep);
+        path = str(sys.argv[0])[0:idx]
+        currDir = [path];
+        
+        name = None;
+        for mod in modNames:
+            if name :
+                name += '.' + mod;
+            else :
+                name = mod;
+            fp, path, desc = imp.find_module(mod, currDir);
+            try :
+                #define the module
+                module = self.__lm(name, fp, path, desc);
+                
+                #If the attr doesn't exist this is the last module to load
+                if hasattr(module, '__path__') :
+                    currDir = module.__path__;
+            finally :
+                if fp:
+                    fp.close();
+        return module;
+
+    def __lm(self, name, openfp, path, descTuple):
+        if descTuple[2] == imp.PKG_DIRECTORY :
+            #define package
+            package = imp.load_module(name, openfp, path, descTuple);
+            #load the __init__ module to make changes
+            initfp, initpath, initdesc = imp.find_module('__init__', [path]);
+            try :
+                imp.load_module(name + ".__init__", initfp, initpath, initdesc);
+            finally :
+                if initfp :
+                    initfp.close();
+            #return the package
+            return package;            
+        else :
+            return imp.load_module(name, openfp, path, descTuple);
+        
+        
+        
+#testing this module
+if __name__=="__main__":
+    test=Introspector()
+    print test.path2Module('blast.WSWUBlast_server')
+#    print test.loadModule('blast.WSWUBlast_client')
+#    test.path2Module('wublastTest')
+    
+    
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/introspect.pyc has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/introspect.py~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,120 @@
+'''
+@author  Rui Wang
+@see     LICENSE (MIT style license file).
+'''
+
+import sys, os, imp
+#import buildin types
+from types import *
+import os
+import sys 
+import warnings
+
+__author__="Rui Wang"
+
+galaxyhome=os.environ.get('GALAXY_HOME')
+sys.path.append(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator/')
+os.chdir(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator/')
+class Introspector:
+    '''introspect module, 
+    to import module,
+    to find classes in the module,
+    '''
+    #os.chdir('/home/tuxdistro/galaxy_dist/webservice')
+    def path2Module(self, modulePath):
+        '''given modulePath=package.module, return module object'''
+      
+        #dynamic import module, e.g.'ebiDbfetch.WSDBFetchServerLegacyService_services'
+        path=modulePath
+        #print 'ModulePath:',path
+        #path='/home/tuxdistro/galaxy_dist/webservice/'+modulePath
+        #print os.getcwd()
+        #print dir()
+        print 'the path is : ',path    #added
+        moduRoot=__import__(path)
+        components = path.split('.')
+        modu=getattr(moduRoot,components[-1])
+        #list all object in the module file
+#        allOB=dir(modu)
+#        print "all objects in module: "
+#        print allOB
+#        print dir(moduRoot)
+#        print moduRoot
+        return modu
+
+    
+    def path2Class(self, modulePath):
+        '''given module path, return dict of all class name:object'''
+        modu=self.path2Module(modulePath)
+#        print 'module====', modu
+#        modu=self.loadModule(modulePath)
+        #list all object in the service file
+        allOB=dir(modu)
+#        print allOB
+        #find classes  type(obtemp)==ClassType 
+        allclass={}
+        for ob in allOB:
+            obtemp=getattr(modu, ob)
+            #print obtemp, "----", type(obtemp).__name__
+            if type(obtemp) is ClassType:
+                allclass[obtemp.__name__]=obtemp
+    
+        return allclass
+        
+    def loadModule(self, name):
+        """
+        Load a module given by name.
+        name -- The fully qualified name of a module
+        """
+        modNames = name.split('.');
+        module = None;
+#        currDir = [self.baseDir];
+        idx = sys.argv[0].rindex(os.path.sep);
+        path = str(sys.argv[0])[0:idx]
+        currDir = [path];
+        
+        name = None;
+        for mod in modNames:
+            if name :
+                name += '.' + mod;
+            else :
+                name = mod;
+            fp, path, desc = imp.find_module(mod, currDir);
+            try :
+                #define the module
+                module = self.__lm(name, fp, path, desc);
+                
+                #If the attr doesn't exist this is the last module to load
+                if hasattr(module, '__path__') :
+                    currDir = module.__path__;
+            finally :
+                if fp:
+                    fp.close();
+        return module;
+
+    def __lm(self, name, openfp, path, descTuple):
+        if descTuple[2] == imp.PKG_DIRECTORY :
+            #define package
+            package = imp.load_module(name, openfp, path, descTuple);
+            #load the __init__ module to make changes
+            initfp, initpath, initdesc = imp.find_module('__init__', [path]);
+            try :
+                imp.load_module(name + ".__init__", initfp, initpath, initdesc);
+            finally :
+                if initfp :
+                    initfp.close();
+            #return the package
+            return package;            
+        else :
+            return imp.load_module(name, openfp, path, descTuple);
+        
+        
+        
+#testing this module
+if __name__=="__main__":
+    test=Introspector()
+    print test.path2Module('blast.WSWUBlast_server')
+#    print test.loadModule('blast.WSWUBlast_client')
+#    test.path2Module('wublastTest')
+    
+    
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/latest_wsdl/PhylipService_services.py	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,199 @@
+################################################## 
+# PhylipService_services.py 
+# generated by ZSI.generate.wsdl2python
+##################################################
+
+
+
+import urlparse, types
+from ZSI.TCcompound import ComplexType, Struct
+from ZSI import client
+import ZSI
+
+# Locator
+class PhylipServiceLocator:
+    Phylip_address = "http://pathport.bioinformatics.vt.edu:6565/axis/services/phylip"
+    def getPhylipAddress(self):
+        return PhylipServiceLocator.Phylip_address
+    def getPhylip(self, url=None, **kw):
+        return phylipSoapBindingSOAP(url or PhylipServiceLocator.Phylip_address, **kw)
+
+# Methods
+class phylipSoapBindingSOAP:
+    def __init__(self, url, **kw):
+        kw.setdefault("readerclass", None)
+        kw.setdefault("writerclass", None)
+        # no resource properties
+        self.binding = client.Binding(url=url, **kw)
+        # no ws-addressing
+
+    # op: protpars
+    def protpars(self, request):
+        if isinstance(request, protparsRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=protparsResponse.typecode.ofwhat, pyclass=protparsResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: dnapars
+    def dnapars(self, request):
+        if isinstance(request, dnaparsRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=dnaparsResponse.typecode.ofwhat, pyclass=dnaparsResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: codeml
+    def codeml(self, request):
+        if isinstance(request, codemlRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=codemlResponse.typecode.ofwhat, pyclass=codemlResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: dnaml
+    def dnaml(self, request):
+        if isinstance(request, dnamlRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=dnamlResponse.typecode.ofwhat, pyclass=dnamlResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: aboutService
+    def aboutService(self, request):
+        if isinstance(request, aboutServiceRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=aboutServiceResponse.typecode.ofwhat, pyclass=aboutServiceResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: aboutOperations
+    def aboutOperations(self, request):
+        if isinstance(request, aboutOperationsRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=aboutOperationsResponse.typecode.ofwhat, pyclass=aboutOperationsResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+    # op: acknowledge
+    def acknowledge(self, request):
+        if isinstance(request, acknowledgeRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+        # no output wsaction
+        typecode = Struct(pname=None, ofwhat=acknowledgeResponse.typecode.ofwhat, pyclass=acknowledgeResponse.typecode.pyclass)
+        response = self.binding.Receive(typecode)
+        return response
+
+class protparsRequest:
+    def __init__(self):
+        self._in0 = None
+        self._in1 = None
+        return
+protparsRequest.typecode = Struct(pname=("urn:phylip","protpars"), ofwhat=[ZSI.TC.String(pname="in0", aname="_in0", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="in1", aname="_in1", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=protparsRequest, encoded="urn:phylip")
+
+class protparsResponse:
+    def __init__(self):
+        self._protparsReturn = None
+        return
+protparsResponse.typecode = Struct(pname=("urn:phylip","protparsResponse"), ofwhat=[ZSI.TC.String(pname="protparsReturn", aname="_protparsReturn", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=protparsResponse, encoded="urn:phylip")
+
+class dnaparsRequest:
+    def __init__(self):
+        self._in0 = None
+        self._in1 = None
+        return
+dnaparsRequest.typecode = Struct(pname=("urn:phylip","dnapars"), ofwhat=[ZSI.TC.String(pname="in0", aname="_in0", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="in1", aname="_in1", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=dnaparsRequest, encoded="urn:phylip")
+
+class dnaparsResponse:
+    def __init__(self):
+        self._dnaparsReturn = None
+        return
+dnaparsResponse.typecode = Struct(pname=("urn:phylip","dnaparsResponse"), ofwhat=[ZSI.TC.String(pname="dnaparsReturn", aname="_dnaparsReturn", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=dnaparsResponse, encoded="urn:phylip")
+
+class codemlRequest:
+    def __init__(self):
+        self._in0 = None
+        self._in1 = None
+        return
+codemlRequest.typecode = Struct(pname=("urn:phylip","codeml"), ofwhat=[ZSI.TC.String(pname="in0", aname="_in0", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="in1", aname="_in1", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=codemlRequest, encoded="urn:phylip")
+
+class codemlResponse:
+    def __init__(self):
+        self._codemlReturn = None
+        return
+codemlResponse.typecode = Struct(pname=("urn:phylip","codemlResponse"), ofwhat=[ZSI.TC.String(pname="codemlReturn", aname="_codemlReturn", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=codemlResponse, encoded="urn:phylip")
+
+class dnamlRequest:
+    def __init__(self):
+        self._in0 = None
+        self._in1 = None
+        return
+dnamlRequest.typecode = Struct(pname=("urn:phylip","dnaml"), ofwhat=[ZSI.TC.String(pname="in0", aname="_in0", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="in1", aname="_in1", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=dnamlRequest, encoded="urn:phylip")
+
+class dnamlResponse:
+    def __init__(self):
+        self._dnamlReturn = None
+        return
+dnamlResponse.typecode = Struct(pname=("urn:phylip","dnamlResponse"), ofwhat=[ZSI.TC.String(pname="dnamlReturn", aname="_dnamlReturn", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=dnamlResponse, encoded="urn:phylip")
+
+class aboutServiceRequest:
+    def __init__(self):
+        return
+aboutServiceRequest.typecode = Struct(pname=("urn:phylip","aboutService"), ofwhat=[], pyclass=aboutServiceRequest, encoded="urn:phylip")
+
+class aboutServiceResponse:
+    def __init__(self):
+        self._aboutServiceReturn = None
+        return
+aboutServiceResponse.typecode = Struct(pname=("urn:phylip","aboutServiceResponse"), ofwhat=[ZSI.TC.String(pname="aboutServiceReturn", aname="_aboutServiceReturn", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=aboutServiceResponse, encoded="urn:phylip")
+
+class aboutOperationsRequest:
+    def __init__(self):
+        return
+aboutOperationsRequest.typecode = Struct(pname=("urn:phylip","aboutOperations"), ofwhat=[], pyclass=aboutOperationsRequest, encoded="urn:phylip")
+
+class aboutOperationsResponse:
+    def __init__(self):
+        self._aboutOperationsReturn = None
+        return
+aboutOperationsResponse.typecode = Struct(pname=("urn:phylip","aboutOperationsResponse"), ofwhat=[ZSI.TC.String(pname="aboutOperationsReturn", aname="_aboutOperationsReturn", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=aboutOperationsResponse, encoded="urn:phylip")
+
+class acknowledgeRequest:
+    def __init__(self):
+        self._in0 = None
+        self._in1 = None
+        return
+acknowledgeRequest.typecode = Struct(pname=("urn:phylip","acknowledge"), ofwhat=[ZSI.TC.String(pname="in0", aname="_in0", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="in1", aname="_in1", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=acknowledgeRequest, encoded="urn:phylip")
+
+class acknowledgeResponse:
+    def __init__(self):
+        self._acknowledgeReturn = None
+        return
+acknowledgeResponse.typecode = Struct(pname=("urn:phylip","acknowledgeResponse"), ofwhat=[ZSI.TC.String(pname="acknowledgeReturn", aname="_acknowledgeReturn", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=acknowledgeResponse, encoded="urn:phylip")
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/latest_wsdl/PhylipService_services_types.py	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,9 @@
+################################################## 
+# PhylipService_services_types.py 
+# generated by ZSI.generate.wsdl2python
+##################################################
+
+
+import ZSI
+import ZSI.TCcompound
+from ZSI.schema import LocalElementDeclaration, ElementDeclaration, TypeDefinition, GTD, GED
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/msHandler.py	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,380 @@
+'''
+@author  Rui Wang
+@see     LICENSE (MIT style license file).
+'''
+
+
+import ZSI.TC
+import copy
+
+__author__="Rui Wang, Chaitanya Guttula"
+
+class MessageHandler:
+    '''handle message class'''        
+    
+    def msAssign(self, msInstance, nameValueDic):
+        '''given message class instance, _name:value tree structure dictionary,
+        assign the values to the correct leaves in the message tree,
+        return message class instance with values'''
+        
+        #get the list of all parts of message
+        partList=getattr(getattr(msInstance, 'typecode'), 'ofwhat')
+        for part in partList:
+            #_name of part of message
+            partName=getattr(part, 'aname') 
+            if partName not in nameValueDic.keys():
+                continue
+            #value assigned to part, can be simple type(directly assign) or tree structure(pass to complextypeAssign() or arraytypeAssign())
+            partValue=nameValueDic[partName]
+            if isinstance(part, ZSI.TC.ComplexType):
+                complextypeHolderClassInstance=self.complextypeAssign(part, partValue)
+                setattr(msInstance, partName, complextypeHolderClassInstance)
+            elif isinstance(part, ZSI.TC.Array) :
+                subArray=self.arraytypeAssign(part, partValue)
+                setattr(msInstance, partName, subArray)
+                print 'the arraay type is : ',subArray
+            else:               
+                #simple type such as string...directly assign the value to the part               
+                setattr(msInstance, partName, partValue)
+        return msInstance
+    
+    def complextypeAssign(self, complextypeInstance, subNameValueDic):
+        '''given complex type instance, subtree of _name:value dictionary
+        traverse the tree structure recursively,
+        return top complextype holder class instance with values filled in'''
+        
+        if not isinstance(complextypeInstance, ZSI.TC.ComplexType):
+            raise TypeError, 'First parameter has to be instance of ZSI.TC.ComplexType'
+        else:
+            complextypeHolderClassInstance=getattr(complextypeInstance,'pyclass')()
+            
+            #element instance list of complex type
+            elementList=getattr(complextypeInstance, 'ofwhat')
+            for ele in elementList:
+            
+                #_name of element of complex type
+                eleName=getattr(ele, 'aname') 
+                if eleName not in subNameValueDic.keys():
+                    continue
+                    
+                #value assigned to element, can be simple type(directly assign) or tree structure(pass to complextypeAssign() or arraytypeAssign())
+                eleValue=subNameValueDic[eleName]
+                if isinstance(ele, ZSI.TC.ComplexType):
+                    subclomplextypeClassInstance=self.complextypeAssign(ele, eleValue)
+                    setattr(complextypeHolderClassInstance, eleName, subclomplextypeClassInstance)
+                elif isinstance(ele, ZSI.TC.Array) :
+                    subArray=self.arraytypeAssign(ele, eleValue)
+                    setattr(complextypeHolderClassInstance, eleName, subArray)
+                else:   
+                            
+                    #simple type such as string...directly assign the value to the element               
+                    setattr(complextypeHolderClassInstance, eleName, eleValue)
+            
+            return complextypeHolderClassInstance
+        
+    def arraytypeAssign(self,arraytypeInstance, subValueArray):
+        '''given arraytype class instance, [values...],
+        recursively handle values,
+        return [arraytypeInstance filled with values]'''
+        
+        
+        if not isinstance(arraytypeInstance, ZSI.TC.Array):
+            raise TypeError, 'First parameter has to be instance of ZSI.TC.Array'
+        else:
+            resultArray=[]
+            if subValueArray is None:
+                return None
+            if subValueArray is []:
+                return []
+            
+            #element instance of array type
+            elementInstance=getattr(arraytypeInstance, 'ofwhat')
+            if isinstance(elementInstance, ZSI.TC.ComplexType):                
+                for eleValue in subValueArray:
+                    subclomplextypeClassInstance=self.complextypeAssign(copy.deepcopy(elementInstance), eleValue)
+                    resultArray.append(subclomplextypeClassInstance)
+            elif isinstance(elementInstance, ZSI.TC.Array) :
+                for eleValue in subValueArray:
+                    subArray=self.arraytypeAssign(copy.deepcopy(elementInstance), eleValue)
+                    resultArray.append(subArray)
+
+            else:  
+                         
+                #simple type such as string...directly return the [value,...]        
+                resultArray=subValueArray
+            
+            return resultArray
+        
+    def msParser(self, msInstance):
+        '''given message class instance,
+        parse the message class tree,
+        return message tree of _name:value dictionary'''
+        
+        nameValueDic={}
+        
+        
+        #get the list of all parts of message
+        partList=getattr(getattr(msInstance, 'typecode'), 'ofwhat')
+        for part in partList:
+        
+            #_name of part of message
+            partName=getattr(part, 'aname')  
+            partValueDefault=getattr(msInstance, partName)
+            
+            #value assigned to part, can be simple type(directly assign) or tree structure(pass to complextypeAssign() or arraytypeAssign())
+#            partValue=nameValueDic[partName]
+#            nameValueDic[partName]=None
+            if isinstance(part, ZSI.TC.ComplexType):
+                nameValueDic[partName]=self.complextypeParser(part)
+            elif isinstance(part, ZSI.TC.Array) :
+                nameValueDic[partName]=self.arraytypeParser(part, partValueDefault)
+            else:               
+                #simple type such as string...directly retrieve the value of the part               
+                nameValueDic[partName]=partValueDefault
+        return nameValueDic
+    
+    def complextypeParser(self, complextypeInstance):
+        '''given complex type class instance, 
+        traverse the tree structure recursively,
+        return subtree of _name:value dictionary'''
+        
+        if not isinstance(complextypeInstance, ZSI.TC.ComplexType):
+            raise TypeError, 'First parameter has to be instance of ZSI.TC.ComplexType'
+        else:
+            subNameValueDic={}
+            complextypeHolderClassInstance=getattr(complextypeInstance,'pyclass')()
+            #element instance list of complex type
+            elementList=getattr(complextypeInstance, 'ofwhat')
+            for ele in elementList:
+                #_name of element of complex type
+                eleName=getattr(ele, 'aname')  
+                eleValueDefault=getattr(complextypeHolderClassInstance,eleName)
+                print eleName
+                #value assigned to element, can be simple type(directly assign) or tree structure(pass to complextypeAssign() or arraytypeAssign())
+#                eleValue=subNameValueDic[eleName]
+                if isinstance(ele, ZSI.TC.ComplexType):
+                    if(getattr(ele,'maxOccurs')=='unbounded'):   # Handling element with maxOccurances as unbounded and type as complextype
+                        print 'arraytype',eleName
+                        tempArray=[]
+                        sub = self.complextypeParser(ele)
+                        tempArray.append(sub)
+                        print 'array is : ',tempArray
+                        subNameValueDic[eleName]=tempArray  #tempArray.append(sub)#self.arraytypeParser(ele, eleValueDefault)
+                    else:
+                        print 'complextype', eleName
+                        subNameValueDic[eleName]=self.complextypeParser(ele)
+                elif isinstance(ele, ZSI.TC.Array):
+                    print 'arraytype', eleValueDefault
+                    subNameValueDic[eleName]=self.arraytypeParser(ele, eleValueDefault)
+                else:               
+                    subNameValueDic[eleName] = eleValueDefault             
+            
+            return subNameValueDic
+    
+        
+    def arraytypeParser(self,arraytypeInstance, defaultValueArray):
+        '''given arraytype class instance, and its default value [defaultvalues...]
+        if element of array is not simple type then recursively handle traverse the type tree,
+        return [values...]
+        else return defaultValueArray[defaultvalues...]'''
+        
+        
+        if (not isinstance(arraytypeInstance, ZSI.TC.Array)): #or (getattr(arraytypeInstance,'maxOccurs')!='unbounded') :
+            raise TypeError, 'First parameter has to be instance of ZSI.TC.Array'
+        else:
+            subValueArray=[]
+            
+            
+            #element instance of array type
+            elementInstance=getattr(arraytypeInstance, 'ofwhat')
+            if isinstance(elementInstance, ZSI.TC.ComplexType):                
+                if defaultValueArray is None:
+                    subclomplextypeClassInstance=self.complextypeParser(elementInstance)
+                    subValueArray.append(subclomplextypeClassInstance)
+                else:
+                    for eleValue in defaultValueArray:
+                        subclomplextypeClassInstance=self.complextypeParser(eleValue)
+                        subValueArray.append(subclomplextypeClassInstance)
+            elif isinstance(elementInstance, ZSI.TC.Array) :
+                if defaultValueArray is None:
+                    subarraytypeClassInstance=self.arraytypeParser(elementInstance, None)
+                    subValueArray.append(subarraytypeClassInstance)
+                else:
+                    for eleValue in defaultValueArray:
+                        subArray=self.arraytypeParser(copy.deepcopy(elementInstance), eleValue)
+                        subValueArray.append(subArray)
+
+            else:               
+                #simple type such as string...directly return the [value,...]of the arraytypeInstance (default value)       
+                subValueArray=defaultValueArray
+            
+            return subValueArray
+            
+    
+    def flatten(self,obj):
+        if obj is None:
+            return None
+        elif hasattr(obj, '__dict__') and obj.__dict__:
+            return dict([(k, self.flatten(v)) for (k, v) in obj.__dict__.items()])
+        if isinstance(obj, (dict,)):
+            return dict([(k, self.flatten(v)) for (k, v) in obj.items()])
+        elif isinstance(obj, (list,)):
+            return [self.flatten(x) for x in obj]
+        elif isinstance(obj, (tuple,)):
+            return tuple([flatten(x) for x in obj])
+        else:
+            return obj
+            
+    def getParameter(self, msInstance,param):
+        '''given message class instance, and parameter
+        parse the message class tree,
+        return the element '''
+        nameValueDic={}
+        plist = []
+        if(param.find('|0|')>-1):
+            s = param.split('|0|')
+            print 'found |0|',s
+            for l in s:
+                if(l.find('|')>-1):
+                    t = l.split('|')
+                    print 'found |',t
+                    for i in t:
+                        print 'i',i
+                        plist.append(i)
+                else:
+                    plist.append(l)
+        elif(param.find('|')>-1):
+            plist = param.split('|')
+        else:
+            partlist = getattr(getattr(msInstance , 'typecode'),'ofwhat')
+            for part in partlist:
+                if param == getattr(part,'aname'):
+                    print part
+                    return part
+            
+        
+        element = None
+        #get the list of all parts of message
+        partList=getattr(getattr(msInstance, 'typecode'), 'ofwhat')
+        for part in partList:
+            #_name of part of message
+            partName=getattr(part, 'aname') 
+                
+            if(partName == plist[0]):
+                
+                partname=getattr(part,'pname') 
+                partValueDefault=getattr(msInstance, partName)
+                break
+            #value assigned to part, can be simple type(directly assign) or tree structure(pass to complextypeAssign() or arraytypeAssign())
+#            partValue=nameValueDic[partName]
+#            nameValueDic[partName]=None
+        if isinstance(part, ZSI.TC.ComplexType):
+            print 'complextype', getattr(part,'aname')#plist[-1]
+            sp = ( self.complextypParser(part,plist[-1]))
+            if(sp !=None):
+                element = sp
+                
+        elif isinstance(part, ZSI.TC.Array) :
+                element = self.arraytypParser(part, partValueDefault,plist[-1])
+                #nameValueDic[partName]=self.arraytypeParser(part, partValueDefault,param)
+        else:               
+                #simple type such as string...directly retrieve the value of the part               
+            if(partName == plist[-1]):
+                element = part
+        print 'spart',element
+        res = getattr(element,'nillable')
+        print res
+        return element
+    
+    def complextypParser(self, complextypeInstance,param):
+        '''given complex type class instance, and paramater name 
+        traverse the tree structure recursively,
+        return the element with parameter name'''
+        part =None
+        if not isinstance(complextypeInstance, ZSI.TC.ComplexType):
+            raise TypeError, 'First parameter has to be instance of ZSI.TC.ComplexType'
+        else:
+            subNameValueDic={}
+            complextypeHolderClassInstance=getattr(complextypeInstance,'pyclass')()
+            #element instance list of complex type
+            elementList=getattr(complextypeInstance, 'ofwhat')
+            
+            for ele in elementList:
+                #_name of element of complex type
+                eleName=getattr(ele, 'aname') 
+                eleValueDefault=getattr(complextypeHolderClassInstance, eleName)
+                #value assigned to element, can be simple type(directly assign) or tree structure(pass to complextypeAssign() or arraytypeAssign())
+#                eleValue=subNameValueDic[eleName]
+                if isinstance(ele, ZSI.TC.ComplexType):
+
+                    if getattr(ele,'aname') == param:
+                        print 'returning the middle complex type'
+                        return ele
+                    else:
+                        part = self.complextypParser(ele,param)
+                        return part
+                    #subNameValueDic[eleName]=self.complextypeParser(ele)
+#                    setattr(complextypeHolderClassInstance, eleName, subclomplextypeClassInstance)
+                elif isinstance(ele, ZSI.TC.Array) :
+                    part = self.arraytypParser(ele, eleValueDefault,param)
+                    return part
+                    
+                else:
+                    if(param == eleName):
+                        print 'matched',param
+                        part = (ele)
+                        return part
+                    #simple type such as string...directly retrieve the value of the element  
+                    subNameValueDic[eleName]=eleValueDefault             
+            return None#subNameValueDic
+    
+    
+        
+    def arraytypParser(self,arraytypeInstance, defaultValueArray,param):
+        '''given arraytype class instance, and its default value [defaultvalues...]
+        if element of array is not simple type then recursively handle traverse the type tree,
+        return [values...]
+        else return defaultValueArray[defaultvalues...]'''
+        
+        
+        if not isinstance(arraytypeInstance, ZSI.TC.Array):
+            raise TypeError, 'First parameter has to be instance of ZSI.TC.Array'
+        else:
+            subValueArray=[]
+            
+            #element instance of array type
+            elementInstance=getattr(arraytypeInstance, 'ofwhat')
+            if isinstance(elementInstance, ZSI.TC.ComplexType):                
+                if defaultValueArray is None:
+                    part = self.complextypParser(elementInstance,param)
+                    return part
+      #              subclomplextypeClassInstance=self.complextypeParser(elementInstance)
+       #             subValueArray.append(subclomplextypeClassInstance)
+                else:
+                    for eleValue in defaultValueArray:
+                        part = self.complextypParser(eleValue,defaulValueArray,param)
+                        subclomplextypeClassInstance=self.complextypeParser(eleValue)
+         #               subValueArray.append(subclomplextypeClassInstance)
+#                    setattr(elementInstance, eleName, subclomplextypeClassInstance)
+            elif isinstance(elementInstance, ZSI.TC.Array) :
+#                print 'arraytype', elementInstance
+                if defaultValueArray is None:
+                    part = self.arraytypParser(elementInstance, None,param)
+          #          subarraytypeClassInstance=self.arraytypeParser(elementInstance, None)
+           #         subValueArray.append(subarraytypeClassInstance)
+                else:
+                    for eleValue in defaultValueArray:
+                        part = self.arraytypParser(copy.deepcopy(elementInstance), eleValue,param)
+            #            subArray=self.arraytypeParser(copy.deepcopy(elementInstance), eleValue)
+             #           subValueArray.append(subArray)
+
+            else:               
+                #simple type such as string...directly return the [value,...]of the arraytypeInstance (default value)       
+                return elementInstance
+            return None
+    
+
+
+#if __name__=="__main__":
+
+
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/msHandler.pyc has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/msHandler.py~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,380 @@
+'''
+@author  Rui Wang
+@see     LICENSE (MIT style license file).
+'''
+
+
+import ZSI.TC
+import copy
+
+__author__="Rui Wang, Chaitanya Guttula"
+
+class MessageHandler:
+    '''handle message class'''        
+    
+    def msAssign(self, msInstance, nameValueDic):
+        '''given message class instance, _name:value tree structure dictionary,
+        assign the values to the correct leaves in the message tree,
+        return message class instance with values'''
+        
+        #get the list of all parts of message
+        partList=getattr(getattr(msInstance, 'typecode'), 'ofwhat')
+        for part in partList:
+            #_name of part of message
+            partName=getattr(part, 'aname') 
+            if partName not in nameValueDic.keys():
+                continue
+            #value assigned to part, can be simple type(directly assign) or tree structure(pass to complextypeAssign() or arraytypeAssign())
+            partValue=nameValueDic[partName]
+            if isinstance(part, ZSI.TC.ComplexType):
+                complextypeHolderClassInstance=self.complextypeAssign(part, partValue)
+                setattr(msInstance, partName, complextypeHolderClassInstance)
+            elif isinstance(part, ZSI.TC.Array) :
+                subArray=self.arraytypeAssign(part, partValue)
+                setattr(msInstance, partName, subArray)
+                print 'the arraay type is : ',subArray
+            else:               
+                #simple type such as string...directly assign the value to the part               
+                setattr(msInstance, partName, partValue)
+        return msInstance
+    
+    def complextypeAssign(self, complextypeInstance, subNameValueDic):
+        '''given complex type instance, subtree of _name:value dictionary
+        traverse the tree structure recursively,
+        return top complextype holder class instance with values filled in'''
+        
+        if not isinstance(complextypeInstance, ZSI.TC.ComplexType):
+            raise TypeError, 'First parameter has to be instance of ZSI.TC.ComplexType'
+        else:
+            complextypeHolderClassInstance=getattr(complextypeInstance,'pyclass')()
+            
+            #element instance list of complex type
+            elementList=getattr(complextypeInstance, 'ofwhat')
+            for ele in elementList:
+            
+                #_name of element of complex type
+                eleName=getattr(ele, 'aname') 
+                if eleName not in subNameValueDic.keys():
+                    continue
+                    
+                #value assigned to element, can be simple type(directly assign) or tree structure(pass to complextypeAssign() or arraytypeAssign())
+                eleValue=subNameValueDic[eleName]
+                if isinstance(ele, ZSI.TC.ComplexType):
+                    subclomplextypeClassInstance=self.complextypeAssign(ele, eleValue)
+                    setattr(complextypeHolderClassInstance, eleName, subclomplextypeClassInstance)
+                elif isinstance(ele, ZSI.TC.Array) :
+                    subArray=self.arraytypeAssign(ele, eleValue)
+                    setattr(complextypeHolderClassInstance, eleName, subArray)
+                else:   
+                            
+                    #simple type such as string...directly assign the value to the element               
+                    setattr(complextypeHolderClassInstance, eleName, eleValue)
+            
+            return complextypeHolderClassInstance
+        
+    def arraytypeAssign(self,arraytypeInstance, subValueArray):
+        '''given arraytype class instance, [values...],
+        recursively handle values,
+        return [arraytypeInstance filled with values]'''
+        
+        
+        if not isinstance(arraytypeInstance, ZSI.TC.Array):
+            raise TypeError, 'First parameter has to be instance of ZSI.TC.Array'
+        else:
+            resultArray=[]
+            if subValueArray is None:
+                return None
+            if subValueArray is []:
+                return []
+            
+            #element instance of array type
+            elementInstance=getattr(arraytypeInstance, 'ofwhat')
+            if isinstance(elementInstance, ZSI.TC.ComplexType):                
+                for eleValue in subValueArray:
+                    subclomplextypeClassInstance=self.complextypeAssign(copy.deepcopy(elementInstance), eleValue)
+                    resultArray.append(subclomplextypeClassInstance)
+            elif isinstance(elementInstance, ZSI.TC.Array) :
+                for eleValue in subValueArray:
+                    subArray=self.arraytypeAssign(copy.deepcopy(elementInstance), eleValue)
+                    resultArray.append(subArray)
+
+            else:  
+                         
+                #simple type such as string...directly return the [value,...]        
+                resultArray=subValueArray
+            
+            return resultArray
+        
+    def msParser(self, msInstance):
+        '''given message class instance,
+        parse the message class tree,
+        return message tree of _name:value dictionary'''
+        
+        nameValueDic={}
+        
+        
+        #get the list of all parts of message
+        partList=getattr(getattr(msInstance, 'typecode'), 'ofwhat')
+        for part in partList:
+        
+            #_name of part of message
+            partName=getattr(part, 'aname')  
+            partValueDefault=getattr(msInstance, partName)
+            
+            #value assigned to part, can be simple type(directly assign) or tree structure(pass to complextypeAssign() or arraytypeAssign())
+#            partValue=nameValueDic[partName]
+#            nameValueDic[partName]=None
+            if isinstance(part, ZSI.TC.ComplexType):
+                nameValueDic[partName]=self.complextypeParser(part)
+            elif isinstance(part, ZSI.TC.Array) :
+                nameValueDic[partName]=self.arraytypeParser(part, partValueDefault)
+            else:               
+                #simple type such as string...directly retrieve the value of the part               
+                nameValueDic[partName]=partValueDefault
+        return nameValueDic
+    
+    def complextypeParser(self, complextypeInstance):
+        '''given complex type class instance, 
+        traverse the tree structure recursively,
+        return subtree of _name:value dictionary'''
+        
+        if not isinstance(complextypeInstance, ZSI.TC.ComplexType):
+            raise TypeError, 'First parameter has to be instance of ZSI.TC.ComplexType'
+        else:
+            subNameValueDic={}
+            complextypeHolderClassInstance=getattr(complextypeInstance,'pyclass')()
+            #element instance list of complex type
+            elementList=getattr(complextypeInstance, 'ofwhat')
+            for ele in elementList:
+                #_name of element of complex type
+                eleName=getattr(ele, 'aname')  
+                eleValueDefault=getattr(complextypeHolderClassInstance,eleName)
+                print eleName
+                #value assigned to element, can be simple type(directly assign) or tree structure(pass to complextypeAssign() or arraytypeAssign())
+#                eleValue=subNameValueDic[eleName]
+                if isinstance(ele, ZSI.TC.ComplexType):
+                    if(getattr(ele,'maxOccurs')=='unbounded'):   # Handling element with maxOccurances as unbounded and type as complextype
+                        print 'arraytype',eleName
+                        tempArray=[]
+                        sub = self.complextypeParser(ele)
+                        tempArray.append(sub)
+                        print 'array is : ',tempArray
+                        subNameValueDic[eleName]=tempArray  #tempArray.append(sub)#self.arraytypeParser(ele, eleValueDefault)
+                    else:
+                        print 'complextype', eleName
+                        subNameValueDic[eleName]=self.complextypeParser(ele)
+                elif isinstance(ele, ZSI.TC.Array):
+                    print 'arraytype', eleValueDefault
+                    subNameValueDic[eleName]=self.arraytypeParser(ele, eleValueDefault)
+                else:               
+                    subNameValueDic[eleName] = eleValueDefault             
+            
+            return subNameValueDic
+    
+        
+    def arraytypeParser(self,arraytypeInstance, defaultValueArray):
+        '''given arraytype class instance, and its default value [defaultvalues...]
+        if element of array is not simple type then recursively handle traverse the type tree,
+        return [values...]
+        else return defaultValueArray[defaultvalues...]'''
+        
+        
+        if (not isinstance(arraytypeInstance, ZSI.TC.Array)): #or (getattr(arraytypeInstance,'maxOccurs')!='unbounded') :
+            raise TypeError, 'First parameter has to be instance of ZSI.TC.Array'
+        else:
+            subValueArray=[]
+            
+            
+            #element instance of array type
+            elementInstance=getattr(arraytypeInstance, 'ofwhat')
+            if isinstance(elementInstance, ZSI.TC.ComplexType):                
+                if defaultValueArray is None:
+                    subclomplextypeClassInstance=self.complextypeParser(elementInstance)
+                    subValueArray.append(subclomplextypeClassInstance)
+                else:
+                    for eleValue in defaultValueArray:
+                        subclomplextypeClassInstance=self.complextypeParser(eleValue)
+                        subValueArray.append(subclomplextypeClassInstance)
+            elif isinstance(elementInstance, ZSI.TC.Array) :
+                if defaultValueArray is None:
+                    subarraytypeClassInstance=self.arraytypeParser(elementInstance, None)
+                    subValueArray.append(subarraytypeClassInstance)
+                else:
+                    for eleValue in defaultValueArray:
+                        subArray=self.arraytypeParser(copy.deepcopy(elementInstance), eleValue)
+                        subValueArray.append(subArray)
+
+            else:               
+                #simple type such as string...directly return the [value,...]of the arraytypeInstance (default value)       
+                subValueArray=defaultValueArray
+            
+            return subValueArray
+            
+    
+    def flatten(self,obj):
+        if obj is None:
+            return None
+        elif hasattr(obj, '__dict__') and obj.__dict__:
+            return dict([(k, self.flatten(v)) for (k, v) in obj.__dict__.items()])
+        if isinstance(obj, (dict,)):
+            return dict([(k, self.flatten(v)) for (k, v) in obj.items()])
+        elif isinstance(obj, (list,)):
+            return [self.flatten(x) for x in obj]
+        elif isinstance(obj, (tuple,)):
+            return tuple([flatten(x) for x in obj])
+        else:
+            return obj
+            
+    def getParameter(self, msInstance,param):
+        '''given message class instance, and parameter
+        parse the message class tree,
+        return the element '''
+        nameValueDic={}
+        plist = []
+        if(param.find('|0|')>-1):
+            s = param.split('|0|')
+            print 'found |0|',s
+            for l in s:
+                if(l.find('|')>-1):
+                    t = l.split('|')
+                    print 'found |',t
+                    for i in t:
+                        print 'i',i
+                        plist.append(i)
+                else:
+                    plist.append(l)
+        elif(param.find('|')>-1):
+            plist = param.split('|')
+        else:
+            partlist = getattr(getattr(msInstance , 'typecode'),'ofwhat')
+            for part in partlist:
+                if param == getattr(part,'aname'):
+                    print part
+                    return part
+            
+        
+        element = None
+        #get the list of all parts of message
+        partList=getattr(getattr(msInstance, 'typecode'), 'ofwhat')
+        for part in partList:
+            #_name of part of message
+            partName=getattr(part, 'aname') 
+                
+            if(partName == plist[0]):
+                
+                partname=getattr(part,'pname') 
+                partValueDefault=getattr(msInstance, partName)
+                break
+            #value assigned to part, can be simple type(directly assign) or tree structure(pass to complextypeAssign() or arraytypeAssign())
+#            partValue=nameValueDic[partName]
+#            nameValueDic[partName]=None
+        if isinstance(part, ZSI.TC.ComplexType):
+            print 'complextype', getattr(part,'aname')#plist[-1]
+            sp = ( self.complextypParser(part,plist[-1]))
+            if(sp !=None):
+                element = sp
+                
+        elif isinstance(part, ZSI.TC.Array) :
+                element = self.arraytypParser(part, partValueDefault,plist[-1])
+                #nameValueDic[partName]=self.arraytypeParser(part, partValueDefault,param)
+        else:               
+                #simple type such as string...directly retrieve the value of the part               
+            if(partName == plist[-1]):
+                element = part
+        print 'spart',element
+        res = getattr(element,'nillable')
+        print res
+        return element
+    
+    def complextypParser(self, complextypeInstance,param):
+        '''given complex type class instance, and paramater name 
+        traverse the tree structure recursively,
+        return the element with parameter name'''
+        part =None
+        if not isinstance(complextypeInstance, ZSI.TC.ComplexType):
+            raise TypeError, 'First parameter has to be instance of ZSI.TC.ComplexType'
+        else:
+            subNameValueDic={}
+            complextypeHolderClassInstance=getattr(complextypeInstance,'pyclass')()
+            #element instance list of complex type
+            elementList=getattr(complextypeInstance, 'ofwhat')
+            
+            for ele in elementList:
+                #_name of element of complex type
+                eleName=getattr(ele, 'aname') 
+                eleValueDefault=getattr(complextypeHolderClassInstance, eleName)
+                #value assigned to element, can be simple type(directly assign) or tree structure(pass to complextypeAssign() or arraytypeAssign())
+#                eleValue=subNameValueDic[eleName]
+                if isinstance(ele, ZSI.TC.ComplexType):
+
+                    if getattr(ele,'aname') == param:
+                        print 'returning the middle complex type'
+                        return ele
+                    else:
+                        part = self.complextypParser(ele,param)
+                        return part
+                    #subNameValueDic[eleName]=self.complextypeParser(ele)
+#                    setattr(complextypeHolderClassInstance, eleName, subclomplextypeClassInstance)
+                elif isinstance(ele, ZSI.TC.Array) :
+                    part = self.arraytypParser(ele, eleValueDefault,param)
+                    return part
+                    
+                else:
+                    if(param == eleName):
+                        print 'matched',param
+                        part = (ele)
+                        return part
+                    #simple type such as string...directly retrieve the value of the element  
+                    subNameValueDic[eleName]=eleValueDefault             
+            return None#subNameValueDic
+    
+    
+        
+    def arraytypParser(self,arraytypeInstance, defaultValueArray,param):
+        '''given arraytype class instance, and its default value [defaultvalues...]
+        if element of array is not simple type then recursively handle traverse the type tree,
+        return [values...]
+        else return defaultValueArray[defaultvalues...]'''
+        
+        
+        if not isinstance(arraytypeInstance, ZSI.TC.Array):
+            raise TypeError, 'First parameter has to be instance of ZSI.TC.Array'
+        else:
+            subValueArray=[]
+            
+            #element instance of array type
+            elementInstance=getattr(arraytypeInstance, 'ofwhat')
+            if isinstance(elementInstance, ZSI.TC.ComplexType):                
+                if defaultValueArray is None:
+                    part = self.complextypParser(elementInstance,param)
+                    return part
+      #              subclomplextypeClassInstance=self.complextypeParser(elementInstance)
+       #             subValueArray.append(subclomplextypeClassInstance)
+                else:
+                    for eleValue in defaultValueArray:
+                        part = self.complextypParser(eleValue,defaulValueArray,param)
+                        subclomplextypeClassInstance=self.complextypeParser(eleValue)
+         #               subValueArray.append(subclomplextypeClassInstance)
+#                    setattr(elementInstance, eleName, subclomplextypeClassInstance)
+            elif isinstance(elementInstance, ZSI.TC.Array) :
+#                print 'arraytype', elementInstance
+                if defaultValueArray is None:
+                    part = self.arraytypParser(elementInstance, None,param)
+          #          subarraytypeClassInstance=self.arraytypeParser(elementInstance, None)
+           #         subValueArray.append(subarraytypeClassInstance)
+                else:
+                    for eleValue in defaultValueArray:
+                        part = self.arraytypParser(copy.deepcopy(elementInstance), eleValue,param)
+            #            subArray=self.arraytypeParser(copy.deepcopy(elementInstance), eleValue)
+             #           subValueArray.append(subArray)
+
+            else:               
+                #simple type such as string...directly return the [value,...]of the arraytypeInstance (default value)       
+                return elementInstance
+            return None
+    
+
+
+#if __name__=="__main__":
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/paramConverter.py	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,198 @@
+'''
+@author  Rui Wnag, Chaitanya Guttula
+@see     LICENSE (MIT style license file).
+'''
+
+'''
+converter galaxy parameter <-----> user input dictionary for web service
+'|' is the seperator, if the real name contains it, it will cause wrong result in this converter
+'''
+from types import *
+#from galaxy.tools.parameters.basic import *
+
+__author__="Rui Wang"
+
+def nested2flatDict(nestedDic):
+    '''
+    nestedDic is dictionary e.g.{a:{a1:None, a2:None}, b:None, c:[{c1:None, c2:None},{c1:None, c2:None}]}, 
+    converter it into flatDict e.g.
+    {a|a1:TextToolParameter(), a|a2:TextToolParameter(), b:TextToolParameter(), 
+    c|1|c1:TextToolParameter(),c|1|c2:TextToolParameter(), c|2|c1:TextToolParameter(),c|2|c2:TextToolParameter()}
+    seperator is |, not /
+    '''
+    if nestedDic is None or len(nestedDic) == 0:
+        return {};
+    flatDic={}
+    
+    for key, value in nestedDic.iteritems():
+        if type(value) is DictType:
+            dicRecur(key, value, flatDic);
+        elif type(value) is ListType:
+            listRecur(key, value, flatDic);
+        elif value is None:
+            flatDic[key]=None#TextToolParameter(None, XML( '<param name="' + str(key) + '" type="text" size="10" value="default" />' ) )
+        else:
+            flatDic[key]=str(value)
+    return flatDic
+
+def dicRecur(prefix, dic, flatDic):
+    '''
+    '''
+    if dic is None or len(dic) == 0:
+        raise ValueError, 'dic is empty'
+    i=0;
+    for key, value in dic.items():
+        if type(value) is DictType:
+            #print key
+            dicRecur(prefix+"|"+key, value, flatDic);
+        elif type(value) is ListType:
+            listRecur(prefix+"|"+key, value, flatDic);
+        elif value is None:
+            #print 'key',key
+            #if (key.find('$')>-1):
+            #    vlist = key.split('$')
+            #    key = ''.join(vlist)
+            
+                #print 'key',key
+           #     flatDic[prefix+"|_"+str(i)+"|"+key]=None
+            #    i=i+1
+            #else:
+            flatDic[prefix+"|"+key]=None#TextToolParameter(None, XML( '<param name="' + str(prefix) + '|' + str(key) + '" type="text" size="10" value="default" />' ) )
+        else:
+            #print prefix
+            #if (key.find('$')>-1):
+            #    vlist = key.split('$')
+            #    key = ''.join(vlist)
+            
+            #    print 'key',key
+            #    flatDic[prefix+"|_"+str(i)+"|"+key]=None
+            #    i=i+1
+            #else:
+                flatDic[prefix+"|"+key]=str(value)
+            
+def listRecur(prefix, list, flatDic):
+    ''''''
+    
+    #You are expecting this list to contain a complexType.
+    #When it doesn't you raise a ValueError.
+    #If the list contains a simpletype then we add |$|
+    # when flatenning.
+    if list is None or len(list)==0:
+        flatDic[prefix+'|$|'] = [];
+        return [];
+    i=0
+    for value in list:
+        if type(value) is DictType:
+            #print prefix
+            dicRecur(prefix+"|"+str(i), value, flatDic);
+        #else:#if type(value) is ListType:
+         #   if prefix+'|0|' not in flatDic:
+        #        flatDic[prefix+'|0|'] = []
+        #    flatDic[prefix+'|0|'].append(value)
+        #    return ;
+            i += 1;
+
+def flat2nestedDict(flatDic):
+    '''the flatDic has value in it
+    converter it to nested dictionary'''
+    if flatDic is None or flatDic=={}: 
+        raise ValueError, 'flatDic is empty'
+    nestedDic = {};
+    for key, value in flatDic.iteritems() :
+        key_arr = key.split('|');
+        print key_arr
+        last_idx = len(key_arr) - 1;
+        sub_dic = nestedDic;
+        if last_idx != 0 :
+            i = 0;
+            # Iterates over the split values of a single key
+            while i < last_idx :
+                
+                try :
+                    key_int = int(key_arr[i]); # checking if the split value of key is number (true only if it )
+                    if key_int >= len(sub_dic) :
+                        for j in range(key_int - len(sub_dic) + 1) :
+                            sub_dic.append({});
+                    sub_dic = sub_dic[key_int];
+                 
+                except ValueError :
+ 
+                    #If the split value is not present in thhe subdic
+                    if key_arr[i] == '$':
+                      print '$ is there'#,nestedDic  
+                    else:
+                      if key_arr[i] not in sub_dic :
+                        try :
+                            key_int = int(key_arr[i + 1]); # Ckecking of the next split value in key is number
+                            
+                            # Executed if the key is or array type key
+                            sub_list = [];
+                            sub_dic[key_arr[i]] = sub_list;                            
+                            for j in range(key_int + 1) :
+                                sub_list.append({});
+                            sub_dic = sub_list[key_int];
+                            i += 1;
+                            
+                        except ValueError : # 2 consicutive split values in key are not numerical value (i.e not array)
+                            if key_arr[last_idx-1] == '$' :
+                                if i == last_idx-2 :
+                                    print 'Found the value',key_arr[i]
+                                else:
+                                    temp = {};
+                                    sub_dic[key_arr[i]] = temp;
+                                    sub_dic = temp;
+                                    
+                            else:   
+                                temp = {};
+                                sub_dic[key_arr[i]] = temp;
+                                sub_dic = temp;
+                                    
+                    # If the split value is present in the subdir then create a new subdic with
+                      else :  
+                        sub_dic = nestedDic[key_arr[i]];
+                        
+                i += 1;
+        if value == '' :
+            value = None;
+        if key_arr[last_idx-1] == '$':
+            templist=[];
+            if value != []: 
+                if value.find(',')>-1:
+                    vlist = value.split(',')
+                    for l in vlist:
+                        templist.append(l);
+                else:
+                    templist.append(value);
+            sub_dic[key_arr[last_idx-2]] = templist;
+        else:
+            sub_dic[key_arr[last_idx]] = value;
+            
+        # If the leaf node is basic array type
+        #if key_arr[last_idx] == '':
+        #    sub_dic[key_arr[last_idx-2]].append(value);
+        #else:
+        #    sub_dic[key_arr[last_idx]] = value;            
+        
+    return nestedDic
+            
+#testing this module only, before run below test, please comment line 6,30,33,50,53, and uncomment line 29,32,49,52, since they will use other modules of galaxy
+if __name__=="__main__":
+
+#    nestedDic={'_params':{ '_program' : 'blastp', '_database' :'swissprot', '_email' :'riververy@yahoo.com', '_async': 1}, '_content':[{'_type':'sequence', '_content':'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'},{'_type':'ss', '_content':'bbbbbbbbbbbbbbbb'}]}
+    nestedDic={'_params':{ '_program' : 'blastp', '_database' :{'_string':[]}, '_email' :'riververy@yahoo.com', '_async': '', '_test':[{'_name':'chaithu'},{'_name':'srinivas'}]}, '_content':[{'_type':'sequence', '_content':'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'},{'_type':'ss', '_content':'bbbbbbbbbbbbbbbb'}]}
+    #flatdic = nested2flatDict(nestedDic)
+    #print flatdic
+    flatDic={'_parameters|_program': 'blastp', '_parameters|_stype': 'protein', '_parameters|_sequence': 'MKLSKRYRFWQKVIKALGVLALIATLVLVVYLYKLGILNDSNELKDLVHKYEFWGPMIFIVAQIVQIVFPVIPGGVTTVAGFLIFGPTLGFIYNYIGIIIGSVILFWLVKFYGRKFVLLF', '_email': 'chaitanya.g86@gmail.com', '_parameters|_database|_string|$|': 'uniprotkb,swissprot'}
+#{'_params|_email': 'riververy@yahoo.com', '_params|_database': 'swissprot', '_params|_async': '1', '_content|0|_type': 'sequence', '_content|1|_type': 'ss','_params|_program|0|': 'hrllo', '_content|1|_content':'bbbbbbbbbbbbbbbb', '_content|0|_content': 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'}
+    print flat2nestedDict(flatDic)
+            
+            
+            
+            
+            
+            
+            
+            
+            
+            
+            
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/paramConverter.pyc has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/paramConverter.py~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,198 @@
+'''
+@author  Rui Wnag, Chaitanya Guttula
+@see     LICENSE (MIT style license file).
+'''
+
+'''
+converter galaxy parameter <-----> user input dictionary for web service
+'|' is the seperator, if the real name contains it, it will cause wrong result in this converter
+'''
+from types import *
+#from galaxy.tools.parameters.basic import *
+
+__author__="Rui Wang"
+
+def nested2flatDict(nestedDic):
+    '''
+    nestedDic is dictionary e.g.{a:{a1:None, a2:None}, b:None, c:[{c1:None, c2:None},{c1:None, c2:None}]}, 
+    converter it into flatDict e.g.
+    {a|a1:TextToolParameter(), a|a2:TextToolParameter(), b:TextToolParameter(), 
+    c|1|c1:TextToolParameter(),c|1|c2:TextToolParameter(), c|2|c1:TextToolParameter(),c|2|c2:TextToolParameter()}
+    seperator is |, not /
+    '''
+    if nestedDic is None or len(nestedDic) == 0:
+        return {};
+    flatDic={}
+    
+    for key, value in nestedDic.iteritems():
+        if type(value) is DictType:
+            dicRecur(key, value, flatDic);
+        elif type(value) is ListType:
+            listRecur(key, value, flatDic);
+        elif value is None:
+            flatDic[key]=None#TextToolParameter(None, XML( '<param name="' + str(key) + '" type="text" size="10" value="default" />' ) )
+        else:
+            flatDic[key]=str(value)
+    return flatDic
+
+def dicRecur(prefix, dic, flatDic):
+    '''
+    '''
+    if dic is None or len(dic) == 0:
+        raise ValueError, 'dic is empty'
+    i=0;
+    for key, value in dic.items():
+        if type(value) is DictType:
+            #print key
+            dicRecur(prefix+"|"+key, value, flatDic);
+        elif type(value) is ListType:
+            listRecur(prefix+"|"+key, value, flatDic);
+        elif value is None:
+            #print 'key',key
+            #if (key.find('$')>-1):
+            #    vlist = key.split('$')
+            #    key = ''.join(vlist)
+            
+                #print 'key',key
+           #     flatDic[prefix+"|_"+str(i)+"|"+key]=None
+            #    i=i+1
+            #else:
+            flatDic[prefix+"|"+key]=None#TextToolParameter(None, XML( '<param name="' + str(prefix) + '|' + str(key) + '" type="text" size="10" value="default" />' ) )
+        else:
+            #print prefix
+            #if (key.find('$')>-1):
+            #    vlist = key.split('$')
+            #    key = ''.join(vlist)
+            
+            #    print 'key',key
+            #    flatDic[prefix+"|_"+str(i)+"|"+key]=None
+            #    i=i+1
+            #else:
+                flatDic[prefix+"|"+key]=str(value)
+            
+def listRecur(prefix, list, flatDic):
+    ''''''
+    
+    #You are expecting this list to contain a complexType.
+    #When it doesn't you raise a ValueError.
+    #If the list contains a simpletype then we add |$|
+    # when flatenning.
+    if list is None or len(list)==0:
+        flatDic[prefix+'|$|'] = [];
+        return [];
+    i=0
+    for value in list:
+        if type(value) is DictType:
+            #print prefix
+            dicRecur(prefix+"|"+str(i), value, flatDic);
+        #else:#if type(value) is ListType:
+         #   if prefix+'|0|' not in flatDic:
+        #        flatDic[prefix+'|0|'] = []
+        #    flatDic[prefix+'|0|'].append(value)
+        #    return ;
+            i += 1;
+
+def flat2nestedDict(flatDic):
+    '''the flatDic has value in it
+    converter it to nested dictionary'''
+    if flatDic is None or flatDic=={}: 
+        raise ValueError, 'flatDic is empty'
+    nestedDic = {};
+    for key, value in flatDic.iteritems() :
+        key_arr = key.split('|');
+        print key_arr
+        last_idx = len(key_arr) - 1;
+        sub_dic = nestedDic;
+        if last_idx != 0 :
+            i = 0;
+            # Iterates over the split values of a single key
+            while i < last_idx :
+                
+                try :
+                    key_int = int(key_arr[i]); # checking if the split value of key is number (true only if it )
+                    if key_int >= len(sub_dic) :
+                        for j in range(key_int - len(sub_dic) + 1) :
+                            sub_dic.append({});
+                    sub_dic = sub_dic[key_int];
+                 
+                except ValueError :
+ 
+                    #If the split value is not present in thhe subdic
+                    if key_arr[i] == '$':
+                      print '$ is there'#,nestedDic  
+                    else:
+                      if key_arr[i] not in sub_dic :
+                        try :
+                            key_int = int(key_arr[i + 1]); # Ckecking of the next split value in key is number
+                            
+                            # Executed if the key is or array type key
+                            sub_list = [];
+                            sub_dic[key_arr[i]] = sub_list;                            
+                            for j in range(key_int + 1) :
+                                sub_list.append({});
+                            sub_dic = sub_list[key_int];
+                            i += 1;
+                            
+                        except ValueError : # 2 consicutive split values in key are not numerical value (i.e not array)
+                            if key_arr[last_idx-1] == '$' :
+                                if i == last_idx-2 :
+                                    print 'Found the value',key_arr[i]
+                                else:
+                                    temp = {};
+                                    sub_dic[key_arr[i]] = temp;
+                                    sub_dic = temp;
+                                    
+                            else:   
+                                temp = {};
+                                sub_dic[key_arr[i]] = temp;
+                                sub_dic = temp;
+                                    
+                    # If the split value is present in the subdir then create a new subdic with
+                      else :  
+                        sub_dic = nestedDic[key_arr[i]];
+                        
+                i += 1;
+        if value == '' :
+            value = None;
+        if key_arr[last_idx-1] == '$':
+            templist=[];
+            if value != []: 
+                if value.find(',')>-1:
+                    vlist = value.split(',')
+                    for l in vlist:
+                        templist.append(l);
+                else:
+                    templist.append(value);
+            sub_dic[key_arr[last_idx-2]] = templist;
+        else:
+            sub_dic[key_arr[last_idx]] = value;
+            
+        # If the leaf node is basic array type
+        #if key_arr[last_idx] == '':
+        #    sub_dic[key_arr[last_idx-2]].append(value);
+        #else:
+        #    sub_dic[key_arr[last_idx]] = value;            
+        
+    return nestedDic
+            
+#testing this module only, before run below test, please comment line 6,30,33,50,53, and uncomment line 29,32,49,52, since they will use other modules of galaxy
+if __name__=="__main__":
+
+#    nestedDic={'_params':{ '_program' : 'blastp', '_database' :'swissprot', '_email' :'riververy@yahoo.com', '_async': 1}, '_content':[{'_type':'sequence', '_content':'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'},{'_type':'ss', '_content':'bbbbbbbbbbbbbbbb'}]}
+    nestedDic={'_params':{ '_program' : 'blastp', '_database' :{'_string':[]}, '_email' :'riververy@yahoo.com', '_async': '', '_test':[{'_name':'chaithu'},{'_name':'srinivas'}]}, '_content':[{'_type':'sequence', '_content':'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'},{'_type':'ss', '_content':'bbbbbbbbbbbbbbbb'}]}
+    #flatdic = nested2flatDict(nestedDic)
+    #print flatdic
+    flatDic={'_parameters|_program': 'blastp', '_parameters|_stype': 'protein', '_parameters|_sequence': 'MKLSKRYRFWQKVIKALGVLALIATLVLVVYLYKLGILNDSNELKDLVHKYEFWGPMIFIVAQIVQIVFPVIPGGVTTVAGFLIFGPTLGFIYNYIGIIIGSVILFWLVKFYGRKFVLLF', '_email': 'chaitanya.g86@gmail.com', '_parameters|_database|_string|$|': 'uniprotkb,swissprot'}
+#{'_params|_email': 'riververy@yahoo.com', '_params|_database': 'swissprot', '_params|_async': '1', '_content|0|_type': 'sequence', '_content|1|_type': 'ss','_params|_program|0|': 'hrllo', '_content|1|_content':'bbbbbbbbbbbbbbbb', '_content|0|_content': 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'}
+    print flat2nestedDict(flatDic)
+            
+            
+            
+            
+            
+            
+            
+            
+            
+            
+            
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/temp	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,599 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions
+	name="wublast"
+	targetNamespace="http://soap.jdispatcher.ebi.ac.uk"
+	xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+	xmlns:tns="http://soap.jdispatcher.ebi.ac.uk"
+	xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+	xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+	<wsdl:documentation>WU-BLAST stands for Washington University Basic Local Alignment Search Tool. The emphasis of this tool is to find regions of sequence similarity or homology quickly, with minimum loss of sensitivity. This will yield functional and evolutionary clues about the structure and function of your novel sequence. Dr Warren Gish at Washington University released this first &quot;gapped&quot; version of BLAST allowing for gapped alignments and statistics. </wsdl:documentation>
+	<wsdl:types>
+		<xsd:schema xmlns="http://soap.jdispatcher.ebi.ac.uk"
+			xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+			attributeFormDefault="unqualified" elementFormDefault="unqualified"
+			targetNamespace="http://soap.jdispatcher.ebi.ac.uk">
+
+			<xsd:complexType name="InputParameters">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">Input parameters for the tool</xsd:documentation>
+				</xsd:annotation>
+				<xsd:sequence>
+					<xsd:element minOccurs="1"
+						maxOccurs="1" name="program"
+						nillable="false" type="xsd:string">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">Program [The BLAST program to be used for the Sequence Similarity Search.]</xsd:documentation>
+						</xsd:annotation>
+					</xsd:element>
+					<xsd:element minOccurs="0"
+						maxOccurs="1" name="exp"
+						nillable="true" type="xsd:string">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">Expectation value threshold [Limits the number of scores and alignments reported based on the expectation value. This is the maximum number of times the match is expected to occur by chance.]</xsd:documentation>
+						</xsd:annotation>
+					</xsd:element>
+					<xsd:element minOccurs="0"
+						maxOccurs="1" name="alignments"
+						nillable="true" type="xsd:int">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">Alignments [Maximum number of match alignments reported in the result output.]</xsd:documentation>
+						</xsd:annotation>
+					</xsd:element>
+					<xsd:element minOccurs="0"
+						maxOccurs="1" name="scores"
+						nillable="true" type="xsd:int">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">Scores [Maximum number of match score summaries reported in the result output.]</xsd:documentation>
+						</xsd:annotation>
+					</xsd:element>
+					<xsd:element minOccurs="0"
+						maxOccurs="1" name="align"
+						nillable="true" type="xsd:int">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">Align views [Formating for the alignments]</xsd:documentation>
+						</xsd:annotation>
+					</xsd:element>
+					<xsd:element minOccurs="0"
+						maxOccurs="1" name="matrix"
+						nillable="true" type="xsd:string">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">Matrix [The comparison matrix to be used to score alignments when searching the database]</xsd:documentation>
+						</xsd:annotation>
+					</xsd:element>
+					<xsd:element minOccurs="0"
+						maxOccurs="1" name="stats"
+						nillable="true" type="xsd:string">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">Statistics [The statistical model to use for assessing the significance of the hits found]</xsd:documentation>
+						</xsd:annotation>
+					</xsd:element>
+					<xsd:element minOccurs="0"
+						maxOccurs="1" name="sensitivity"
+						nillable="true" type="xsd:string">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">Sensitivity [Increasing the sensitivity will increase the length of the search (longer execution times + more memory required), but increase the specificity of the results. A decrease will significantly speed up the search but decrease the sensitivity of the results.]</xsd:documentation>
+						</xsd:annotation>
+					</xsd:element>
+					<xsd:element minOccurs="0"
+						maxOccurs="1" name="topcombon"
+						nillable="true" type="xsd:string">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">topcomboN [Topcombo processing causes consistent sets of HSPs to be reported, such that any given HSP is allowed to be a member of just one set. Often, one wishes to see just the best set of consistent HSPs without any other &quot;contaminants&quot; in the output. This would be topcomboN=1.]</xsd:documentation>
+						</xsd:annotation>
+					</xsd:element>
+					<xsd:element minOccurs="0"
+						maxOccurs="1" name="viewfilter"
+						nillable="true" type="xsd:boolean">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">View Filtered Sequence [When set to &quot;yes&quot; the query sequence used for the search, post filtering, is shown in the output file.]</xsd:documentation>
+						</xsd:annotation>
+					</xsd:element>
+					<xsd:element minOccurs="0"
+						maxOccurs="1" name="filter"
+						nillable="true" type="xsd:string">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">Filter [Filter regions of low sequence complexity. This can avoid issues with low complexity sequences where matches are found due to composition rather than meaningful sequence similarity. However in some cases filtering also masks regions of interest and so should be used with caution.]</xsd:documentation>
+						</xsd:annotation>
+					</xsd:element>
+					<xsd:element minOccurs="0"
+						maxOccurs="1" name="strand"
+						nillable="true" type="xsd:string">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">Nucleotide strand [For nucleotide sequences specify the sequence strand to be used for the search. By default both upper (provided) and lower (reverse complement of provided) strands are used, for single stranded sequences searching with only the upper or lower strand may provide better results.]</xsd:documentation>
+						</xsd:annotation>
+					</xsd:element>
+					<xsd:element minOccurs="0"
+						maxOccurs="1" name="sort"
+						nillable="true" type="xsd:string">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">Sort [Sorts the scores in the score list of the output file.]</xsd:documentation>
+						</xsd:annotation>
+					</xsd:element>
+					<xsd:element minOccurs="1"
+						maxOccurs="1" name="stype"
+						nillable="false" type="xsd:string">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">Sequence type [Indicates if the sequence is protein or DNA/RNA.]</xsd:documentation>
+						</xsd:annotation>
+					</xsd:element>
+					<xsd:element minOccurs="1"
+						maxOccurs="1" name="sequence"
+						nillable="false" type="xsd:string">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">Sequence [The query sequence can be entered directly into this form. The sequence can be be in GCG, FASTA, EMBL, GenBank, PIR, NBRF, PHYLIP or UniProtKB/Swiss-Prot format. A partially formatted sequence is not accepted. Adding a return to the end of the sequence may help certain applications understand the input. Note that directly using data from word processors may yield unpredictable results as hidden/control characters may be present.]</xsd:documentation>
+						</xsd:annotation>
+					</xsd:element>
+					<xsd:element minOccurs="1"
+						maxOccurs="1" name="database"
+						nillable="false" type="ArrayOfString">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">Database [Database]</xsd:documentation>
+						</xsd:annotation>
+					</xsd:element>
+				</xsd:sequence>
+			</xsd:complexType>
+			<xsd:complexType name="ArrayOfString">
+				<xsd:sequence>
+					<xsd:element maxOccurs="unbounded" minOccurs="0" name="string" nillable="true" type="xsd:string"/>
+				</xsd:sequence>
+			</xsd:complexType>
+			<xsd:complexType name="wsResultTypes">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">List of renderers available to output the result of the job</xsd:documentation>
+				</xsd:annotation>
+				<xsd:sequence>
+					<xsd:element maxOccurs="unbounded" minOccurs="0" name="type" type="wsResultType"/>
+				</xsd:sequence>
+			</xsd:complexType>
+			<xsd:complexType name="wsResultType">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">Details about a renderer used to output the result of the job</xsd:documentation>
+				</xsd:annotation>
+				<xsd:sequence>
+					<xsd:element maxOccurs="1" minOccurs="0" nillable="true" name="description" type="xsd:string">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">A short description of the renderer</xsd:documentation>
+						</xsd:annotation>
+					</xsd:element>
+					<xsd:element maxOccurs="1" minOccurs="1" nillable="false" name="fileSuffix" type="xsd:string">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">A suggested file suffix to be used when saving the data formatted by the renderer</xsd:documentation>
+						</xsd:annotation>
+					</xsd:element>
+					<xsd:element maxOccurs="1" minOccurs="1" nillable="false" name="identifier" type="xsd:string">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">The renderer identifier to be used when invoking the getResult() method</xsd:documentation>
+						</xsd:annotation>
+					</xsd:element>
+					<xsd:element maxOccurs="1" minOccurs="0" nillable="true" name="label" type="xsd:string">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">A more appropriate name for the renderer (more meaningful than the identifier)</xsd:documentation>
+						</xsd:annotation>
+					</xsd:element>
+					<xsd:element maxOccurs="1" minOccurs="1" nillable="false" name="mediaType" type="xsd:string">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">The media type (MIME) of the renderer's output</xsd:documentation>
+						</xsd:annotation>
+					</xsd:element>
+				</xsd:sequence>
+			</xsd:complexType>
+			<xsd:complexType name="wsRawOutputParameters">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">A set of parameters passed to a renderer when formatting the data</xsd:documentation>
+				</xsd:annotation>
+				<xsd:sequence>
+					<xsd:element maxOccurs="unbounded" minOccurs="1" name="parameter" type="wsRawOutputParameter" />
+				</xsd:sequence>
+			</xsd:complexType>
+			<xsd:complexType name="wsRawOutputParameter">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">A parameter used by the renderer</xsd:documentation>
+				</xsd:annotation>
+				<xsd:sequence>
+					<xsd:element maxOccurs="1" minOccurs="1" name="name" type="xsd:string">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">The name of the parameter</xsd:documentation>
+						</xsd:annotation>
+					</xsd:element>					
+					<xsd:element maxOccurs="1" minOccurs="1" name="value" type="ArrayOfString">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">The parameter value as an array of String</xsd:documentation>
+						</xsd:annotation>
+					</xsd:element>
+				</xsd:sequence>
+			</xsd:complexType>
+			<xsd:complexType name="wsParameters">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">List the names of the tool parameters</xsd:documentation>
+				</xsd:annotation>
+				<xsd:sequence>
+					<xsd:element maxOccurs="unbounded" minOccurs="0" name="id" type="xsd:string" />
+				</xsd:sequence>
+			</xsd:complexType>
+			<xsd:complexType name="wsParameterDetails">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">Details about a tool parameter</xsd:documentation>
+				</xsd:annotation>
+				<xsd:sequence>
+					<xsd:element minOccurs="0" name="name" type="xsd:string">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">The name of the parameter</xsd:documentation>
+						</xsd:annotation>
+					</xsd:element>
+					<xsd:element minOccurs="0" name="description" type="xsd:string">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">A short description of the parameter</xsd:documentation>
+						</xsd:annotation>
+					</xsd:element>
+					<xsd:element minOccurs="1" maxOccurs="1" name="type" type="xsd:string">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">The type of the parameter</xsd:documentation>
+						</xsd:annotation>
+					</xsd:element>
+					<xsd:element minOccurs="0" name="values" type="tns:wsParameterValues">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">The list of values available for this parameter</xsd:documentation>
+						</xsd:annotation>
+					</xsd:element>
+				</xsd:sequence>
+			</xsd:complexType>
+			<xsd:complexType name="wsParameterValues">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">The list of parameter values</xsd:documentation>
+				</xsd:annotation>
+				<xsd:sequence>
+					<xsd:element maxOccurs="unbounded" minOccurs="0" name="value" type="tns:wsParameterValue" />
+				</xsd:sequence>
+			</xsd:complexType>
+			<xsd:complexType name="wsParameterValue">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">The details about a parameter values</xsd:documentation>
+				</xsd:annotation>
+				<xsd:sequence>
+					<xsd:element minOccurs="0" maxOccurs="1" name="label" type="xsd:string">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">A meaningful label for the parameter value</xsd:documentation>
+						</xsd:annotation>
+					</xsd:element>
+					<xsd:element minOccurs="1" maxOccurs="1" name="value" type="xsd:string">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">The real value</xsd:documentation>
+						</xsd:annotation>
+					</xsd:element>
+					<xsd:element name="defaultValue" type="xsd:boolean">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">A flag indicating whether this value is a default value or not</xsd:documentation>
+						</xsd:annotation>
+					</xsd:element>
+					<xsd:element minOccurs="0" maxOccurs="1" name="properties" type="tns:wsProperties">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">A set of additional properties associated with the parameter value</xsd:documentation>
+						</xsd:annotation>
+					</xsd:element>
+				</xsd:sequence>
+			</xsd:complexType>
+			<xsd:complexType name="wsProperties">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">A set of properties</xsd:documentation>
+				</xsd:annotation>
+				<xsd:sequence>
+					<xsd:element maxOccurs="unbounded" minOccurs="0" name="property" type="tns:wsProperty" />
+				</xsd:sequence>
+			</xsd:complexType>
+			<xsd:complexType name="wsProperty">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">A key/value pair association of information</xsd:documentation>
+				</xsd:annotation>
+				<xsd:sequence>
+					<xsd:element minOccurs="1" maxOccurs="1" name="key" type="xsd:string" />
+					<xsd:element minOccurs="1" maxOccurs="1" name="value" type="xsd:string" />
+				</xsd:sequence>
+			</xsd:complexType>
+			<xsd:element name="run">
+				<xsd:complexType>
+					<xsd:sequence>
+						<xsd:element maxOccurs="1" minOccurs="1"
+							name="email" nillable="false" type="xsd:string">
+							<xsd:annotation>
+								<xsd:documentation xml:lang="en">User email address</xsd:documentation>
+							</xsd:annotation>
+						</xsd:element>
+						<xsd:element maxOccurs="1" minOccurs="0"
+							name="title" nillable="true" type="xsd:string">
+							<xsd:annotation>
+								<xsd:documentation xml:lang="en">A title to identify the analysis job</xsd:documentation>
+							</xsd:annotation>
+						</xsd:element>
+						<xsd:element maxOccurs="1" minOccurs="1"
+							name="parameters" nillable="false" type="InputParameters">
+							<xsd:annotation>
+								<xsd:documentation xml:lang="en">The list of parameters to be used for launching the analysis</xsd:documentation>
+							</xsd:annotation>
+						</xsd:element>
+					</xsd:sequence>
+				</xsd:complexType>
+			</xsd:element>
+			<xsd:element name="runResponse">
+				<xsd:complexType>
+					<xsd:sequence>
+						<xsd:element maxOccurs="1" minOccurs="1"
+							name="jobId" nillable="false"
+							type="xsd:string">
+							<xsd:annotation>
+								<xsd:documentation xml:lang="en">A unique identifier for the analysis job</xsd:documentation>
+							</xsd:annotation>
+						</xsd:element>
+					</xsd:sequence>
+				</xsd:complexType>
+			</xsd:element>
+			<xsd:element name="getStatus">
+				<xsd:complexType>
+					<xsd:sequence>
+						<xsd:element maxOccurs="1" minOccurs="1"
+							name="jobId" nillable="false" type="xsd:string">
+							<xsd:annotation>
+								<xsd:documentation xml:lang="en">An identifier for the job to check</xsd:documentation>
+							</xsd:annotation>
+						</xsd:element>
+					</xsd:sequence>
+				</xsd:complexType>
+			</xsd:element>
+			<xsd:element name="getStatusResponse">
+				<xsd:complexType>
+					<xsd:sequence>
+						<xsd:element maxOccurs="1" minOccurs="1"
+							name="status" nillable="false"
+							type="xsd:string">
+							<xsd:annotation>
+								<xsd:documentation xml:lang="en">The status of the job (FINISHED, ERROR, RUNNING, NOT_FOUND or FAILURE)</xsd:documentation>
+							</xsd:annotation>
+						</xsd:element>
+					</xsd:sequence>
+				</xsd:complexType>
+			</xsd:element>
+			<xsd:element name="getResultTypes">
+				<xsd:complexType>
+					<xsd:sequence>
+						<xsd:element maxOccurs="1" minOccurs="1"
+							name="jobId" nillable="false" type="xsd:string">
+							<xsd:annotation>
+								<xsd:documentation xml:lang="en">An identifier for the job to check</xsd:documentation>
+							</xsd:annotation>
+						</xsd:element>
+					</xsd:sequence>
+				</xsd:complexType>
+			</xsd:element>
+			<xsd:element name="getResultTypesResponse">
+				<xsd:complexType>
+					<xsd:sequence>
+						<xsd:element maxOccurs="1" minOccurs="1"
+							name="resultTypes"
+							type="wsResultTypes">
+							<xsd:annotation>
+								<xsd:documentation xml:lang="en">The list of renderers available</xsd:documentation>
+							</xsd:annotation>
+						</xsd:element>
+					</xsd:sequence>
+				</xsd:complexType>
+			</xsd:element>
+			<xsd:element name="getResult">
+				<xsd:complexType>
+					<xsd:sequence>
+						<xsd:element maxOccurs="1" minOccurs="1"
+							name="jobId" nillable="false" type="xsd:string">
+							<xsd:annotation>
+								<xsd:documentation xml:lang="en">An identifier for the job to check</xsd:documentation>
+							</xsd:annotation>
+						</xsd:element>
+						<xsd:element maxOccurs="1" minOccurs="1"
+							name="type" nillable="false" type="xsd:string">
+							<xsd:annotation>
+								<xsd:documentation xml:lang="en">The renderer to be used to format the output</xsd:documentation>
+							</xsd:annotation>
+						</xsd:element>
+						<xsd:element maxOccurs="1" minOccurs="0"
+							name="parameters" nillable="true" type="wsRawOutputParameters">
+							<xsd:annotation>
+								<xsd:documentation xml:lang="en">A list of parameters to be passed on to the renderer</xsd:documentation>
+							</xsd:annotation>
+						</xsd:element>
+					</xsd:sequence>
+				</xsd:complexType>
+			</xsd:element>
+			<xsd:element name="getResultResponse">
+				<xsd:complexType>
+					<xsd:sequence>
+						<xsd:element maxOccurs="1" minOccurs="1"
+							name="output" nillable="true"
+							type="xsd:base64Binary">
+							<xsd:annotation>
+								<xsd:documentation xml:lang="en">Base64 encoded data corresponding to the output of the job formatted by the renderer</xsd:documentation>
+							</xsd:annotation>
+						</xsd:element>
+					</xsd:sequence>
+				</xsd:complexType>
+			</xsd:element>
+			<xsd:element name="getParameterDetails">
+				<xsd:complexType>
+					<xsd:sequence>
+						<xsd:element minOccurs="1" maxOccurs="1" name="parameterId" type="xsd:string">
+							<xsd:annotation>
+								<xsd:documentation xml:lang="en">The identifier for the parameter</xsd:documentation>
+							</xsd:annotation>
+						</xsd:element>
+					</xsd:sequence>
+				</xsd:complexType>
+			</xsd:element>
+			<xsd:element name="getParameterDetailsResponse">
+				<xsd:complexType>
+					<xsd:sequence>
+						<xsd:element minOccurs="0" name="parameterDetails" type="tns:wsParameterDetails">
+							<xsd:annotation>
+								<xsd:documentation xml:lang="en">The parameter details</xsd:documentation>
+							</xsd:annotation>
+						</xsd:element>
+					</xsd:sequence>
+				</xsd:complexType>
+			</xsd:element>
+			<xsd:element name="getParameters">
+				<xsd:complexType />
+			</xsd:element>
+			<xsd:element name="getParametersResponse">
+				<xsd:complexType>
+					<xsd:sequence>
+						<xsd:element minOccurs="1" maxOccurs="1" name="parameters" type="tns:wsParameters">
+							<xsd:annotation>
+								<xsd:documentation xml:lang="en">The list of parameter available for this tool</xsd:documentation>
+							</xsd:annotation>
+						</xsd:element>
+					</xsd:sequence>
+				</xsd:complexType>
+			</xsd:element>
+		</xsd:schema>
+	</wsdl:types>
+
+
+	<wsdl:message name="runResponse">
+		<wsdl:part name="parameters" element="tns:runResponse"></wsdl:part>
+	</wsdl:message>
+	<wsdl:message name="runRequest">
+		<wsdl:part name="parameters" element="tns:run"></wsdl:part>
+	</wsdl:message>
+	<wsdl:message name="getStatusResponse">
+		<wsdl:part name="parameters" element="tns:getStatusResponse"></wsdl:part>
+	</wsdl:message>
+	<wsdl:message name="getStatusRequest">
+		<wsdl:part name="parameters" element="tns:getStatus"></wsdl:part>
+	</wsdl:message>
+	<wsdl:message name="getResultTypesResponse">
+		<wsdl:part name="parameters" element="tns:getResultTypesResponse"></wsdl:part>
+	</wsdl:message>
+	<wsdl:message name="getResultTypesRequest">
+		<wsdl:part name="parameters" element="tns:getResultTypes"></wsdl:part>
+	</wsdl:message>
+	<wsdl:message name="getResultResponse">
+		<wsdl:part name="parameters" element="tns:getResultResponse"></wsdl:part>
+	</wsdl:message>
+	<wsdl:message name="getResultRequest">
+		<wsdl:part name="parameters" element="tns:getResult"></wsdl:part>
+	</wsdl:message>
+	<wsdl:message name="getParameterDetailsResponse">
+		<wsdl:part element="tns:getParameterDetailsResponse" name="parameters"></wsdl:part>
+	</wsdl:message>
+	<wsdl:message name="getParameterDetailsRequest">
+		<wsdl:part element="tns:getParameterDetails" name="parameters"></wsdl:part>
+	</wsdl:message>
+	<wsdl:message name="getParametersResponse">
+		<wsdl:part element="tns:getParametersResponse" name="parameters"></wsdl:part>
+	</wsdl:message>
+	<wsdl:message name="getParametersRequest">
+		<wsdl:part element="tns:getParameters" name="parameters"></wsdl:part>
+	</wsdl:message>
+
+	<wsdl:portType name="JDispatcherService">
+		<wsdl:operation name="run">
+			<wsdl:documentation>Submit an analysis job</wsdl:documentation>
+			<wsdl:input name="runRequest" message="tns:runRequest"></wsdl:input>
+			<wsdl:output name="runResponse" message="tns:runResponse"></wsdl:output>
+		</wsdl:operation>
+		<wsdl:operation name="getStatus">
+			<wsdl:documentation>Get the status of a submitted job</wsdl:documentation>
+			<wsdl:input name="getStatusRequest" message="tns:getStatusRequest"></wsdl:input>
+			<wsdl:output name="getStatusResponse" message="tns:getStatusResponse"></wsdl:output>
+		</wsdl:operation>
+		<wsdl:operation name="getResultTypes">
+			<wsdl:documentation>Get the list of renderers available to output a job result (i.e. the list of available output types)</wsdl:documentation>
+			<wsdl:input name="getResultTypesRequest" message="tns:getResultTypesRequest"></wsdl:input>
+			<wsdl:output name="getResultTypesResponse" message="tns:getResultTypesResponse"></wsdl:output>
+		</wsdl:operation>
+		<wsdl:operation name="getResult">
+			<wsdl:documentation>Get a job result formatted using a particular renderer</wsdl:documentation>
+			<wsdl:input name="getResultRequest" message="tns:getResultRequest"></wsdl:input>
+			<wsdl:output name="getResultResponse" message="tns:getResultResponse"></wsdl:output>
+		</wsdl:operation>
+		<wsdl:operation name="getParameters">
+			<wsdl:documentation>List the names of the parameters available before submission</wsdl:documentation>
+			<wsdl:input message="tns:getParametersRequest" name="getParametersRequest"></wsdl:input>
+			<wsdl:output message="tns:getParametersResponse" name="getParametersResponse"></wsdl:output>
+		</wsdl:operation>
+		<wsdl:operation name="getParameterDetails">
+			<wsdl:documentation>Get some details about a parameter (e.g. name, description, values, etc.)</wsdl:documentation>
+			<wsdl:input message="tns:getParameterDetailsRequest" name="getParameterDetailsRequest"></wsdl:input>
+			<wsdl:output message="tns:getParameterDetailsResponse" name="getParameterDetailsResponse"></wsdl:output>
+		</wsdl:operation>
+	</wsdl:portType>
+
+	<wsdl:binding name="JDispatcherServiceHttpBinding"
+		type="tns:JDispatcherService">
+		<soap:binding style="document"
+			transport="http://schemas.xmlsoap.org/soap/http" />
+		<wsdl:operation name="run">
+			<wsdl:documentation>Submit an analysis job</wsdl:documentation>
+			<soap:operation soapAction="urn:Run" />
+			<wsdl:input name="runRequest">
+				<soap:body use="literal" />
+			</wsdl:input>
+			<wsdl:output name="runResponse">
+				<soap:body use="literal" />
+			</wsdl:output>
+		</wsdl:operation>
+		<wsdl:operation name="getStatus">
+			<wsdl:documentation>Get the status of a submitted job</wsdl:documentation>
+			<soap:operation soapAction="urn:GetStatus" />
+			<wsdl:input name="getStatusRequest">
+				<soap:body use="literal" />
+			</wsdl:input>
+			<wsdl:output name="getStatusResponse">
+				<soap:body use="literal" />
+			</wsdl:output>
+		</wsdl:operation>
+		<wsdl:operation name="getResultTypes">
+			<wsdl:documentation>Get the list of renderers available to output a job result (i.e. the list of available output types)</wsdl:documentation>
+			<soap:operation soapAction="urn:GetResultTypes" />
+			<wsdl:input name="getResultTypesRequest">
+				<soap:body use="literal" />
+			</wsdl:input>
+			<wsdl:output name="getResultTypesResponse">
+				<soap:body use="literal" />
+			</wsdl:output>
+		</wsdl:operation>
+		<wsdl:operation name="getResult">
+			<wsdl:documentation>Get a job result formatted using a particular renderer</wsdl:documentation>
+			<soap:operation soapAction="urn:GetResult" />
+			<wsdl:input name="getResultRequest">
+				<soap:body use="literal" />
+			</wsdl:input>
+			<wsdl:output name="getResultResponse">
+				<soap:body use="literal" />
+			</wsdl:output>
+		</wsdl:operation>
+		<wsdl:operation name="getParameters">
+			<wsdl:documentation>List the names of the parameters available before submission</wsdl:documentation>
+			<soap:operation soapAction="urn:GetParameters" />
+			<wsdl:input name="getParametersRequest">
+				<soap:body use="literal" />
+			</wsdl:input>
+			<wsdl:output name="getParametersResponse">
+				<soap:body use="literal" />
+			</wsdl:output>
+		</wsdl:operation>
+		<wsdl:operation name="getParameterDetails">
+			<wsdl:documentation>Get some details about a parameter (e.g. name, description, values, etc.)</wsdl:documentation>
+			<soap:operation soapAction="urn:GetParameterDetails" />
+			<wsdl:input name="getParameterDetailsRequest">
+				<soap:body use="literal" />
+			</wsdl:input>
+			<wsdl:output name="getParameterDetailsResponse">
+				<soap:body use="literal" />
+			</wsdl:output>
+		</wsdl:operation>
+	</wsdl:binding>
+
+	<wsdl:service name="JDispatcherService">
+		<wsdl:port name="JDispatcherServiceHttpPort"
+			binding="tns:JDispatcherServiceHttpBinding">
+			<soap:address
+				location="http://www.ebi.ac.uk/Tools/services/soap/wublast" />
+		</wsdl:port>
+	</wsdl:service>
+</wsdl:definitions>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/temp.wsdl	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,631 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Revision: $Id: WSWUBlast.wsdl,v 1.8 2010/10/11 13:25:12 hpm Exp $ -->
+<definitions name="WSWUBlast" targetNamespace="http://www.ebi.ac.uk/WSWUBlast"
+  xmlns="http://schemas.xmlsoap.org/wsdl/"
+  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+  xmlns:tns="http://www.ebi.ac.uk/WSWUBlast"
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+  xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
+  <documentation>WSWUBlast: WU-BLAST sequence similarity searches (see http://www.ebi.ac.uk/Tools/webservices/services/wublast)</documentation>
+  <types>
+    <schema xmlns="http://www.w3.org/2001/XMLSchema"
+      targetNamespace="http://www.ebi.ac.uk/WSWUBlast"
+      xmlns:tns="http://www.ebi.ac.uk/WSWUBlast"
+      xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+      xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+      xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
+      <xsd:complexType name="inputParams">
+        <xsd:annotation>
+          <xsd:documentation xml:lang="en">Input parameters for tool, see	http://www.ebi.ac.uk/Tools/webservices/services/wublast#inputparams for details.</xsd:documentation>
+        </xsd:annotation>
+        <xsd:all>
+          <xsd:element name="program" nillable="false" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation xml:lang="en">Search program.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:element>
+          <xsd:element name="database" nillable="false" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation xml:lang="en">Database to search.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:element>
+          <xsd:element name="matrix" nillable="true" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation xml:lang="en">Scoring matrix.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:element>
+          <xsd:element name="exp" nillable="true" type="xsd:float">
+            <xsd:annotation>
+              <xsd:documentation xml:lang="en">Expectation threshold.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:element>
+          <xsd:element name="echofilter" nillable="true" type="xsd:boolean">
+            <xsd:annotation>
+              <xsd:documentation xml:lang="en">Include filtered input sequence in output.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:element>
+          <xsd:element name="filter" nillable="true" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation xml:lang="en">Low complexity filter for input sequence.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:element>
+          <xsd:element name="numal" nillable="true" type="xsd:int">
+            <xsd:annotation>
+              <xsd:documentation xml:lang="en">Maximum number of alignments in output.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:element>
+          <xsd:element name="scores" nillable="true" type="xsd:int">
+            <xsd:annotation>
+              <xsd:documentation xml:lang="en">Maximum number of scores in output.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:element>
+          <xsd:element name="sensitivity" nillable="true" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation xml:lang="en">Search sensitivity.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:element>
+          <xsd:element name="sort" nillable="true" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation xml:lang="en">Sort order for hits.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:element>
+          <xsd:element name="stats" nillable="true" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation xml:lang="en">Search statistics.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:element>
+          <xsd:element name="strand" nillable="true" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation xml:lang="en">Search strand for nucleotide sequences.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:element>
+          <xsd:element name="outformat" nillable="true" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation xml:lang="en">Not used.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:element>
+          <xsd:element name="topcombon" nillable="true" type="xsd:int">
+            <xsd:annotation>
+              <xsd:documentation xml:lang="en">Consistant sets of HSPs to report.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:element>
+          <xsd:element name="appxml" nillable="true" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation xml:lang="en">Generate application XML.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:element>
+          <xsd:element name="async" nillable="true" type="xsd:boolean">
+            <xsd:annotation>
+              <xsd:documentation xml:lang="en">Asynchronous submission.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:element>
+          <xsd:element name="email" nillable="false" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation xml:lang="en">User e-mail address.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:element>
+        </xsd:all>
+      </xsd:complexType>
+      <xsd:complexType name="data">
+         <xsd:annotation>
+           <xsd:documentation xml:lang="en">Input data for tool, see http://www.ebi.ac.uk/Tools/webservices/services/wublast#data for details.</xsd:documentation>
+         </xsd:annotation>
+        <xsd:all>
+          <xsd:element name="type" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation xml:lang="en">Input data type.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:element>
+          <xsd:element name="content" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation xml:lang="en">Input data.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:element>
+        </xsd:all>
+      </xsd:complexType>
+      <xsd:complexType name="ArrayOf_xsd_string">
+        <xsd:complexContent>
+          <xsd:restriction base="soapenc:Array">
+            <xsd:attribute ref="soapenc:arrayType" wsdl:arrayType="xsd:string[]"/>
+          </xsd:restriction>
+        </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:complexType name="WSArrayofFile">
+        <xsd:complexContent>
+          <xsd:restriction base="soapenc:Array">
+            <xsd:attribute ref="soapenc:arrayType" wsdl:arrayType="tns:WSFile[]"/>
+          </xsd:restriction>
+        </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:complexType name="WSArrayofData">
+        <xsd:complexContent>
+          <xsd:restriction base="soapenc:Array">
+            <xsd:attribute ref="soapenc:arrayType" wsdl:arrayType="tns:data[]"/>
+          </xsd:restriction>
+        </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:complexType name="WSFile">
+        <xsd:annotation>
+          <xsd:documentation xml:lang="en">Result data type description, see http://www.ebi.ac.uk/Tools/webservices/services/wublast#wsfile for details.</xsd:documentation>
+        </xsd:annotation>
+        <xsd:all>
+          <xsd:element name="type" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation xml:lang="en">Result type name.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:element>
+          <xsd:element name="ext" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation xml:lang="en">File extension for result type</xsd:documentation>
+            </xsd:annotation>
+          </xsd:element>
+        </xsd:all>
+      </xsd:complexType>
+      <xsd:complexType name="outData">
+        <xsd:annotation>
+          <xsd:documentation xml:lang="en">Description of input options, see http://www.ebi.ac.uk/Tools/webservices/services/wublast#outdata for details.</xsd:documentation>
+        </xsd:annotation>
+        <xsd:all>
+          <xsd:element name="print_name" nillable="false" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation xml:lang="en">Name to display in a user interface</xsd:documentation>
+            </xsd:annotation>
+          </xsd:element>
+          <xsd:element name="name" nillable="false" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation xml:lang="en">Name to be passed as the option value.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:element>
+          <xsd:element name="selected" nillable="true" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation xml:lang="en">Yes/no flag indicating if this is the default value.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:element>
+          <xsd:element name="data_type" nillable="true" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation xml:lang="en">The type of data being searched.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:element>
+          <xsd:element name="input_type" nillable="true" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation xml:lang="en">The type of input data.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:element>
+          <xsd:element name="search_type" nillable="true" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation xml:lang="en">The type of search performed.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:element>
+        </xsd:all>
+      </xsd:complexType>
+      <xsd:complexType name="WSArrayofoutData">
+        <xsd:complexContent>
+          <xsd:restriction base="soapenc:Array">
+            <xsd:attribute ref="soapenc:arrayType" wsdl:arrayType="tns:outData[]"/>
+          </xsd:restriction>
+        </xsd:complexContent>
+      </xsd:complexType>
+    </schema>
+  </types>
+  <message name="statusRequest">
+    <part name="jobid" type="xsd:string"/>
+  </message>
+  <message name="statusResponse">
+    <part name="status" type="xsd:string"/>
+  </message>
+  <message name="resultsRequest">
+    <part name="jobid" type="xsd:string" />
+  </message>
+  <message name="resultsResponse">
+    <part name="results" type="tns:WSArrayofFile"/>
+  </message>
+  <message name="pollRequest">
+    <part name="jobid" type="xsd:string"/>
+    <part name="type" type="xsd:string"/>
+  </message>
+  <message name="pollResponse">
+    <part name="result" type="xsd:base64Binary"/>
+  </message>
+  <message name="getIdsRequest">
+    <part name="jobid" type="xsd:string"/>
+  </message>
+  <message name="getIdsResponse">
+    <part name="result" type="tns:ArrayOf_xsd_string"/>
+  </message>
+  <message name="getMatricesRequest">  
+  </message>
+  <message name="getMatricesResponse">
+    <part name="result" type="tns:WSArrayofoutData"/>	
+  </message>
+  <message name="getProgramsRequest"> 
+  </message>
+  <message name="getProgramsResponse">
+    <part name="result" type="tns:WSArrayofoutData"/>	
+  </message>
+  <message name="getDatabasesRequest">   
+  </message>
+  <message name="getDatabasesResponse">
+    <part name="result" type="tns:WSArrayofoutData"/>	
+  </message>
+  <message name="getSortRequest"> 
+  </message>
+  <message name="getSortResponse">
+    <part name="result" type="tns:WSArrayofoutData"/>	
+  </message>
+  <message name="getStatsRequest"> 
+  </message>
+  <message name="getStatsResponse">
+    <part name="result" type="tns:WSArrayofoutData"/>	
+  </message>
+  <message name="getXmlFormatsRequest"> 
+  </message>
+  <message name="getXmlFormatsResponse">
+    <part name="result" type="tns:WSArrayofoutData"/>	
+  </message>
+  <message name="getSensitivityRequest"> 
+  </message>
+  <message name="getSensitivityResponse">
+    <part name="result" type="tns:WSArrayofoutData"/>	
+  </message>
+  <message name="getFiltersRequest"> 
+  </message>
+  <message name="getFiltersResponse">
+    <part name="result" type="tns:WSArrayofoutData"/>	
+  </message>
+  <message name="blastp">
+    <part name="database" type="xsd:string"/>
+    <part name="sequence" type="xsd:string"/>
+    <part name="email" type="xsd:string"/>
+  </message>
+  <message name="blastpResponse">
+    <part name="jobid" type="xsd:string"/>
+  </message>
+  <message name="blastn">
+    <part name="database" type="xsd:string"/>
+    <part name="sequence" type="xsd:string"/>
+    <part name="email" type="xsd:string"/>
+  </message>
+  <message name="blastnResponse">
+    <part name="jobid" type="xsd:string"/>
+  </message>
+  <message name="getOutput">
+    <part name="jobid" type="xsd:string"/>
+  </message>
+  <message name="getOutputResponse">
+    <part name="result" type="xsd:string"/>
+  </message>
+  <message name="getXML">
+    <part name="jobid" type="xsd:string"/>
+  </message>
+  <message name="getXMLResponse">
+    <part name="result" type="xsd:string"/>
+  </message>
+  <message name="runWUBlastRequest">
+    <part name="params" type="tns:inputParams"/>
+    <part name="content" type="tns:WSArrayofData"/>
+  </message>
+  <message name="runWUBlastResponse">
+    <part name="jobid" type="xsd:string"/>
+  </message>
+  <message name="polljobRequest">
+    <part name="jobid" type="xsd:string"/>
+    <part name="outformat" type="xsd:string"/>
+  </message>
+  <message name="polljobResponse">
+    <part name="result" type="xsd:base64Binary"/>
+  </message>
+  <message name="doWUBlastRequest">
+    <part name="params" type="tns:inputParams"/>
+    <part name="content" type="xsd:base64Binary"/>
+  </message>
+  <message name="doWUBlastResponse">
+    <part name="result" type="xsd:base64Binary"/>
+  </message>
+  <portType name="WSWUBlast">
+    <operation name="blastp" parameterOrder="database sequence email">
+      <documentation>Submit a protein sequence vs. protein database search (blastp) using default parameters. See http://www.ebi.ac.uk/Tools/webservices/services/wublast#blastp_database_sequence_email</documentation>
+      <input name="blastp" message="tns:blastp">
+      </input>
+      <output name="blastpResponse" message="tns:blastpResponse">
+      </output>
+    </operation>
+    <operation name="blastn" parameterOrder="database sequence email">
+      <documentation>Submit a nucleotide sequence vs. nucleotide database search (blastn) using default parameters. See http://www.ebi.ac.uk/Tools/webservices/services/wublast#blastn_database_sequence_email</documentation>
+      <input name="blastn" message="tns:blastn">
+      </input>
+      <output name="blastnResponse" message="tns:blastnResponse">
+      </output>
+    </operation>
+    <operation name="getOutput" parameterOrder="jobid">
+      <documentation>Get plain text output for a job (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#getoutput_jobid)</documentation>
+      <input name="getOutput" message="tns:getOutput">
+      </input>
+      <output name="getOutputResponse" message="tns:getOutputResponse">
+      </output>
+    </operation>
+    <operation name="getXML" parameterOrder="jobid">
+      <documentation>Get XML output for a job (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#getxml_jobid)</documentation>
+      <input name="getXML" message="tns:getXML"></input>
+      <output name="getXMLResponse" message="tns:getXMLResponse"></output>
+    </operation>
+    <operation name="runWUBlast" parameterOrder="params content">
+      <documentation>Submit a WU-BLAST job (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#runwublast_params_content)</documentation>
+      <input name="runWUBlastRequest" message="tns:runWUBlastRequest">
+      </input>
+      <output name="runWUBlastResponse" message="tns:runWUBlastResponse">
+      </output>
+    </operation>
+    <operation name="checkStatus" parameterOrder="jobid">
+      <documentation>Get the status of a submited job (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#checkstatus_jobid)</documentation>
+      <input name="statusRequest" message="tns:statusRequest"></input>
+      <output name="statusResponse" message="tns:statusResponse"></output>
+    </operation>
+    <operation name="poll" parameterOrder="jobid type">
+      <documentation>Get the results of a job (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#poll_jobid_type)</documentation>
+      <input name="pollRequest" message="tns:pollRequest"></input>
+      <output name="pollResponse" message="tns:pollResponse"></output>
+    </operation>
+    <operation name="getResults" parameterOrder="jobid">
+      <documentation>Get the available result types for a completed job (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#getresults_jobid)</documentation>
+      <input name="resultsRequest" message="tns:resultsRequest"></input>
+      <output name="resultsResponse" message="tns:resultsResponse"></output>
+    </operation>
+    <operation name="getIds" parameterOrder="jobid">
+      <documentation>Get the hit identifiers from the analysis result (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#getids_jobid)</documentation>
+      <input name="getIdsRequest" message="tns:getIdsRequest"></input>
+      <output name="getIdsResponse" message="tns:getIdsResponse"></output>
+    </operation>
+    <operation name="getMatrices">
+      <documentation>Get the list of available scoring matrices (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#getmatrices)</documentation>
+      <input name="getMatricesRequest" message="tns:getMatricesRequest"/>
+      <output name="getMatricesResponse" message="tns:getMatricesResponse"/>
+    </operation>
+    <operation name="getPrograms">
+      <documentation>Get the list of available analysis programs (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#getprograms)</documentation>
+      <input name="getProgramsRequest" message="tns:getProgramsRequest"/>
+      <output name="getProgramsResponse" message="tns:getProgramsResponse"/>
+    </operation>
+    <operation name="getDatabases">
+      <documentation>Get the list of available databases (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#getdatabases)</documentation>
+      <input name="getDatabasesRequest" message="tns:getDatabasesRequest"/>
+      <output name="getDatabasesResponse" message="tns:getDatabasesResponse"/>
+    </operation>
+    <operation name="getSort">
+      <documentation>Get list of available sorting options (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#getsort)</documentation>
+      <input name="getSortRequest" message="tns:getSortRequest"/>
+      <output name="getSortResponse" message="tns:getSortResponse"/>
+    </operation>
+    <operation name="getStats">
+      <documentation>Get the list of available statistical methods (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#getstats)</documentation>
+      <input name="getStatsRequest" message="tns:getStatsRequest"/>
+      <output name="getStatsResponse" message="tns:getStatsResponse"/>
+    </operation>
+    <operation name="getXmlFormats">
+      <documentation>Get list of options for XML formats (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#getxmlformats)</documentation>
+      <input name="getXmlFormatsRequest" message="tns:getXmlFormatsRequest"/>
+      <output name="getXmlFormatsResponse" message="tns:getXmlFormatsResponse"/>
+    </operation>
+    <operation name="getSensitivity">
+      <documentation>Get list of sensitivity values (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#getsensitivity)</documentation>
+      <input name="getSensitivityRequest" message="tns:getSensitivityRequest"/>
+      <output name="getSensitivityResponse" message="tns:getSensitivityResponse"/>
+    </operation>
+    <operation name="getFilters">
+      <documentation>Get the list of available input sequence filtering methods (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#getfilters)</documentation>
+      <input name="getFiltersRequest" message="tns:getFiltersRequest"/>
+      <output name="getFiltersResponse" message="tns:getFiltersResponse"/>
+    </operation>
+    <operation name="polljob" parameterOrder="jobid outformat">
+      <documentation>Deprecated (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#polljob_jobid_outformat)</documentation>
+      <input name="polljobRequest" message="tns:polljobRequest"></input>
+      <output name="polljobResponse" message="tns:polljobResponse"></output>
+    </operation>
+    <operation name="doWUBlast" parameterOrder="params content">
+      <documentation>Deprecated (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#dowublast_params_content)</documentation>
+      <input name="doWUBlastRequest" message="tns:doWUBlastRequest"></input>
+      <output name="doWUBlastResponse" message="tns:doWUBlastResponse">
+      </output>
+    </operation>
+  </portType>
+  <binding name="WSWUBlastSoapBinding" type="tns:WSWUBlast">
+    <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
+    <operation name="runWUBlast">
+      <documentation>Submit a WU-BLAST job (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#runwublast_params_content)</documentation>
+      <soap:operation soapAction="http://www.ebi.ac.uk/WSWUBlast#runWUBlast"/>
+      <input name="runWUBlastRequest">
+        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.ebi.ac.uk/WSWUBlast" use="encoded"/>
+      </input>
+      <output name="runWUBlastResponse">
+        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.ebi.ac.uk/WSWUBlast" use="encoded"/>
+      </output>
+    </operation>
+    <operation name="poll">
+      <documentation>Get the results of a job (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#poll_jobid_type)</documentation>
+      <soap:operation soapAction="http://www.ebi.ac.uk/WSWUBlast#poll"/>
+      <input name="pollRequest">
+        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.ebi.ac.uk/WSWUBlast" use="encoded"/>
+      </input>
+      <output name="pollResponse">
+        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.ebi.ac.uk/WSWUBlast" use="encoded"/>
+      </output>
+    </operation>
+    <operation name="getIds">
+      <documentation>Get the hit identifiers from the analysis result (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#getids_jobid)</documentation>
+      <soap:operation soapAction="http://www.ebi.ac.uk/WSWUBlast#getIds"/>
+      <input name="getIdsRequest">
+        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.ebi.ac.uk/WSWUBlast" use="encoded"/>
+      </input>
+      <output name="getIdsResponse">
+        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.ebi.ac.uk/WSWUBlast" use="encoded"/>
+      </output>
+    </operation>
+    <operation name="getMatrices">
+      <documentation>Get the list of available scoring matrices (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#getmatrices)</documentation>
+      <soap:operation soapAction="http://www.ebi.ac.uk/WSWUBlast#getMatrices"/>
+      <input name="getMatricesRequest">
+        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.ebi.ac.uk/WSWUBlast" use="encoded"/>
+      </input>
+      <output name="getMatricesResponse">
+        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.ebi.ac.uk/WSWUBlast" use="encoded"/>
+      </output>		
+    </operation>
+    <operation name="getPrograms">
+      <documentation>Get the list of available analysis programs (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#getprograms)</documentation>
+      <soap:operation soapAction="http://www.ebi.ac.uk/WSWUBlast#getPrograms"/>
+      <input name="getProgramsRequest">
+        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.ebi.ac.uk/WSWUBlast" use="encoded"/>
+      </input>
+      <output name="getProgramsResponse">
+        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.ebi.ac.uk/WSWUBlast" use="encoded"/>
+      </output>		
+    </operation>
+    <operation name="getDatabases">
+      <documentation>Get the list of available databases (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#getdatabases)</documentation>
+      <soap:operation soapAction="http://www.ebi.ac.uk/WSWUBlast#getDatabases"/>
+      <input name="getDatabasesRequest">
+        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.ebi.ac.uk/WSWUBlast" use="encoded"/>
+      </input>
+      <output name="getDatabasesResponse">
+        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.ebi.ac.uk/WSWUBlast" use="encoded"/>
+      </output>		
+    </operation>
+    <operation name="getSort">
+      <documentation>Get list of available sorting options (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#getsort)</documentation>
+      <soap:operation soapAction="http://www.ebi.ac.uk/WSWUBlast#getSort"/>
+      <input name="getSortRequest">
+        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.ebi.ac.uk/WSWUBlast" use="encoded"/>
+      </input>
+      <output name="getSortResponse">
+        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.ebi.ac.uk/WSWUBlast" use="encoded"/>
+      </output>		
+    </operation>
+    <operation name="getStats">
+      <documentation>Get the list of available statistical methods (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#getstats)</documentation>
+      <soap:operation soapAction="http://www.ebi.ac.uk/WSWUBlast#getStats"/>
+      <input name="getStatsRequest">
+        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.ebi.ac.uk/WSWUBlast" use="encoded"/>
+      </input>
+      <output name="getStatsResponse">
+        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.ebi.ac.uk/WSWUBlast" use="encoded"/>
+      </output>		
+    </operation>
+    <operation name="getXmlFormats">
+      <documentation>Get list of options for XML formats (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#getxmlformats)</documentation>
+      <soap:operation soapAction="http://www.ebi.ac.uk/WSWUBlast#getXmlFormats"/>
+      <input name="getXmlFormatsRequest">
+        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.ebi.ac.uk/WSWUBlast" use="encoded"/>
+      </input>
+      <output name="getXmlFormatsResponse">
+        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.ebi.ac.uk/WSWUBlast" use="encoded"/>
+      </output>		
+    </operation>
+    <operation name="getSensitivity">
+      <documentation>Get list of sensitivity values (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#getsensitivity)</documentation>
+      <soap:operation soapAction="http://www.ebi.ac.uk/WSWUBlast#getSensitivity"/>
+      <input name="getSensitivityRequest">
+        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.ebi.ac.uk/WSWUBlast" use="encoded"/>
+      </input>
+      <output name="getSensitivityResponse">
+        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.ebi.ac.uk/WSWUBlast" use="encoded"/>
+      </output>		
+    </operation>
+    <operation name="getFilters">
+      <documentation>Get the list of available input sequence filtering methods (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#getfilters)</documentation>
+      <soap:operation soapAction="http://www.ebi.ac.uk/WSWUBlast#getFilters"/>
+      <input name="getFiltersRequest">
+        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.ebi.ac.uk/WSWUBlast" use="encoded"/>
+      </input>
+      <output name="getFiltersResponse">
+        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.ebi.ac.uk/WSWUBlast" use="encoded"/>
+      </output>		
+    </operation>
+    <operation name="checkStatus">
+      <documentation>Get the status of a submited job (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#checkstatus_jobid)</documentation>
+      <soap:operation soapAction="http://www.ebi.ac.uk/WSWUBlast#checkStatus"/>
+      <input name="statusRequest">
+        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.ebi.ac.uk/WSWUBlast" use="encoded"/>
+      </input>
+      <output name="statusResponse">
+        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.ebi.ac.uk/WSWUBlast" use="encoded"/>
+      </output>
+    </operation>
+    <operation name="getResults">
+      <documentation>Get the available result types for a completed job (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#getresults_jobid)</documentation>
+      <soap:operation soapAction="http://www.ebi.ac.uk/WSWUBlast#getResults"/>
+      <input name="resultsRequest">
+        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.ebi.ac.uk/WSWUBlast" use="encoded"/>
+      </input>
+      <output name="resultsResponse">
+        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.ebi.ac.uk/WSWUBlast" use="encoded"/>
+      </output>
+    </operation>
+    <operation name="getOutput">
+      <documentation>Get plain text output for a job (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#getoutput_jobid)</documentation>
+      <soap:operation soapAction="http://www.ebi.ac.uk/WSWUBlast#getOutput"/>
+      <input name="getOutput">
+        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.ebi.ac.uk/WSWUBlast" use="encoded"/>
+      </input>
+      <output name="getOutputResponse">
+        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.ebi.ac.uk/WSWUBlast" use="encoded"/>
+      </output>
+    </operation>
+    <operation name="getXML">
+      <documentation>Get XML output for a job (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#getxml_jobid)</documentation>
+      <soap:operation soapAction="http://www.ebi.ac.uk/WSWUBlast#getXML"/>
+      <input name="getXML">
+        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.ebi.ac.uk/WSWUBlast" use="encoded"/>
+      </input>
+      <output name="getXMLResponse">
+        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.ebi.ac.uk/WSWUBlast" use="encoded"/>
+      </output>
+    </operation>
+    <operation name="blastp">
+      <documentation>Submit a protein sequence vs. protein database search (blastp) using default parameters. See http://www.ebi.ac.uk/Tools/webservices/services/wublast#blastp_database_sequence_email</documentation>
+      <soap:operation soapAction="http://www.ebi.ac.uk/WSWUBlast#blastp"/>
+      <input name="blastp">
+        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.ebi.ac.uk/WSWUBlast" use="encoded"/>
+      </input>
+      <output name="blastpResponse">
+        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.ebi.ac.uk/WSWUBlast" use="encoded"/>
+      </output>
+    </operation>
+    <operation name="blastn">
+      <documentation>Submit a nucleotide sequence vs. nucleotide database search (blastn) using default parameters. See http://www.ebi.ac.uk/Tools/webservices/services/wublast#blastn_database_sequence_email</documentation>
+      <soap:operation soapAction="http://www.ebi.ac.uk/WSWUBlast#blastn"/>
+      <input name="blastn">
+        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.ebi.ac.uk/WSWUBlast" use="encoded"/>
+      </input>
+      <output name="blastnResponse">
+        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.ebi.ac.uk/WSWUBlast" use="encoded"/>
+      </output>
+    </operation>
+    <operation name="polljob">
+      <documentation>Deprecated (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#polljob_jobid_outformat)</documentation>
+      <soap:operation soapAction="http://www.ebi.ac.uk/WSWUBlast#polljob"/>
+      <input name="polljobRequest">
+        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.ebi.ac.uk/WSWUBlast" use="encoded"/>
+      </input>
+      <output name="polljobResponse">
+        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.ebi.ac.uk/WSWUBlast" use="encoded"/>
+      </output>
+    </operation>
+    <operation name="doWUBlast">
+      <documentation>Deprecated (see http://www.ebi.ac.uk/Tools/webservices/services/wublast#dowublast_params_content)</documentation>
+      <soap:operation soapAction="http://www.ebi.ac.uk/WSWUBlast#doWUBlast"/>
+      <input name="doWUBlastRequest">
+        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.ebi.ac.uk/WSWUBlast" use="encoded"/>
+      </input>
+      <output name="doWUBlastResponse">
+        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.ebi.ac.uk/WSWUBlast" use="encoded"/>
+      </output>
+    </operation>
+  </binding>
+  <service name="WSWUBlastService">
+	<documentation>WSWUBlast: sequence similarity searches using WU-BLAST (see http://www.ebi.ac.uk/Tools/webservices/services/wublast).
+	
+	Note: this RPC/encoded SOAP service will be retired during 2011, see http://www.ebi.ac.uk/Tools/webservices/services/wublast for details of alternative REST and document/literal SOAP services.</documentation>
+    <port name="WSWUBlast" binding="tns:WSWUBlastSoapBinding">
+      <soap:address location="http://www.ebi.ac.uk/Tools/es/ws-servers/WSWUBlast"/>
+    </port>
+  </service>
+</definitions>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/wsdl2path.py	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,81 @@
+'''
+@author  Rui Wang
+@see     LICENSE (MIT style license file).
+'''
+
+import os
+import sys;
+from ZSI.generate.commands import wsdl2py
+
+__author__="Rui Wang"
+
+class wsdlLoader:
+    '''all methods to load wsdl from file/url'''
+    
+    def wsdlUrl2path(self, url, folderName):
+        '''given wsdl url, folder name
+        create a folder under current directory,
+        invoke wsdl2py
+        return the path of generated python file by wsdl2py'''
+        
+        path=os.path.join(os.getcwd(), folderName)
+        if not os.path.isdir(path):
+            os.mkdir(path)            
+            
+        fileOb=open(os.path.join(path,'__init__.py'), 'a')
+        fileOb.close()
+        wsdl2py([url, '-o', path])  #zsi 2.1
+        #wsdl2py(['-u',url, '-o', path]) #zsi 2.0
+        
+        #get path required by creatorEngine.py, such as: blast.WSWUBlast_services, WSWUBlast_client
+        pyFileList=os.listdir(path)
+        for f in pyFileList:
+            if f.endswith('_client.py'):  #zsi2.1
+            #if f.endswith('_services.py'):  #zsi2.0
+                importPath=folderName+'.'+f[:-3] 
+                break
+                
+        return importPath
+        
+    def wsdlFile2path(self, filePath, folderName):
+        '''given wsdl file path, folder name
+        create a folder under current directory,
+        invoke wsdl2py
+        return the path of generated python file by wsdl2py'''
+        path=os.path.join(os.getcwd(), folderName)
+        if not os.path.isdir(path):
+            os.mkdir(path)
+        else:
+            print 'Warning: writing files into an already existed path!!!!'
+            
+        fileOb=open(os.path.join(path,'__init__.py'), 'a')
+        fileOb.close()
+        wsdl2py([filePath, '-o', path])
+#        wsdl2py(['-f',filePath, '-o', path])
+        
+        #get path required by creatorengine.py, such as: blast.WSWUBlast_services
+        pyFileList=os.listdir(path)
+        for f in pyFileList:
+            #if f.endswith('_client.py'):  #zsi2.1
+            if f.endswith('_services.py'):   #zsi 2.0
+                importPath=folderName+'.'+f[:-3]   # f[:-3] will take off the .py extention
+                break
+                
+        return importPath
+
+#testing this module
+if __name__=="__main__":
+    test=wsdlLoader()
+    test.wsdlUrl2path('http://www.ebi.ac.uk/Tools/webservices/wsdl/WSWUBlast.wsdl','blast')
+    #print test.wsdlFile2path('..\\wsdl\\WSWUBlast.wsdl', 'blast')
+#    print test.wsdlFile2path('..\\wsdl\\picr.wsdl', 'picr')
+
+#    print test.wsdlFile2path('..\\wsdl\\WSDbfetch.wsdl', 'dbfetch')
+
+#    print test.wsdlFile2path('..\\wsdl\\NewGeneByLocation.wsdl', 'gbLocation')
+
+    
+#'http://www.ebi.ac.uk/Tools/webservices/wsdl/WSWUBlast.wsdl'
+#'-u http://www.ebi.ac.uk/Tools/webservices/wsdl/WSDbfetch.wsdl' 
+#-o OUTPUT_DIR
+#-b add convenience functions for complexTypes, including Getters, Setters, factory methods, and properties (via metaclass). *** DONT USE WITH --simple-naming
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/wsdl2path.pyc has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/wsdl2path.py~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,81 @@
+'''
+@author  Rui Wang
+@see     LICENSE (MIT style license file).
+'''
+
+import os
+import sys;
+from ZSI.generate.commands import wsdl2py
+
+__author__="Rui Wang"
+
+class wsdlLoader:
+    '''all methods to load wsdl from file/url'''
+    
+    def wsdlUrl2path(self, url, folderName):
+        '''given wsdl url, folder name
+        create a folder under current directory,
+        invoke wsdl2py
+        return the path of generated python file by wsdl2py'''
+        
+        path=os.path.join(os.getcwd(), folderName)
+        if not os.path.isdir(path):
+            os.mkdir(path)            
+            
+        fileOb=open(os.path.join(path,'__init__.py'), 'a')
+        fileOb.close()
+        #wsdl2py([url, '-o', path])  #zsi 2.1
+        wsdl2py(['-u',url, '-o', path]) #zsi 2.0
+        
+        #get path required by creatorEngine.py, such as: blast.WSWUBlast_services, WSWUBlast_client
+        pyFileList=os.listdir(path)
+        for f in pyFileList:
+            #if f.endswith('_client.py'):  #zsi2.1
+            if f.endswith('_services.py'):  #zsi2.0
+                importPath=folderName+'.'+f[:-3] 
+                break
+                
+        return importPath
+        
+    def wsdlFile2path(self, filePath, folderName):
+        '''given wsdl file path, folder name
+        create a folder under current directory,
+        invoke wsdl2py
+        return the path of generated python file by wsdl2py'''
+        path=os.path.join(os.getcwd(), folderName)
+        if not os.path.isdir(path):
+            os.mkdir(path)
+        else:
+            print 'Warning: writing files into an already existed path!!!!'
+            
+        fileOb=open(os.path.join(path,'__init__.py'), 'a')
+        fileOb.close()
+        wsdl2py([filePath, '-o', path])
+#        wsdl2py(['-f',filePath, '-o', path])
+        
+        #get path required by creatorengine.py, such as: blast.WSWUBlast_services
+        pyFileList=os.listdir(path)
+        for f in pyFileList:
+            if f.endswith('_client.py'):  #zsi2.1
+            #if f.endswith('_services.py'):   #zsi 2.0
+                importPath=folderName+'.'+f[:-3]   # f[:-3] will take off the .py extention
+                break
+                
+        return importPath
+
+#testing this module
+if __name__=="__main__":
+    test=wsdlLoader()
+    test.wsdlUrl2path('http://www.ebi.ac.uk/Tools/webservices/wsdl/WSWUBlast.wsdl','blast')
+    #print test.wsdlFile2path('..\\wsdl\\WSWUBlast.wsdl', 'blast')
+#    print test.wsdlFile2path('..\\wsdl\\picr.wsdl', 'picr')
+
+#    print test.wsdlFile2path('..\\wsdl\\WSDbfetch.wsdl', 'dbfetch')
+
+#    print test.wsdlFile2path('..\\wsdl\\NewGeneByLocation.wsdl', 'gbLocation')
+
+    
+#'http://www.ebi.ac.uk/Tools/webservices/wsdl/WSWUBlast.wsdl'
+#'-u http://www.ebi.ac.uk/Tools/webservices/wsdl/WSDbfetch.wsdl' 
+#-o OUTPUT_DIR
+#-b add convenience functions for complexTypes, including Getters, Setters, factory methods, and properties (via metaclass). *** DONT USE WITH --simple-naming
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/wublast/__init__.pyc has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/wublast/wublast_client.py	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,115 @@
+##################################################
+# file: wublast_client.py
+# 
+# client stubs generated by "ZSI.generate.wsdl2python.WriteServiceModule"
+#     /home/alok/galaxy-central/tools/WebServiceToolWorkflow_REST_SOAP/WebServiceTool_input_method_m.py /home/alok/galaxy-central/database/files/000/dataset_85.dat http://cs.uga.edu/__tilda__guttula/wublast.wsdl getResultTypes,run,getStatus,getResult,getParameterDetails,getParameters /home/alok/galaxy-central/database/files/000/dataset_86.dat
+# 
+##################################################
+
+from wublast_types import *
+import urlparse, types
+from ZSI.TCcompound import ComplexType, Struct
+from ZSI import client
+from ZSI.schema import GED, GTD
+import ZSI
+
+# Locator
+class JDispatcherServiceLocator:
+    JDispatcherServiceHttpPort_address = "http://www.ebi.ac.uk/Tools/services/soap/wublast"
+    def getJDispatcherServiceHttpPortAddress(self):
+        return JDispatcherServiceLocator.JDispatcherServiceHttpPort_address
+    def getJDispatcherServiceHttpPort(self, url=None, **kw):
+        return JDispatcherServiceHttpBindingSOAP(url or JDispatcherServiceLocator.JDispatcherServiceHttpPort_address, **kw)
+
+# Methods
+class JDispatcherServiceHttpBindingSOAP:
+    def __init__(self, url, **kw):
+        kw.setdefault("readerclass", None)
+        kw.setdefault("writerclass", None)
+        # no resource properties
+        self.binding = client.Binding(url=url, **kw)
+        # no ws-addressing
+
+    # op: run
+    def run(self, request, **kw):
+        if isinstance(request, runRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="urn:Run", **kw)
+        # no output wsaction
+        response = self.binding.Receive(runResponse.typecode)
+        return response
+
+    # op: getStatus
+    def getStatus(self, request, **kw):
+        if isinstance(request, getStatusRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="urn:GetStatus", **kw)
+        # no output wsaction
+        response = self.binding.Receive(getStatusResponse.typecode)
+        return response
+
+    # op: getResultTypes
+    def getResultTypes(self, request, **kw):
+        if isinstance(request, getResultTypesRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="urn:GetResultTypes", **kw)
+        # no output wsaction
+        response = self.binding.Receive(getResultTypesResponse.typecode)
+        return response
+
+    # op: getResult
+    def getResult(self, request, **kw):
+        if isinstance(request, getResultRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="urn:GetResult", **kw)
+        # no output wsaction
+        response = self.binding.Receive(getResultResponse.typecode)
+        return response
+
+    # op: getParameters
+    def getParameters(self, request, **kw):
+        if isinstance(request, getParametersRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="urn:GetParameters", **kw)
+        # no output wsaction
+        response = self.binding.Receive(getParametersResponse.typecode)
+        return response
+
+    # op: getParameterDetails
+    def getParameterDetails(self, request, **kw):
+        if isinstance(request, getParameterDetailsRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="urn:GetParameterDetails", **kw)
+        # no output wsaction
+        response = self.binding.Receive(getParameterDetailsResponse.typecode)
+        return response
+
+runRequest = GED("http://soap.jdispatcher.ebi.ac.uk", "run").pyclass
+
+runResponse = GED("http://soap.jdispatcher.ebi.ac.uk", "runResponse").pyclass
+
+getStatusRequest = GED("http://soap.jdispatcher.ebi.ac.uk", "getStatus").pyclass
+
+getStatusResponse = GED("http://soap.jdispatcher.ebi.ac.uk", "getStatusResponse").pyclass
+
+getResultTypesRequest = GED("http://soap.jdispatcher.ebi.ac.uk", "getResultTypes").pyclass
+
+getResultTypesResponse = GED("http://soap.jdispatcher.ebi.ac.uk", "getResultTypesResponse").pyclass
+
+getResultRequest = GED("http://soap.jdispatcher.ebi.ac.uk", "getResult").pyclass
+
+getResultResponse = GED("http://soap.jdispatcher.ebi.ac.uk", "getResultResponse").pyclass
+
+getParametersRequest = GED("http://soap.jdispatcher.ebi.ac.uk", "getParameters").pyclass
+
+getParametersResponse = GED("http://soap.jdispatcher.ebi.ac.uk", "getParametersResponse").pyclass
+
+getParameterDetailsRequest = GED("http://soap.jdispatcher.ebi.ac.uk", "getParameterDetails").pyclass
+
+getParameterDetailsResponse = GED("http://soap.jdispatcher.ebi.ac.uk", "getParameterDetailsResponse").pyclass
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/wublast/wublast_client.pyc has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/wublast/wublast_server.py	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,89 @@
+##################################################
+# file: wublast_server.py
+#
+# skeleton generated by "ZSI.generate.wsdl2dispatch.ServiceModuleWriter"
+#      /home/alok/galaxy-central/tools/WebServiceToolWorkflow_REST_SOAP/WebServiceTool_input_method_m.py /home/alok/galaxy-central/database/files/000/dataset_85.dat http://cs.uga.edu/__tilda__guttula/wublast.wsdl getResultTypes,run,getStatus,getResult,getParameterDetails,getParameters /home/alok/galaxy-central/database/files/000/dataset_86.dat
+#
+##################################################
+
+from ZSI.schema import GED, GTD
+from ZSI.TCcompound import ComplexType, Struct
+from wublast_types import *
+from ZSI.ServiceContainer import ServiceSOAPBinding
+
+# Messages  
+runRequest = GED("http://soap.jdispatcher.ebi.ac.uk", "run").pyclass
+
+runResponse = GED("http://soap.jdispatcher.ebi.ac.uk", "runResponse").pyclass
+
+getStatusRequest = GED("http://soap.jdispatcher.ebi.ac.uk", "getStatus").pyclass
+
+getStatusResponse = GED("http://soap.jdispatcher.ebi.ac.uk", "getStatusResponse").pyclass
+
+getResultTypesRequest = GED("http://soap.jdispatcher.ebi.ac.uk", "getResultTypes").pyclass
+
+getResultTypesResponse = GED("http://soap.jdispatcher.ebi.ac.uk", "getResultTypesResponse").pyclass
+
+getResultRequest = GED("http://soap.jdispatcher.ebi.ac.uk", "getResult").pyclass
+
+getResultResponse = GED("http://soap.jdispatcher.ebi.ac.uk", "getResultResponse").pyclass
+
+getParametersRequest = GED("http://soap.jdispatcher.ebi.ac.uk", "getParameters").pyclass
+
+getParametersResponse = GED("http://soap.jdispatcher.ebi.ac.uk", "getParametersResponse").pyclass
+
+getParameterDetailsRequest = GED("http://soap.jdispatcher.ebi.ac.uk", "getParameterDetails").pyclass
+
+getParameterDetailsResponse = GED("http://soap.jdispatcher.ebi.ac.uk", "getParameterDetailsResponse").pyclass
+
+
+# Service Skeletons
+class JDispatcherService(ServiceSOAPBinding):
+    soapAction = {}
+    root = {}
+
+    def __init__(self, post='/Tools/services/soap/wublast', **kw):
+        ServiceSOAPBinding.__init__(self, post)
+
+    def soap_run(self, ps, **kw):
+        request = ps.Parse(runRequest.typecode)
+        return request,runResponse()
+
+    soapAction['urn:Run'] = 'soap_run'
+    root[(runRequest.typecode.nspname,runRequest.typecode.pname)] = 'soap_run'
+
+    def soap_getStatus(self, ps, **kw):
+        request = ps.Parse(getStatusRequest.typecode)
+        return request,getStatusResponse()
+
+    soapAction['urn:GetStatus'] = 'soap_getStatus'
+    root[(getStatusRequest.typecode.nspname,getStatusRequest.typecode.pname)] = 'soap_getStatus'
+
+    def soap_getResultTypes(self, ps, **kw):
+        request = ps.Parse(getResultTypesRequest.typecode)
+        return request,getResultTypesResponse()
+
+    soapAction['urn:GetResultTypes'] = 'soap_getResultTypes'
+    root[(getResultTypesRequest.typecode.nspname,getResultTypesRequest.typecode.pname)] = 'soap_getResultTypes'
+
+    def soap_getResult(self, ps, **kw):
+        request = ps.Parse(getResultRequest.typecode)
+        return request,getResultResponse()
+
+    soapAction['urn:GetResult'] = 'soap_getResult'
+    root[(getResultRequest.typecode.nspname,getResultRequest.typecode.pname)] = 'soap_getResult'
+
+    def soap_getParameters(self, ps, **kw):
+        request = ps.Parse(getParametersRequest.typecode)
+        return request,getParametersResponse()
+
+    soapAction['urn:GetParameters'] = 'soap_getParameters'
+    root[(getParametersRequest.typecode.nspname,getParametersRequest.typecode.pname)] = 'soap_getParameters'
+
+    def soap_getParameterDetails(self, ps, **kw):
+        request = ps.Parse(getParameterDetailsRequest.typecode)
+        return request,getParameterDetailsResponse()
+
+    soapAction['urn:GetParameterDetails'] = 'soap_getParameterDetails'
+    root[(getParameterDetailsRequest.typecode.nspname,getParameterDetailsRequest.typecode.pname)] = 'soap_getParameterDetails'
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/wublast/wublast_services.py	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,118 @@
+################################################## 
+# wublast_services.py 
+# generated by ZSI.generate.wsdl2python
+##################################################
+
+
+from wublast_services_types import *
+import urlparse, types
+from ZSI.TCcompound import ComplexType, Struct
+from ZSI import client
+import ZSI
+
+# Locator
+class JDispatcherServiceLocator:
+    JDispatcherService_address = "http://www.ebi.ac.uk/Tools/services/soap/wublast"
+    def getJDispatcherServiceAddress(self):
+        return JDispatcherServiceLocator.JDispatcherService_address
+    def getJDispatcherService(self, url=None, **kw):
+        return JDispatcherServiceHttpBindingSOAP(url or JDispatcherServiceLocator.JDispatcherService_address, **kw)
+
+# Methods
+class JDispatcherServiceHttpBindingSOAP:
+    def __init__(self, url, **kw):
+        kw.setdefault("readerclass", None)
+        kw.setdefault("writerclass", None)
+        # no resource properties
+        self.binding = client.Binding(url=url, **kw)
+        # no ws-addressing
+
+    # op: run
+    def run(self, request):
+        if isinstance(request, runRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="urn:Run", **kw)
+        # no output wsaction
+        response = self.binding.Receive(runResponse.typecode)
+        return response
+
+    # op: getStatus
+    def getStatus(self, request):
+        if isinstance(request, getStatusRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="urn:GetStatus", **kw)
+        # no output wsaction
+        response = self.binding.Receive(getStatusResponse.typecode)
+        return response
+
+    # op: getResultTypes
+    def getResultTypes(self, request):
+        if isinstance(request, getResultTypesRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="urn:GetResultTypes", **kw)
+        # no output wsaction
+        response = self.binding.Receive(getResultTypesResponse.typecode)
+        return response
+
+    # op: getResult
+    def getResult(self, request):
+        if isinstance(request, getResultRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="urn:GetResult", **kw)
+        # no output wsaction
+        response = self.binding.Receive(getResultResponse.typecode)
+        return response
+
+    # op: getParameters
+    def getParameters(self, request):
+        if isinstance(request, getParametersRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="urn:GetParameters", **kw)
+        # no output wsaction
+        response = self.binding.Receive(getParametersResponse.typecode)
+        return response
+
+    # op: getParameterDetails
+    def getParameterDetails(self, request):
+        if isinstance(request, getParameterDetailsRequest) is False:
+            raise TypeError, "%s incorrect request type" % (request.__class__)
+        kw = {}
+        # no input wsaction
+        self.binding.Send(None, None, request, soapaction="urn:GetParameterDetails", **kw)
+        # no output wsaction
+        response = self.binding.Receive(getParameterDetailsResponse.typecode)
+        return response
+
+runRequest = ns0.run_Dec().pyclass
+
+runResponse = ns0.runResponse_Dec().pyclass
+
+getStatusRequest = ns0.getStatus_Dec().pyclass
+
+getStatusResponse = ns0.getStatusResponse_Dec().pyclass
+
+getResultTypesRequest = ns0.getResultTypes_Dec().pyclass
+
+getResultTypesResponse = ns0.getResultTypesResponse_Dec().pyclass
+
+getResultRequest = ns0.getResult_Dec().pyclass
+
+getResultResponse = ns0.getResultResponse_Dec().pyclass
+
+getParametersRequest = ns0.getParameters_Dec().pyclass
+
+getParametersResponse = ns0.getParametersResponse_Dec().pyclass
+
+getParameterDetailsRequest = ns0.getParameterDetails_Dec().pyclass
+
+getParameterDetailsResponse = ns0.getParameterDetailsResponse_Dec().pyclass
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/wublast/wublast_services_types.py	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,505 @@
+################################################## 
+# wublast_services_types.py 
+# generated by ZSI.generate.wsdl2python
+##################################################
+
+
+import ZSI
+import ZSI.TCcompound
+from ZSI.schema import LocalElementDeclaration, ElementDeclaration, TypeDefinition, GTD, GED
+
+##############################
+# targetNamespace
+# http://soap.jdispatcher.ebi.ac.uk
+##############################
+
+class ns0:
+    targetNamespace = "http://soap.jdispatcher.ebi.ac.uk"
+
+    class InputParameters_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "InputParameters")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.InputParameters_Def.schema
+            TClist = [ZSI.TC.String(pname="program", aname="_program", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="exp", aname="_exp", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="alignments", aname="_alignments", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="scores", aname="_scores", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="align", aname="_align", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="matrix", aname="_matrix", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="stats", aname="_stats", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="sensitivity", aname="_sensitivity", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="topcombon", aname="_topcombon", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.Boolean(pname="viewfilter", aname="_viewfilter", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="filter", aname="_filter", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="strand", aname="_strand", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="sort", aname="_sort", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="stype", aname="_stype", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="sequence", aname="_sequence", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://soap.jdispatcher.ebi.ac.uk","ArrayOfString",lazy=False)(pname="database", aname="_database", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._program = None
+                    self._exp = None
+                    self._alignments = None
+                    self._scores = None
+                    self._align = None
+                    self._matrix = None
+                    self._stats = None
+                    self._sensitivity = None
+                    self._topcombon = None
+                    self._viewfilter = None
+                    self._filter = None
+                    self._strand = None
+                    self._sort = None
+                    self._stype = None
+                    self._sequence = None
+                    self._database = None
+                    return
+            Holder.__name__ = "InputParameters_Holder"
+            self.pyclass = Holder
+
+    class ArrayOfString_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "ArrayOfString")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.ArrayOfString_Def.schema
+            TClist = [ZSI.TC.String(pname="string", aname="_string", minOccurs=0, maxOccurs="unbounded", nillable=True, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._string = []
+                    return
+            Holder.__name__ = "ArrayOfString_Holder"
+            self.pyclass = Holder
+
+    class wsResultTypes_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "wsResultTypes")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.wsResultTypes_Def.schema
+            TClist = [GTD("http://soap.jdispatcher.ebi.ac.uk","wsResultType",lazy=False)(pname="type", aname="_type", minOccurs=0, maxOccurs="unbounded", nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._type = []
+                    return
+            Holder.__name__ = "wsResultTypes_Holder"
+            self.pyclass = Holder
+
+    class wsResultType_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "wsResultType")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.wsResultType_Def.schema
+            TClist = [ZSI.TC.String(pname="description", aname="_description", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="fileSuffix", aname="_fileSuffix", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="identifier", aname="_identifier", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="label", aname="_label", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="mediaType", aname="_mediaType", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._description = None
+                    self._fileSuffix = None
+                    self._identifier = None
+                    self._label = None
+                    self._mediaType = None
+                    return
+            Holder.__name__ = "wsResultType_Holder"
+            self.pyclass = Holder
+
+    class wsRawOutputParameters_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "wsRawOutputParameters")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.wsRawOutputParameters_Def.schema
+            TClist = [GTD("http://soap.jdispatcher.ebi.ac.uk","wsRawOutputParameter",lazy=False)(pname="parameter", aname="_parameter", minOccurs=1, maxOccurs="unbounded", nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._parameter = []
+                    return
+            Holder.__name__ = "wsRawOutputParameters_Holder"
+            self.pyclass = Holder
+
+    class wsRawOutputParameter_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "wsRawOutputParameter")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.wsRawOutputParameter_Def.schema
+            TClist = [ZSI.TC.String(pname="name", aname="_name", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://soap.jdispatcher.ebi.ac.uk","ArrayOfString",lazy=False)(pname="value", aname="_value", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._name = None
+                    self._value = None
+                    return
+            Holder.__name__ = "wsRawOutputParameter_Holder"
+            self.pyclass = Holder
+
+    class wsParameters_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "wsParameters")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.wsParameters_Def.schema
+            TClist = [ZSI.TC.String(pname="id", aname="_id", minOccurs=0, maxOccurs="unbounded", nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._id = []
+                    return
+            Holder.__name__ = "wsParameters_Holder"
+            self.pyclass = Holder
+
+    class wsParameterDetails_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "wsParameterDetails")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.wsParameterDetails_Def.schema
+            TClist = [ZSI.TC.String(pname="name", aname="_name", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="description", aname="_description", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="type", aname="_type", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://soap.jdispatcher.ebi.ac.uk","wsParameterValues",lazy=False)(pname="values", aname="_values", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._name = None
+                    self._description = None
+                    self._type = None
+                    self._values = None
+                    return
+            Holder.__name__ = "wsParameterDetails_Holder"
+            self.pyclass = Holder
+
+    class wsParameterValues_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "wsParameterValues")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.wsParameterValues_Def.schema
+            TClist = [GTD("http://soap.jdispatcher.ebi.ac.uk","wsParameterValue",lazy=False)(pname="value", aname="_value", minOccurs=0, maxOccurs="unbounded", nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._value = []
+                    return
+            Holder.__name__ = "wsParameterValues_Holder"
+            self.pyclass = Holder
+
+    class wsParameterValue_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "wsParameterValue")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.wsParameterValue_Def.schema
+            TClist = [ZSI.TC.String(pname="label", aname="_label", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="value", aname="_value", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.Boolean(pname="defaultValue", aname="_defaultValue", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://soap.jdispatcher.ebi.ac.uk","wsProperties",lazy=False)(pname="properties", aname="_properties", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._label = None
+                    self._value = None
+                    self._defaultValue = None
+                    self._properties = None
+                    return
+            Holder.__name__ = "wsParameterValue_Holder"
+            self.pyclass = Holder
+
+    class wsProperties_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "wsProperties")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.wsProperties_Def.schema
+            TClist = [GTD("http://soap.jdispatcher.ebi.ac.uk","wsProperty",lazy=False)(pname="property", aname="_property", minOccurs=0, maxOccurs="unbounded", nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._property = []
+                    return
+            Holder.__name__ = "wsProperties_Holder"
+            self.pyclass = Holder
+
+    class wsProperty_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "wsProperty")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.wsProperty_Def.schema
+            TClist = [ZSI.TC.String(pname="key", aname="_key", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="value", aname="_value", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._key = None
+                    self._value = None
+                    return
+            Holder.__name__ = "wsProperty_Holder"
+            self.pyclass = Holder
+
+    class run_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "run"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.run_Dec.schema
+            TClist = [ZSI.TC.String(pname="email", aname="_email", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="title", aname="_title", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), GTD("http://soap.jdispatcher.ebi.ac.uk","InputParameters",lazy=False)(pname="parameters", aname="_parameters", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","run")
+            kw["aname"] = "_run"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._email = None
+                    self._title = None
+                    self._parameters = None
+                    return
+            Holder.__name__ = "run_Holder"
+            self.pyclass = Holder
+
+    class runResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "runResponse"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.runResponse_Dec.schema
+            TClist = [ZSI.TC.String(pname="jobId", aname="_jobId", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","runResponse")
+            kw["aname"] = "_runResponse"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._jobId = None
+                    return
+            Holder.__name__ = "runResponse_Holder"
+            self.pyclass = Holder
+
+    class getStatus_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getStatus"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.getStatus_Dec.schema
+            TClist = [ZSI.TC.String(pname="jobId", aname="_jobId", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getStatus")
+            kw["aname"] = "_getStatus"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._jobId = None
+                    return
+            Holder.__name__ = "getStatus_Holder"
+            self.pyclass = Holder
+
+    class getStatusResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getStatusResponse"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.getStatusResponse_Dec.schema
+            TClist = [ZSI.TC.String(pname="status", aname="_status", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getStatusResponse")
+            kw["aname"] = "_getStatusResponse"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._status = None
+                    return
+            Holder.__name__ = "getStatusResponse_Holder"
+            self.pyclass = Holder
+
+    class getResultTypes_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getResultTypes"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.getResultTypes_Dec.schema
+            TClist = [ZSI.TC.String(pname="jobId", aname="_jobId", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getResultTypes")
+            kw["aname"] = "_getResultTypes"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._jobId = None
+                    return
+            Holder.__name__ = "getResultTypes_Holder"
+            self.pyclass = Holder
+
+    class getResultTypesResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getResultTypesResponse"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.getResultTypesResponse_Dec.schema
+            TClist = [GTD("http://soap.jdispatcher.ebi.ac.uk","wsResultTypes",lazy=False)(pname="resultTypes", aname="_resultTypes", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getResultTypesResponse")
+            kw["aname"] = "_getResultTypesResponse"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._resultTypes = None
+                    return
+            Holder.__name__ = "getResultTypesResponse_Holder"
+            self.pyclass = Holder
+
+    class getResult_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getResult"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.getResult_Dec.schema
+            TClist = [ZSI.TC.String(pname="jobId", aname="_jobId", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="type", aname="_type", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://soap.jdispatcher.ebi.ac.uk","wsRawOutputParameters",lazy=False)(pname="parameters", aname="_parameters", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getResult")
+            kw["aname"] = "_getResult"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._jobId = None
+                    self._type = None
+                    self._parameters = None
+                    return
+            Holder.__name__ = "getResult_Holder"
+            self.pyclass = Holder
+
+    class getResultResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getResultResponse"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.getResultResponse_Dec.schema
+            TClist = [ZSI.TC.Base64String(pname="output", aname="_output", minOccurs=1, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getResultResponse")
+            kw["aname"] = "_getResultResponse"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._output = None
+                    return
+            Holder.__name__ = "getResultResponse_Holder"
+            self.pyclass = Holder
+
+    class getParameterDetails_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getParameterDetails"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.getParameterDetails_Dec.schema
+            TClist = [ZSI.TC.String(pname="parameterId", aname="_parameterId", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getParameterDetails")
+            kw["aname"] = "_getParameterDetails"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._parameterId = None
+                    return
+            Holder.__name__ = "getParameterDetails_Holder"
+            self.pyclass = Holder
+
+    class getParameterDetailsResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getParameterDetailsResponse"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.getParameterDetailsResponse_Dec.schema
+            TClist = [GTD("http://soap.jdispatcher.ebi.ac.uk","wsParameterDetails",lazy=False)(pname="parameterDetails", aname="_parameterDetails", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getParameterDetailsResponse")
+            kw["aname"] = "_getParameterDetailsResponse"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._parameterDetails = None
+                    return
+            Holder.__name__ = "getParameterDetailsResponse_Holder"
+            self.pyclass = Holder
+
+    class getParameters_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getParameters"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.getParameters_Dec.schema
+            TClist = []
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getParameters")
+            kw["aname"] = "_getParameters"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    return
+            Holder.__name__ = "getParameters_Holder"
+            self.pyclass = Holder
+
+    class getParametersResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getParametersResponse"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.getParametersResponse_Dec.schema
+            TClist = [GTD("http://soap.jdispatcher.ebi.ac.uk","wsParameters",lazy=False)(pname="parameters", aname="_parameters", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getParametersResponse")
+            kw["aname"] = "_getParametersResponse"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._parameters = None
+                    return
+            Holder.__name__ = "getParametersResponse_Holder"
+            self.pyclass = Holder
+
+# end class ns0 (tns: http://soap.jdispatcher.ebi.ac.uk)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/wublast/wublast_types.py	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,507 @@
+##################################################
+# file: wublast_types.py
+#
+# schema types generated by "ZSI.generate.wsdl2python.WriteServiceModule"
+#    /home/alok/galaxy-central/tools/WebServiceToolWorkflow_REST_SOAP/WebServiceTool_input_method_m.py /home/alok/galaxy-central/database/files/000/dataset_85.dat http://cs.uga.edu/__tilda__guttula/wublast.wsdl getResultTypes,run,getStatus,getResult,getParameterDetails,getParameters /home/alok/galaxy-central/database/files/000/dataset_86.dat
+#
+##################################################
+
+import ZSI
+import ZSI.TCcompound
+from ZSI.schema import LocalElementDeclaration, ElementDeclaration, TypeDefinition, GTD, GED
+
+##############################
+# targetNamespace
+# http://soap.jdispatcher.ebi.ac.uk
+##############################
+
+class ns0:
+    targetNamespace = "http://soap.jdispatcher.ebi.ac.uk"
+
+    class InputParameters_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "InputParameters")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.InputParameters_Def.schema
+            TClist = [ZSI.TC.String(pname="program", aname="_program", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="exp", aname="_exp", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="alignments", aname="_alignments", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="scores", aname="_scores", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="align", aname="_align", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="matrix", aname="_matrix", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="stats", aname="_stats", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="sensitivity", aname="_sensitivity", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="topcombon", aname="_topcombon", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.Boolean(pname="viewfilter", aname="_viewfilter", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="filter", aname="_filter", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="strand", aname="_strand", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="sort", aname="_sort", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="stype", aname="_stype", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="sequence", aname="_sequence", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://soap.jdispatcher.ebi.ac.uk","ArrayOfString",lazy=False)(pname="database", aname="_database", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._program = None
+                    self._exp = None
+                    self._alignments = None
+                    self._scores = None
+                    self._align = None
+                    self._matrix = None
+                    self._stats = None
+                    self._sensitivity = None
+                    self._topcombon = None
+                    self._viewfilter = None
+                    self._filter = None
+                    self._strand = None
+                    self._sort = None
+                    self._stype = None
+                    self._sequence = None
+                    self._database = None
+                    return
+            Holder.__name__ = "InputParameters_Holder"
+            self.pyclass = Holder
+
+    class ArrayOfString_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "ArrayOfString")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.ArrayOfString_Def.schema
+            TClist = [ZSI.TC.String(pname="string", aname="_string", minOccurs=0, maxOccurs="unbounded", nillable=True, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._string = []
+                    return
+            Holder.__name__ = "ArrayOfString_Holder"
+            self.pyclass = Holder
+
+    class wsResultTypes_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "wsResultTypes")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.wsResultTypes_Def.schema
+            TClist = [GTD("http://soap.jdispatcher.ebi.ac.uk","wsResultType",lazy=False)(pname="type", aname="_type", minOccurs=0, maxOccurs="unbounded", nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._type = []
+                    return
+            Holder.__name__ = "wsResultTypes_Holder"
+            self.pyclass = Holder
+
+    class wsResultType_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "wsResultType")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.wsResultType_Def.schema
+            TClist = [ZSI.TC.String(pname="description", aname="_description", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="fileSuffix", aname="_fileSuffix", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="identifier", aname="_identifier", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="label", aname="_label", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="mediaType", aname="_mediaType", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._description = None
+                    self._fileSuffix = None
+                    self._identifier = None
+                    self._label = None
+                    self._mediaType = None
+                    return
+            Holder.__name__ = "wsResultType_Holder"
+            self.pyclass = Holder
+
+    class wsRawOutputParameters_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "wsRawOutputParameters")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.wsRawOutputParameters_Def.schema
+            TClist = [GTD("http://soap.jdispatcher.ebi.ac.uk","wsRawOutputParameter",lazy=False)(pname="parameter", aname="_parameter", minOccurs=1, maxOccurs="unbounded", nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._parameter = []
+                    return
+            Holder.__name__ = "wsRawOutputParameters_Holder"
+            self.pyclass = Holder
+
+    class wsRawOutputParameter_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "wsRawOutputParameter")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.wsRawOutputParameter_Def.schema
+            TClist = [ZSI.TC.String(pname="name", aname="_name", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://soap.jdispatcher.ebi.ac.uk","ArrayOfString",lazy=False)(pname="value", aname="_value", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._name = None
+                    self._value = None
+                    return
+            Holder.__name__ = "wsRawOutputParameter_Holder"
+            self.pyclass = Holder
+
+    class wsParameters_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "wsParameters")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.wsParameters_Def.schema
+            TClist = [ZSI.TC.String(pname="id", aname="_id", minOccurs=0, maxOccurs="unbounded", nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._id = []
+                    return
+            Holder.__name__ = "wsParameters_Holder"
+            self.pyclass = Holder
+
+    class wsParameterDetails_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "wsParameterDetails")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.wsParameterDetails_Def.schema
+            TClist = [ZSI.TC.String(pname="name", aname="_name", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="description", aname="_description", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="type", aname="_type", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://soap.jdispatcher.ebi.ac.uk","wsParameterValues",lazy=False)(pname="values", aname="_values", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._name = None
+                    self._description = None
+                    self._type = None
+                    self._values = None
+                    return
+            Holder.__name__ = "wsParameterDetails_Holder"
+            self.pyclass = Holder
+
+    class wsParameterValues_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "wsParameterValues")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.wsParameterValues_Def.schema
+            TClist = [GTD("http://soap.jdispatcher.ebi.ac.uk","wsParameterValue",lazy=False)(pname="value", aname="_value", minOccurs=0, maxOccurs="unbounded", nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._value = []
+                    return
+            Holder.__name__ = "wsParameterValues_Holder"
+            self.pyclass = Holder
+
+    class wsParameterValue_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "wsParameterValue")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.wsParameterValue_Def.schema
+            TClist = [ZSI.TC.String(pname="label", aname="_label", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="value", aname="_value", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.Boolean(pname="defaultValue", aname="_defaultValue", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://soap.jdispatcher.ebi.ac.uk","wsProperties",lazy=False)(pname="properties", aname="_properties", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._label = None
+                    self._value = None
+                    self._defaultValue = None
+                    self._properties = None
+                    return
+            Holder.__name__ = "wsParameterValue_Holder"
+            self.pyclass = Holder
+
+    class wsProperties_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "wsProperties")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.wsProperties_Def.schema
+            TClist = [GTD("http://soap.jdispatcher.ebi.ac.uk","wsProperty",lazy=False)(pname="property", aname="_property", minOccurs=0, maxOccurs="unbounded", nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._property = []
+                    return
+            Holder.__name__ = "wsProperties_Holder"
+            self.pyclass = Holder
+
+    class wsProperty_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        type = (schema, "wsProperty")
+        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+            ns = ns0.wsProperty_Def.schema
+            TClist = [ZSI.TC.String(pname="key", aname="_key", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="value", aname="_value", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            self.attribute_typecode_dict = attributes or {}
+            if extend: TClist += ofwhat
+            if restrict: TClist = ofwhat
+            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._key = None
+                    self._value = None
+                    return
+            Holder.__name__ = "wsProperty_Holder"
+            self.pyclass = Holder
+
+    class run_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "run"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.run_Dec.schema
+            TClist = [ZSI.TC.String(pname="email", aname="_email", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="title", aname="_title", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded")), GTD("http://soap.jdispatcher.ebi.ac.uk","InputParameters",lazy=False)(pname="parameters", aname="_parameters", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","run")
+            kw["aname"] = "_run"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._email = None
+                    self._title = None
+                    self._parameters = None
+                    return
+            Holder.__name__ = "run_Holder"
+            self.pyclass = Holder
+
+    class runResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "runResponse"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.runResponse_Dec.schema
+            TClist = [ZSI.TC.String(pname="jobId", aname="_jobId", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","runResponse")
+            kw["aname"] = "_runResponse"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._jobId = None
+                    return
+            Holder.__name__ = "runResponse_Holder"
+            self.pyclass = Holder
+
+    class getStatus_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getStatus"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.getStatus_Dec.schema
+            TClist = [ZSI.TC.String(pname="jobId", aname="_jobId", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getStatus")
+            kw["aname"] = "_getStatus"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._jobId = None
+                    return
+            Holder.__name__ = "getStatus_Holder"
+            self.pyclass = Holder
+
+    class getStatusResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getStatusResponse"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.getStatusResponse_Dec.schema
+            TClist = [ZSI.TC.String(pname="status", aname="_status", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getStatusResponse")
+            kw["aname"] = "_getStatusResponse"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._status = None
+                    return
+            Holder.__name__ = "getStatusResponse_Holder"
+            self.pyclass = Holder
+
+    class getResultTypes_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getResultTypes"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.getResultTypes_Dec.schema
+            TClist = [ZSI.TC.String(pname="jobId", aname="_jobId", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getResultTypes")
+            kw["aname"] = "_getResultTypes"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._jobId = None
+                    return
+            Holder.__name__ = "getResultTypes_Holder"
+            self.pyclass = Holder
+
+    class getResultTypesResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getResultTypesResponse"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.getResultTypesResponse_Dec.schema
+            TClist = [GTD("http://soap.jdispatcher.ebi.ac.uk","wsResultTypes",lazy=False)(pname="resultTypes", aname="_resultTypes", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getResultTypesResponse")
+            kw["aname"] = "_getResultTypesResponse"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._resultTypes = None
+                    return
+            Holder.__name__ = "getResultTypesResponse_Holder"
+            self.pyclass = Holder
+
+    class getResult_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getResult"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.getResult_Dec.schema
+            TClist = [ZSI.TC.String(pname="jobId", aname="_jobId", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="type", aname="_type", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://soap.jdispatcher.ebi.ac.uk","wsRawOutputParameters",lazy=False)(pname="parameters", aname="_parameters", minOccurs=0, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getResult")
+            kw["aname"] = "_getResult"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._jobId = None
+                    self._type = None
+                    self._parameters = None
+                    return
+            Holder.__name__ = "getResult_Holder"
+            self.pyclass = Holder
+
+    class getResultResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getResultResponse"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.getResultResponse_Dec.schema
+            TClist = [ZSI.TC.Base64String(pname="output", aname="_output", minOccurs=1, maxOccurs=1, nillable=True, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getResultResponse")
+            kw["aname"] = "_getResultResponse"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._output = None
+                    return
+            Holder.__name__ = "getResultResponse_Holder"
+            self.pyclass = Holder
+
+    class getParameterDetails_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getParameterDetails"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.getParameterDetails_Dec.schema
+            TClist = [ZSI.TC.String(pname="parameterId", aname="_parameterId", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getParameterDetails")
+            kw["aname"] = "_getParameterDetails"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._parameterId = None
+                    return
+            Holder.__name__ = "getParameterDetails_Holder"
+            self.pyclass = Holder
+
+    class getParameterDetailsResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getParameterDetailsResponse"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.getParameterDetailsResponse_Dec.schema
+            TClist = [GTD("http://soap.jdispatcher.ebi.ac.uk","wsParameterDetails",lazy=False)(pname="parameterDetails", aname="_parameterDetails", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getParameterDetailsResponse")
+            kw["aname"] = "_getParameterDetailsResponse"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._parameterDetails = None
+                    return
+            Holder.__name__ = "getParameterDetailsResponse_Holder"
+            self.pyclass = Holder
+
+    class getParameters_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getParameters"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.getParameters_Dec.schema
+            TClist = []
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getParameters")
+            kw["aname"] = "_getParameters"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    return
+            Holder.__name__ = "getParameters_Holder"
+            self.pyclass = Holder
+
+    class getParametersResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration):
+        literal = "getParametersResponse"
+        schema = "http://soap.jdispatcher.ebi.ac.uk"
+        def __init__(self, **kw):
+            ns = ns0.getParametersResponse_Dec.schema
+            TClist = [GTD("http://soap.jdispatcher.ebi.ac.uk","wsParameters",lazy=False)(pname="parameters", aname="_parameters", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+            kw["pname"] = ("http://soap.jdispatcher.ebi.ac.uk","getParametersResponse")
+            kw["aname"] = "_getParametersResponse"
+            self.attribute_typecode_dict = {}
+            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
+            class Holder:
+                typecode = self
+                def __init__(self):
+                    # pyclass
+                    self._parameters = None
+                    return
+            Holder.__name__ = "getParametersResponse_Holder"
+            self.pyclass = Holder
+
+# end class ns0 (tns: http://soap.jdispatcher.ebi.ac.uk)
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/wublast/wublast_types.pyc has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clients/ClientCount.xml	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,3 @@
+<count> 
+6
+</count> 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clients/ClientCount.xml~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,3 @@
+<count> 
+5
+</count> 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clients/client_1.py	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,183 @@
+'''
+@author  Chaitanya Guttula, Sumedha Ganjoo
+@see     LICENSE (MIT style license file).
+'''
+
+import warnings
+with warnings.catch_warnings():
+    warnings.simplefilter("ignore")
+    import sys
+    import os
+    import urllib
+    
+    """
+    
+    This script takes the values of the input parameters of the
+    web service from the user and invokes the web service.
+    The URL to the WSDL is the command line argument
+
+    """
+    servicetype = sys.argv[2]
+    if servicetype=='SOAP':
+        with warnings.catch_warnings():
+            warnings.simplefilter("ignore")
+            galaxyhome=os.environ.get('GALAXY_HOME')
+            sys.path.append(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator/')
+            os.chdir(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator/')
+            from creatorEngineComplex import *
+            from wsdl2path import *
+            from paramConverter import *
+            from ZSI.writer import SoapWriter
+	    from msHandler import *
+
+            webservice = str(sys.argv[3])
+            operation = str(sys.argv[4])
+            resultfile=open(sys.argv[1],'w')
+            length=len(sys.argv)
+            inputdict={}
+            i=5
+            test=ClientCreator()
+            while(i>=5 and i<(length-1)):
+                key=sys.argv[i]
+                print 'key is : ',key
+                #if(sys.argv[i+1]=='ZSI.TC.String'):
+                val=sys.argv[i+1]
+                while(val.find('__at__')>-1):
+                    vlist = val.split('__at__')
+                    val = '@'.join(vlist)
+                while(val.find('__sq__')>-1):
+                    vlist = val.split('__sq__')
+                    val = ''.join(vlist)
+                while(val.find('__gt__')>-1):
+                    vlist = val.split('__gt__')
+                    val = '>'.join(vlist)
+                while(val.find('***')>-1):
+                    vlist = val.split('***')
+                    val = '\n'.join(vlist)
+                while(val.find('**')>-1):
+                    vlist = val.split('**')
+                    val = ' '.join(vlist)
+                #if(val.find(',')>-1):
+                #    print 'found ,'
+                #    vlist = val.split(',')
+                #    val = '\',\''.join(vlist)
+                
+                
+                #if(val.find('__sq__')>-1):
+                 #   j=i+4
+                  #  val=val.lstrip('__sq__')
+                   # while(str(sys.argv[j]).find('__sq__')==-1):
+                    #    val=val+' '+sys.argv[j]
+                     #   j=j+1
+                    #val=val+' '+(str(sys.argv[j]).rstrip('__sq__'))
+                    #i=j-3
+
+            #elif((sys.argv[i+1]=='ZSI.TC.Integer')or (sys.argv[i+1]=='ZSI.TCnumbers.Iint')):
+             #   val=int(sys.argv[i+1])
+            #elif(sys.argv[i+1]=='ZSI.TC.Decimal'):
+             #   val=float(sys.argv[i+1])
+            #elif(sys.argv[i+2]=='Yes'):
+             #   valFile=open(sys.argv[i+3],'r')
+              #  val=valFile.read()
+            #else:
+             #   val=sys.argv[i+1]
+                if(val != "0"): 
+                    inputdict[key]= val
+                #resultfile.write('value is :'+ val+'\n')
+            
+                i=i+2
+            if len(inputdict) == 0:
+                inputdic = {}
+            else:
+                inputdic = flat2nestedDict(inputdict)
+            print 'The operation is : ',operation    #added 
+            result=test.invokeOp(operation,webservice,inputdic)
+
+	    mshandler = MessageHandler()
+            resultDict={}
+            resultDict=mshandler.flatten(result)   #mshandler.msParser(responseInstance)
+            flat =  nested2flatDict(resultDict)
+		
+	    result=flat
+
+
+            #resultfile.write(result)
+    
+            # Writing the output to the o/p file when the result is parsed
+            #keys = result.keys()
+        
+            #for key in keys:
+            #    resultfile.write(str(key)+'\t')
+            
+            #resultfile.write('\n')
+            
+            #for key in keys:
+            #    if type(result[key])==list:
+            #        for i in result[r]:
+            #            resultfile.write(str(i)+'\t')
+            #            print str(i)
+            #    else:
+            #        resultfile.write(str(result[key])+'\t')
+            for r in result:
+                if type(result[r])==list:
+                    for i in result[r]:
+                        resultfile.write(str(i)+'\n')
+                        print str(i)
+                else:
+                    resultfile.write(str(result[r])+'\n')
+
+            #Writes the result without parsinf in the XML format it gets.
+            #sw = SoapWriter(header=False, envelope=False);
+            #res = test.opname2outputClassOb(operation,webservice)
+            #res_tc = getattr(res,'typecode')
+            #ofwhat = res_tc.ofwhat;
+            #for tc in ofwhat :
+            #    sw.serialize(getattr(result, tc.aname), tc);
+            #    doc = sw.dom.getDocument();
+            #    fp = open(sys.argv[1], 'w');
+            #   try :
+            #       doc.writexml(fp, '\t', '', '\n');
+            #   finally :
+            #       fp.close();
+    
+    
+    elif servicetype == 'REST':
+            resUrl = sys.argv[3]
+            
+            outputFile = open(sys.argv[1],'w')
+            if(resUrl.find('__tilda__')>-1):
+                ulist = resUrl.split('__tilda__')
+                resUrl = '~'.join(ulist)
+
+            paramdict={}
+            length=(len(sys.argv))
+
+            print 'in rest',sys.argv
+            #print s
+            i=4
+            print i
+            
+            while( i>=4 and i<(length-1)):
+                    
+                key=sys.argv[i]
+                val=sys.argv[i+1]
+                print 'key : ',key
+                print 'value : ',val
+                while(val.find('**')>-1):
+                    vlist = val.split('**')
+                    print '---->',val
+                    val = ' '.join(vlist)
+            	print 'v : ',val
+                paramdict[key]=val
+                i=i+2
+                
+            print paramdict
+            
+            params = urllib.urlencode(paramdict)
+            data = urllib.urlopen(resUrl, params).read()
+            outputFile.write(data)
+
+#
+#if __name__ == "__main__":
+#    main();
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clients/client_1.py~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,173 @@
+'''
+@author  Chaitanya Guttula, Sumedha Ganjoo
+@see     LICENSE (MIT style license file).
+'''
+
+import warnings
+with warnings.catch_warnings():
+    warnings.simplefilter("ignore")
+    import sys
+    import os
+    import urllib
+    
+    """
+    
+    This script takes the values of the input parameters of the
+    web service from the user and invokes the web service.
+    The URL to the WSDL is the command line argument
+
+    """
+    servicetype = sys.argv[2]
+    if servicetype=='SOAP':
+        with warnings.catch_warnings():
+            warnings.simplefilter("ignore")
+            galaxyhome=os.environ.get('GALAXY_HOME')
+            sys.path.append(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator/')
+            os.chdir(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator/')
+            from creatorEngineComplex import *
+            from wsdl2path import *
+            from paramConverter import *
+            from ZSI.writer import SoapWriter
+
+            webservice = str(sys.argv[3])
+            operation = str(sys.argv[4])
+            resultfile=open(sys.argv[1],'w')
+            length=len(sys.argv)
+            inputdict={}
+            i=5
+            test=ClientCreator()
+            while(i>=5 and i<(length-1)):
+                key=sys.argv[i]
+                print 'key is : ',key
+                #if(sys.argv[i+1]=='ZSI.TC.String'):
+                val=sys.argv[i+1]
+                while(val.find('__at__')>-1):
+                    vlist = val.split('__at__')
+                    val = '@'.join(vlist)
+                while(val.find('__sq__')>-1):
+                    vlist = val.split('__sq__')
+                    val = ''.join(vlist)
+                while(val.find('__gt__')>-1):
+                    vlist = val.split('__gt__')
+                    val = '>'.join(vlist)
+                while(val.find('***')>-1):
+                    vlist = val.split('***')
+                    val = '\n'.join(vlist)
+                while(val.find('**')>-1):
+                    vlist = val.split('**')
+                    val = ' '.join(vlist)
+                #if(val.find(',')>-1):
+                #    print 'found ,'
+                #    vlist = val.split(',')
+                #    val = '\',\''.join(vlist)
+                
+                
+                #if(val.find('__sq__')>-1):
+                 #   j=i+4
+                  #  val=val.lstrip('__sq__')
+                   # while(str(sys.argv[j]).find('__sq__')==-1):
+                    #    val=val+' '+sys.argv[j]
+                     #   j=j+1
+                    #val=val+' '+(str(sys.argv[j]).rstrip('__sq__'))
+                    #i=j-3
+
+            #elif((sys.argv[i+1]=='ZSI.TC.Integer')or (sys.argv[i+1]=='ZSI.TCnumbers.Iint')):
+             #   val=int(sys.argv[i+1])
+            #elif(sys.argv[i+1]=='ZSI.TC.Decimal'):
+             #   val=float(sys.argv[i+1])
+            #elif(sys.argv[i+2]=='Yes'):
+             #   valFile=open(sys.argv[i+3],'r')
+              #  val=valFile.read()
+            #else:
+             #   val=sys.argv[i+1]
+                if(val != "0"): 
+                    inputdict[key]= val
+                #resultfile.write('value is :'+ val+'\n')
+            
+                i=i+2
+            if len(inputdict) == 0:
+                inputdic = {}
+            else:
+                inputdic = flat2nestedDict(inputdict)
+            print 'The operation is : ',operation    #added 
+            result=test.invokeOp(operation,webservice,inputdic)
+            #resultfile.write(result)
+    
+            # Writing the output to the o/p file when the result is parsed
+            keys = result.keys()
+        
+            #for key in keys:
+            #    resultfile.write(str(key)+'\t')
+            
+            #resultfile.write('\n')
+            
+            #for key in keys:
+            #    if type(result[key])==list:
+            #        for i in result[r]:
+            #            resultfile.write(str(i)+'\t')
+            #            print str(i)
+            #    else:
+            #        resultfile.write(str(result[key])+'\t')
+            for r in result:
+                if type(result[r])==list:
+                    for i in result[r]:
+                        resultfile.write(str(i)+'\n')
+                        print str(i)
+                else:
+                    resultfile.write(str(result[r])+'\n')
+
+            #Writes the result without parsinf in the XML format it gets.
+            #sw = SoapWriter(header=False, envelope=False);
+            #res = test.opname2outputClassOb(operation,webservice)
+            #res_tc = getattr(res,'typecode')
+            #ofwhat = res_tc.ofwhat;
+            #for tc in ofwhat :
+            #    sw.serialize(getattr(result, tc.aname), tc);
+            #    doc = sw.dom.getDocument();
+            #    fp = open(sys.argv[1], 'w');
+            #    try :
+            #        doc.writexml(fp, '\t', '', '\n');
+            #    finally :
+            #        fp.close();
+    
+    
+    elif servicetype == 'REST':
+            resUrl = sys.argv[3]
+            
+            outputFile = open(sys.argv[1],'w')
+            if(resUrl.find('__tilda__')>-1):
+                ulist = resUrl.split('__tilda__')
+                resUrl = '~'.join(ulist)
+
+            paramdict={}
+            length=(len(sys.argv))
+
+            print 'in rest',sys.argv
+            #print s
+            i=4
+            print i
+            
+            while( i>=4 and i<(length-1)):
+                    
+                key=sys.argv[i]
+                val=sys.argv[i+1]
+                print 'key : ',key
+                print 'value : ',val
+                while(val.find('**')>-1):
+                    vlist = val.split('**')
+                    print '---->',val
+                    val = ' '.join(vlist)
+            	print 'v : ',val
+                paramdict[key]=val
+                i=i+2
+                
+            print paramdict
+            
+            params = urllib.urlencode(paramdict)
+            data = urllib.urlopen(resUrl, params).read()
+            outputFile.write(data)
+
+#
+#if __name__ == "__main__":
+#    main();
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clients/client_1.xml~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,107 @@
+<tool id="client_1" name="genesbytextsearch">
+  <description> Client for method: genesbytextsearch , Web service: /home/ganjoo/parser/SAWADLParser/euPathWADL/GenesByTextSearch.sawadl </description>
+  <command interpreter="python">
+  client_1.py 
+  $output 
+  http://eupathdb.org/webservices/GeneQuestions/GenesByTextSearch.xml
+  text_search_organism
+  $source0.user_param0
+  text_expression
+  $param1
+  text_fields
+  $param2
+  whole_words
+  $param3
+  max_pvalue
+  $param4
+</command>
+  <inputs>
+<conditional name="source0">
+        <param name="source0_source" type="select" label="text_search_organism Source">
+            <option value="cached" selected="true">Param value will be taken from previous step</option>
+            <option value="user">User will enter the param value</option>
+        </param>
+        <when value="user">
+<param name="user_param0" type="select" label="text_search_organism" help="see tip below">
+ <option value="Entamoeba**dispar" selected="true">Entamoeba dispar</option>
+  <option value="Entamoeba**histolytica" >Entamoeba histolytica</option>
+  <option value="Entamoeba**invadens" >Entamoeba invadens</option>
+  <option value="Cryptosporidium**parvum" >Cryptosporidium parvum</option>
+  <option value="Cryptosporidium**hominis" >Cryptosporidium hominis</option>
+  <option value="Cryptosporidium**muris" >Cryptosporidium muris</option>
+  <option value="Giardia**Assemblage**A**isolate**WB" >Giardia Assemblage A isolate WB</option>
+  <option value="Giardia**Assemblage**B**isolate**GS" >Giardia Assemblage B isolate GS</option>
+  <option value="Giardia**Assemblage**E**isolate**P15" >Giardia Assemblage E isolate P15</option>
+  <option value="Encephalitozoon**cuniculi" >Encephalitozoon cuniculi</option>
+  <option value="Encephalitozoon**intestinalis" >Encephalitozoon intestinalis</option>
+  <option value="Plasmodium**falciparum" >Plasmodium falciparum</option>
+  <option value="Plasmodium**vivax" >Plasmodium vivax</option>
+  <option value="Plasmodium**yoelii" >Plasmodium yoelii</option>
+  <option value="Plasmodium**berghei" >Plasmodium berghei</option>
+  <option value="Plasmodium**chabaudi" >Plasmodium chabaudi</option>
+  <option value="Plasmodium**knowlesi" >Plasmodium knowlesi</option>
+  <option value="Toxoplasma**gondii" >Toxoplasma gondii</option>
+  <option value="Neospora**caninum" >Neospora caninum</option>
+  <option value="Trichomonas**vaginalis" >Trichomonas vaginalis</option>
+  <option value="Trypanosoma**cruzi" >Trypanosoma cruzi</option>
+  <option value="Leishmania**braziliensis" >Leishmania braziliensis</option>
+  <option value="Leishmania**infantum" >Leishmania infantum</option>
+  <option value="Leishmania**major" >Leishmania major</option>
+  <option value="Leishmania**mexicana" >Leishmania mexicana</option>
+  <option value="Trypanosoma**brucei" >Trypanosoma brucei</option>
+  <option value="Trypanosoma**congolense" >Trypanosoma congolense</option>
+  <option value="Trypanosoma**vivax" >Trypanosoma vivax</option>
+     </param> 
+ </when>
+ <when value="cached">
+ <param name = "cached_param0" type="data" label="Choose the step from which to get the SAWADL location"/>
+        </when>
+    </conditional>
+<param format="text" size = "150" name = "param1"  value="membrane"  type="text" label="text_expression" help="see tip below" />
+<param name="param2" type="select" label="text_fields" help="see tip below">
+ <option value="Gene**ID" >Gene ID</option>
+  <option value="Alias" >Alias</option>
+  <option value="Gene**product" selected="true">Gene product</option>
+  <option value="Phenotype" >Phenotype</option>
+  <option value="GO**terms**and**definitions" >GO terms and definitions</option>
+  <option value="Gene**notes" >Gene notes</option>
+  <option value="User**comments" >User comments</option>
+  <option value="Protein**domain**names**and**descriptions" >Protein domain names and descriptions</option>
+  <option value="Similar**proteins**(BLAST**hits**v.**NRDB/PDB)" >Similar proteins (BLAST hits v. NRDB/PDB)</option>
+  <option value="EC**descriptions" >EC descriptions</option>
+  <option value="Metabolic**pathway**names**and**descriptions" >Metabolic pathway names and descriptions</option>
+     </param> 
+<param name="param3" type="select" label="whole_words" help="see tip below">
+ <option value="yes" >yes</option>
+  <option value="no" selected="true">no</option>
+     </param> 
+<param format="text" size = "150" name = "param4"  value="-30"  type="text" label="max_pvalue" help="see tip below" />
+</inputs>
+  <outputs>
+    <data format="tabular" name="output" />
+  </outputs>
+  <help>
+
+.. class:: infomark
+
+**TIP:** About text_search_organism: type is xsd:string, description from ontology is "Organism identifier"
+
+.. class:: infomark
+
+**TIP:** About text_expression: type is xsd:string, description from ontology is "This term can be used for any free-form comments and annotations."
+
+.. class:: infomark
+
+**TIP:** About text_fields: type is xsd:string, description from ontology is "Undefined concept"
+
+.. class:: infomark
+
+**TIP:** About whole_words: type is xsd:string, description from ontology is "
+        A simple parameter that is a toggle (boolean value), typically a control for a modal tool
+        "
+
+.. class:: infomark
+
+**TIP:** About max_pvalue: type is xsd:string
+  </help>
+</tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clients/client_17.xml~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,62 @@
+<tool id="client_17" name="run">
+  <description> Client for operation : run , Web service: wublast.wublast_services </description>
+  <command interpreter="python">
+ #if $cond_source.optional_param_source=="no" #client_3.py $output $servicetype wublast.wublast_services  run	"_parameters|_sequence" $param0	"_parameters|_stype" $param1	"_parameters|_program" $param2	"_email" $param3	"_parameters|_database|_string|$|" $param4 #else #client_3.py $output $servicetype wublast.wublast_services    run
+	"_parameters|_sequence" $param0	"_parameters|_stype" $param1	"_parameters|_program" $param2	"_email" $param3	"_parameters|_database|_string|$|" $param4	"_parameters|_sensitivity" $param5	"_parameters|_topcombon" $param6	"_parameters|_filter" $param7	"_parameters|_alignments" $param8	"_parameters|_scores" $param9	"_parameters|_viewfilter" $param10	"_parameters|_sort" $param11	"_parameters|_strand" $param12	"_parameters|_align" $param13	"_parameters|_matrix" $param14	"_title" $param15	"_parameters|_stats" $param16	"_parameters|_exp" $param17 #end if 
+</command>
+  <inputs>
+    <param name="servicetype" type="hidden" value="SOAP" />
+    <param format="text" size = "150" name = "param0"  type="text" label="Enter sequence" help="see tip below" />
+    <param format="text" size = "150" name = "param1"  type="text" label="Enter stype" help="see tip below" />
+    <param format="text" size = "150" name = "param2"  type="text" label="Enter program" help="see tip below" />
+    <param format="text" size = "150" name = "param3"  type="text" label="Enter email" help="see tip below" />
+    <param format="text" size = "150" name = "param4"  type="text" label="Enter database" help="see tip below" />
+
+ <conditional name="cond_source"> 
+ <param name="optional_param_source" type="select" label="Show Additional Parameters">
+ <option value="no" selected="true">no</option> 
+ <option value="yes">yes</option> 
+ </param>
+<when value="no"> 
+ </when><when value="yes"> 
+<param format="text" size = "150" name = "param5"  type="text" label="Enter sensitivity" help="see tip below" />
+<param format="text" size = "150" name = "param6"  type="text" label="Enter topcombon" help="see tip below" />
+<param format="text" size = "150" name = "param7"  type="text" label="Enter filter" help="see tip below" />
+<param format="text" size = "150" name = "param8"  type="text" label="Enter alignments" help="see tip below" />
+<param format="text" size = "150" name = "param9"  type="text" label="Enter scores" help="see tip below" />
+<param format="text" size = "150" name = "param10"  type="text" label="Enter viewfilter" help="see tip below" />
+<param format="text" size = "150" name = "param11"  type="text" label="Enter sort" help="see tip below" />
+<param format="text" size = "150" name = "param12"  type="text" label="Enter strand" help="see tip below" />
+<param format="text" size = "150" name = "param13"  type="text" label="Enter align" help="see tip below" />
+<param format="text" size = "150" name = "param14"  type="text" label="Enter matrix" help="see tip below" />
+<param format="text" size = "150" name = "param15"  type="text" label="Enter title" help="see tip below" />
+<param format="text" size = "150" name = "param16"  type="text" label="Enter stats" help="see tip below" />
+<param format="text" size = "150" name = "param17"  type="text" label="Enter exp" help="see tip below" />
+</when>
+</conditional></inputs>
+  <outputs>
+    <data format="tabular" name="output" />
+  </outputs>
+  <help>
+
+.. class:: infomark
+
+**TIP:** About sequence: type is String
+
+.. class:: infomark
+
+**TIP:** About stype: type is String
+
+.. class:: infomark
+
+**TIP:** About program: type is String
+
+.. class:: infomark
+
+**TIP:** About email: type is String
+
+.. class:: infomark
+
+**TIP:** About database: type is String
+  </help>
+</tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clients/client_2.xml~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,62 @@
+<tool id="client_2" name="run">
+  <description> Client for operation : run , Web service: wublast.wublast_services </description>
+  <command interpreter="python">
+ #if $cond_source.optional_param_source=="no" #client_1.py $output $servicetype wublast.wublast_services  run "_parameters|_sequence" $param0 "_parameters|_stype" $param1 "_parameters|_program" $param2 "_email" $param3 "_parameters|_database|_string|$|" $param4 #else #client_1.py $output $servicetype  wublast.wublast_services    run
+ "_parameters|_sequence" $param0 "_parameters|_stype" $param1 "_parameters|_program" $param2 "_email" $param3 "_parameters|_database|_string|$|" $param4 "_parameters|_sensitivity" $cond_source.param5 "_parameters|_topcombon" $cond_source.param6 "_parameters|_filter" $cond_source.param7 "_parameters|_alignments" $cond_source.param8 "_parameters|_scores" $cond_source.param9 "_parameters|_viewfilter" $cond_source.param10 "_parameters|_sort" $cond_source.param11 "_parameters|_strand" $cond_source.param12 "_parameters|_align" $cond_source.param13 "_parameters|_matrix" $cond_source.param14 "_title" $cond_source.param15 "_parameters|_stats" $cond_source.param16 "_parameters|_exp" $cond_source.param17 #end if 
+</command>
+  <inputs>
+  <param type='hidden' name='servicetype' value='SOAP' />
+<param format="text" size = "150" name = "param0"  type="text" label="Enter sequence" help="see tip below" />
+<param format="text" size = "150" name = "param1"  type="text" label="Enter stype" help="see tip below" />
+<param format="text" size = "150" name = "param2"  type="text" label="Enter program" help="see tip below" />
+<param format="text" size = "150" name = "param3"  type="text" label="Enter email" help="see tip below" />
+<param format="text" size = "150" name = "param4"  type="text" label="Enter database" help="see tip below" />
+
+ <conditional name="cond_source"> 
+ <param name="optional_param_source" type="select" label="Show Additional Parameters">
+ <option value="no" selected="true">no</option> 
+ <option value="yes">yes</option> 
+ </param>
+<when value="no"> 
+ </when><when value="yes"> 
+<param format="text" size = "150" name = "param5"  type="text" label="Enter sensitivity" help="see tip below" />
+<param format="text" size = "150" name = "param6"  type="text" label="Enter topcombon" help="see tip below" />
+<param format="text" size = "150" name = "param7"  type="text" label="Enter filter" help="see tip below" />
+<param format="text" size = "150" name = "param8"  type="text" label="Enter alignments" help="see tip below" />
+<param format="text" size = "150" name = "param9"  type="text" label="Enter scores" help="see tip below" />
+<param format="text" size = "150" name = "param10"  type="text" label="Enter viewfilter" help="see tip below" />
+<param format="text" size = "150" name = "param11"  type="text" label="Enter sort" help="see tip below" />
+<param format="text" size = "150" name = "param12"  type="text" label="Enter strand" help="see tip below" />
+<param format="text" size = "150" name = "param13"  type="text" label="Enter align" help="see tip below" />
+<param format="text" size = "150" name = "param14"  type="text" label="Enter matrix" help="see tip below" />
+<param format="text" size = "150" name = "param15"  type="text" label="Enter title" help="see tip below" />
+<param format="text" size = "150" name = "param16"  type="text" label="Enter stats" help="see tip below" />
+<param format="text" size = "150" name = "param17"  type="text" label="Enter exp" help="see tip below" />
+</when>
+</conditional></inputs>
+  <outputs>
+    <data format="tabular" name="output" />
+  </outputs>
+  <help>
+
+.. class:: infomark
+
+**TIP:** About sequence: type is String
+
+.. class:: infomark
+
+**TIP:** About stype: type is String
+
+.. class:: infomark
+
+**TIP:** About program: type is String
+
+.. class:: infomark
+
+**TIP:** About email: type is String
+
+.. class:: infomark
+
+**TIP:** About database: type is String
+  </help>
+</tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clients/client_3.xml~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,160 @@
+<tool id="client_31" name="genesbygenetype      ">
+  <description> Client for method: genesbygenetype , Web service: http://eupathdb.org/eupathdb/webservices/GeneQuestions/GenesByGeneType.wadl </description>
+  <command interpreter="python">
+ #if $cond_source.optional_param_source=="no" #client_1.py $output $service http://eupathdb.org/webservices/GeneQuestions/GenesByGeneType.xml organism $param0 includePseudogenes $param1 geneType $param2 #else #client_1.py $output $service http://eupathdb.org/webservices/GeneQuestions/GenesByGeneType.xml organism $param0 includePseudogenes $param1 geneType $param2 o-fields $cond_source.param3 o-tables $cond_source.param4 #end if 
+</command>
+  <inputs>
+<param name='service' type='hidden' value='REST'/>
+<param name="param0" type="select" label="Select Organism" help="see tip below">
+ <option value="Entamoeba**dispar" >Entamoeba dispar</option>
+  <option value="Entamoeba**histolytica" >Entamoeba histolytica</option>
+  <option value="Entamoeba**invadens" >Entamoeba invadens</option>
+  <option value="Cryptosporidium**parvum" >Cryptosporidium parvum</option>
+  <option value="Cryptosporidium**hominis" >Cryptosporidium hominis</option>
+  <option value="Cryptosporidium**muris" >Cryptosporidium muris</option>
+  <option value="Giardia**Assemblage**A**isolate**WB" >Giardia Assemblage A isolate WB</option>
+  <option value="Giardia**Assemblage**B**isolate**GS" >Giardia Assemblage B isolate GS</option>
+  <option value="Giardia**Assemblage**E**isolate**P15" >Giardia Assemblage E isolate P15</option>
+  <option value="Encephalitozoon**cuniculi" >Encephalitozoon cuniculi</option>
+  <option value="Encephalitozoon**intestinalis" >Encephalitozoon intestinalis</option>
+  <option value="Enterocytozoon**bieneusi" >Enterocytozoon bieneusi</option>
+  <option value="Babesia**bovis" >Babesia bovis</option>
+  <option value="Theileria**annulata" >Theileria annulata</option>
+  <option value="Theileria**parva" >Theileria parva</option>
+  <option value="Plasmodium**falciparum" >Plasmodium falciparum</option>
+  <option value="Plasmodium**vivax" >Plasmodium vivax</option>
+  <option value="Plasmodium**yoelii" >Plasmodium yoelii</option>
+  <option value="Plasmodium**berghei" >Plasmodium berghei</option>
+  <option value="Plasmodium**chabaudi" >Plasmodium chabaudi</option>
+  <option value="Plasmodium**knowlesi" >Plasmodium knowlesi</option>
+  <option value="Toxoplasma**gondii" >Toxoplasma gondii</option>
+  <option value="Neospora**caninum" >Neospora caninum</option>
+  <option value="Trichomonas**vaginalis" >Trichomonas vaginalis</option>
+  <option value="Trypanosoma**cruzi" >Trypanosoma cruzi</option>
+  <option value="Leishmania**braziliensis" >Leishmania braziliensis</option>
+  <option value="Leishmania**infantum" >Leishmania infantum</option>
+  <option value="Leishmania**major" >Leishmania major</option>
+  <option value="Leishmania**mexicana" >Leishmania mexicana</option>
+  <option value="Trypanosoma**brucei" >Trypanosoma brucei</option>
+  <option value="Trypanosoma**congolense" >Trypanosoma congolense</option>
+  <option value="Trypanosoma**vivax" >Trypanosoma vivax</option>
+     </param> 
+<param name="param1" type="select" label="Select Include Pseudogenes" help="see tip below">
+ <option value="No" selected="true">No</option>
+  <option value="Yes" >Yes</option>
+  <option value="Pseudogenes**Only" >Pseudogenes Only</option>
+     </param> 
+<param name="param2" type="select" label="Select Gene type" help="see tip below">
+ <option value="protein**coding" selected="true">protein coding</option>
+  <option value="snRNA**encoding" >snRNA encoding</option>
+  <option value="tRNA**encoding" >tRNA encoding</option>
+  <option value="rRNA**encoding" >rRNA encoding</option>
+  <option value="misc**RNA" >misc RNA</option>
+  <option value="snoRNA**encoding" >snoRNA encoding</option>
+  <option value="SRP**RNA**encoding" >SRP RNA encoding</option>
+  <option value="RNase**P**RNA" >RNase P RNA</option>
+  <option value="RNase**MRP**RNA" >RNase MRP RNA</option>
+  <option value="repeat**region" >repeat region</option>
+  <option value="scRNA**encoding" >scRNA encoding</option>
+     </param> 
+
+ <conditional name="cond_source"> 
+ <param name="optional_param_source" type="select" label="Show Additional Parameters">
+ <option value="no" selected="true">no</option> 
+ <option value="yes">yes</option> 
+ </param>
+<when value="no"> 
+ </when><when value="yes"> 
+<param name="param3" type="select" label="Select Output Fields" help="see tip below">
+ <option value="all" >all</option>
+  <option value="none" selected="true">none</option>
+  <option value="primary_key" >primary_key</option>
+  <option value="formatted_gene_id" >formatted_gene_id</option>
+  <option value="sequence_id" >sequence_id</option>
+  <option value="chromosome" >chromosome</option>
+  <option value="chromosome_order_num" >chromosome_order_num</option>
+  <option value="location_text" >location_text</option>
+  <option value="strand" >strand</option>
+  <option value="gene_type" >gene_type</option>
+  <option value="exon_count" >exon_count</option>
+  <option value="transcript_length" >transcript_length</option>
+  <option value="cds_length" >cds_length</option>
+  <option value="product" >product</option>
+  <option value="protein_length" >protein_length</option>
+  <option value="tm_count" >tm_count</option>
+  <option value="molecular_weight" >molecular_weight</option>
+  <option value="isoelectric_point" >isoelectric_point</option>
+  <option value="ec_numbers_string" >ec_numbers_string</option>
+  <option value="ortholog_number" >ortholog_number</option>
+  <option value="paralog_number" >paralog_number</option>
+  <option value="orthomcl_name" >orthomcl_name</option>
+  <option value="signalp_scores" >signalp_scores</option>
+  <option value="signalp_peptide" >signalp_peptide</option>
+  <option value="ann_go_function" >ann_go_function</option>
+  <option value="ann_go_process" >ann_go_process</option>
+  <option value="ann_go_component" >ann_go_component</option>
+  <option value="pred_go_function" >pred_go_function</option>
+  <option value="pred_go_process" >pred_go_process</option>
+  <option value="pred_go_component" >pred_go_component</option>
+  <option value="organism" >organism</option>
+  <option value="is_pseudo" >is_pseudo</option>
+  <option value="protein_sequence" >protein_sequence</option>
+  <option value="transcript_sequence" >transcript_sequence</option>
+  <option value="cds" >cds</option>
+  <option value="wdk_weight" >wdk_weight</option>
+     </param> 
+<param name="param4" type="select" label="Select Output Tables" help="see tip below">
+ <option value="all" >all</option>
+  <option value="none" selected="true">none</option>
+  <option value="SNPs" >SNPs</option>
+  <option value="GeneModelDump" >GeneModelDump</option>
+  <option value="InterPro" >InterPro</option>
+  <option value="TMHMM" >TMHMM</option>
+  <option value="LowComplexity" >LowComplexity</option>
+  <option value="SignalP" >SignalP</option>
+  <option value="BlastP" >BlastP</option>
+  <option value="Genbank" >Genbank</option>
+  <option value="SageTags" >SageTags</option>
+  <option value="Notes" >Notes</option>
+  <option value="UserComments" >UserComments</option>
+  <option value="CommunityExpComments" >CommunityExpComments</option>
+  <option value="EcNumber" >EcNumber</option>
+  <option value="MassSpec" >MassSpec</option>
+  <option value="GoTerms" >GoTerms</option>
+  <option value="Phenotype" >Phenotype</option>
+  <option value="Y2hInteractions" >Y2hInteractions</option>
+  <option value="Orthologs" >Orthologs</option>
+  <option value="MetabolicPathways" >MetabolicPathways</option>
+  <option value="TaskComments" >TaskComments</option>
+  <option value="ArrayElements" >ArrayElements</option>
+  <option value="TwoChannelDiffExpr" >TwoChannelDiffExpr</option>
+  <option value="ProteinExpression" >ProteinExpression</option>
+  <option value="Mr4Reagents" >Mr4Reagents</option>
+  <option value="ProteinDatabase" >ProteinDatabase</option>
+  <option value="GeneLinkouts" >GeneLinkouts</option>
+  <option value="3dPreds" >3dPreds</option>
+  <option value="PdbSimilarities" >PdbSimilarities</option>
+  <option value="Epitopes" >Epitopes</option>
+  <option value="IsolateOverlap" >IsolateOverlap</option>
+     </param> 
+</when>
+</conditional></inputs>
+  <outputs>
+    <data format="tabular" name="output" />
+  </outputs>
+  <help>
+Replace white space with ** in all parameter values
+
+.. class:: infomark
+
+**TIP:** Organism type is xsd:string
+
+.. class:: infomark
+
+**TIP:** Include Pseudogenes type is xsd:string
+
+.. class:: infomark
+
+**TIP:** Gene type type is xsd:string
+  </help>
+</tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clients/client_5.xml~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,138 @@
+<tool id="client_51" name="genesbymolecularweight">
+  <description> Client for method: genesbymolecularweight , Web service: http://eupathdb.org/webservices/GeneQuestions/GenesByMolecularWeight.wadl </description>
+  <command interpreter="python">
+ #if $cond_source.optional_param_source=="no" #client_1.py $output http://eupathdb.org/webservices/GeneQuestions/GenesByMolecularWeight.xml organism $param0 min_molecular_weight $param1 max_molecular_weight $param2#else #client_1.py $output http://eupathdb.org/webservices/GeneQuestions/GenesByMolecularWeight.xml organism $param0 min_molecular_weight $param1 max_molecular_weight $param2 o-fields $cond_source.param3 o-tables $cond_source.param4#end if 
+</command>
+  <inputs>
+<param name="param0" type="select" label="organism" help="see tip below">
+ <option value="Entamoeba**dispar" >Entamoeba dispar</option>
+  <option value="Entamoeba**histolytica" >Entamoeba histolytica</option>
+  <option value="Entamoeba**invadens" >Entamoeba invadens</option>
+  <option value="Cryptosporidium**parvum" >Cryptosporidium parvum</option>
+  <option value="Cryptosporidium**hominis" >Cryptosporidium hominis</option>
+  <option value="Cryptosporidium**muris" >Cryptosporidium muris</option>
+  <option value="Giardia**Assemblage**A**isolate**WB" >Giardia Assemblage A isolate WB</option>
+  <option value="Giardia**Assemblage**B**isolate**GS" >Giardia Assemblage B isolate GS</option>
+  <option value="Giardia**Assemblage**E**isolate**P15" >Giardia Assemblage E isolate P15</option>
+  <option value="Encephalitozoon**cuniculi" >Encephalitozoon cuniculi</option>
+  <option value="Encephalitozoon**intestinalis" >Encephalitozoon intestinalis</option>
+  <option value="Plasmodium**falciparum" >Plasmodium falciparum</option>
+  <option value="Plasmodium**vivax" >Plasmodium vivax</option>
+  <option value="Plasmodium**yoelii" >Plasmodium yoelii</option>
+  <option value="Plasmodium**berghei" >Plasmodium berghei</option>
+  <option value="Plasmodium**chabaudi" >Plasmodium chabaudi</option>
+  <option value="Plasmodium**knowlesi" >Plasmodium knowlesi</option>
+  <option value="Toxoplasma**gondii" >Toxoplasma gondii</option>
+  <option value="Neospora**caninum" >Neospora caninum</option>
+  <option value="Trichomonas**vaginalis" >Trichomonas vaginalis</option>
+  <option value="Trypanosoma**cruzi" >Trypanosoma cruzi</option>
+  <option value="Leishmania**braziliensis" >Leishmania braziliensis</option>
+  <option value="Leishmania**infantum" >Leishmania infantum</option>
+  <option value="Leishmania**major" >Leishmania major</option>
+  <option value="Leishmania**mexicana" >Leishmania mexicana</option>
+  <option value="Trypanosoma**brucei" >Trypanosoma brucei</option>
+  <option value="Trypanosoma**congolense" >Trypanosoma congolense</option>
+  <option value="Trypanosoma**vivax" >Trypanosoma vivax</option>
+     </param> 
+<param format="text" size = "150" name = "param1"  type="text" label="min_molecular_weight" help="see tip below" />
+<param format="text" size = "150" name = "param2"  type="text" label="max_molecular_weight" help="see tip below" />
+
+ <conditional name="cond_source"> 
+ <param name="optional_param_source" type="select" label="Help">
+ <option value="no" selected="true">no</option> 
+ <option value="yes">yes</option> 
+ </param>
+<when value="no"> 
+ </when><when value="yes"> 
+<param name="param3" type="select" label="o-fields" help="see tip below">
+ <option value="all" >all</option>
+  <option value="none" selected="true">none</option>
+  <option value="primary_key" >primary_key</option>
+  <option value="formatted_gene_id" >formatted_gene_id</option>
+  <option value="external_db_name" >external_db_name</option>
+  <option value="sequence_id" >sequence_id</option>
+  <option value="chromosome" >chromosome</option>
+  <option value="location_text" >location_text</option>
+  <option value="strand" >strand</option>
+  <option value="gene_type" >gene_type</option>
+  <option value="exon_count" >exon_count</option>
+  <option value="transcript_length" >transcript_length</option>
+  <option value="cds_length" >cds_length</option>
+  <option value="product" >product</option>
+  <option value="protein_length" >protein_length</option>
+  <option value="tm_count" >tm_count</option>
+  <option value="molecular_weight" >molecular_weight</option>
+  <option value="isoelectric_point" >isoelectric_point</option>
+  <option value="ec_numbers_string" >ec_numbers_string</option>
+  <option value="ortholog_number" >ortholog_number</option>
+  <option value="paralog_number" >paralog_number</option>
+  <option value="orthomcl_name" >orthomcl_name</option>
+  <option value="signalp_scores" >signalp_scores</option>
+  <option value="signalp_peptide" >signalp_peptide</option>
+  <option value="ann_go_function" >ann_go_function</option>
+  <option value="ann_go_process" >ann_go_process</option>
+  <option value="ann_go_component" >ann_go_component</option>
+  <option value="pred_go_function" >pred_go_function</option>
+  <option value="pred_go_process" >pred_go_process</option>
+  <option value="pred_go_component" >pred_go_component</option>
+  <option value="organism" >organism</option>
+  <option value="protein_sequence" >protein_sequence</option>
+  <option value="transcript_sequence" >transcript_sequence</option>
+  <option value="cds" >cds</option>
+  <option value="wdk_weight" >wdk_weight</option>
+     </param> 
+<param name="param4" type="select" label="o-tables" help="see tip below">
+ <option value="all" >all</option>
+  <option value="none" selected="true">none</option>
+  <option value="SNPs" >SNPs</option>
+  <option value="GeneModelDump" >GeneModelDump</option>
+  <option value="InterPro" >InterPro</option>
+  <option value="TMHMM" >TMHMM</option>
+  <option value="LowComplexity" >LowComplexity</option>
+  <option value="SignalP" >SignalP</option>
+  <option value="BlastP" >BlastP</option>
+  <option value="Genbank" >Genbank</option>
+  <option value="SageTags" >SageTags</option>
+  <option value="Notes" >Notes</option>
+  <option value="UserComments" >UserComments</option>
+  <option value="CommunityExpComments" >CommunityExpComments</option>
+  <option value="EcNumber" >EcNumber</option>
+  <option value="MassSpec" >MassSpec</option>
+  <option value="GoTerms" >GoTerms</option>
+  <option value="Aliases" >Aliases</option>
+  <option value="Phenotype" >Phenotype</option>
+  <option value="Y2hInteractions" >Y2hInteractions</option>
+  <option value="Orthologs" >Orthologs</option>
+  <option value="MetabolicPathways" >MetabolicPathways</option>
+  <option value="TaskComments" >TaskComments</option>
+  <option value="ArrayElements" >ArrayElements</option>
+  <option value="TwoChannelDiffExpr" >TwoChannelDiffExpr</option>
+  <option value="ProteinExpression" >ProteinExpression</option>
+  <option value="Mr4Reagents" >Mr4Reagents</option>
+  <option value="ProteinDatabase" >ProteinDatabase</option>
+  <option value="GeneLinkouts" >GeneLinkouts</option>
+  <option value="3dPreds" >3dPreds</option>
+  <option value="PdbSimilarities" >PdbSimilarities</option>
+  <option value="Epitopes" >Epitopes</option>
+  <option value="IsolateOverlap" >IsolateOverlap</option>
+     </param> 
+</when>
+</conditional></inputs>
+  <outputs>
+    <data format="tabular" name="output" />
+  </outputs>
+  <help>
+
+.. class:: infomark
+
+**TIP:** organism type is xsd:string
+
+.. class:: infomark
+
+**TIP:** min_molecular_weight type is xsd:string
+
+.. class:: infomark
+
+**TIP:** max_molecular_weight type is xsd:string
+  </help>
+</tool>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clients/client_9.xml~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,61 @@
+<tool id="client_9" name="run">
+  <description> Client for operation : run , Web service: wublast.wublast_services </description>
+  <command interpreter="python">
+ #if $cond_source.optional_param_source=="no" #client_1.py $output wublast.wublast_services  run "_parameters|_sequence" $param0 "_email" $param1 "_parameters|_stype" $param2 "_parameters|_program" $param3 "_parameters|_database|_string|0|" $param4 #else #client_1.py $output wublast.wublast_services    run
+ "_parameters|_sequence" $param0 "_email" $param1 "_parameters|_stype" $param2 "_parameters|_program" $param3 "_parameters|_database|_string" $param4 "_parameters|_sensitivity" $cond_source.param5 "_parameters|_topcombon" $cond_source.param6 "_parameters|_filter" $cond_source.param7 "_parameters|_alignments" $cond_source.param8 "_parameters|_scores" $cond_source.param9 "_parameters|_viewfilter" $cond_source.param10 "_parameters|_sort" $cond_source.param11 "_parameters|_strand" $cond_source.param12 "_parameters|_align" $cond_source.param13 "_parameters|_matrix" $cond_source.param14 "_title" $cond_source.param15 "_parameters|_stats" $cond_source.param16 "_parameters|_exp" $cond_source.param17 #end if 
+</command>
+  <inputs>
+<param format="text" size = "150" name = "param0"  type="text" label="Enter sequence" help="see tip below" />
+<param format="text" size = "150" name = "param1"  type="text" label="Enter email" help="see tip below" />
+<param format="text" size = "150" name = "param2"  type="text" label="Enter stype" help="see tip below" />
+<param format="text" size = "150" name = "param3"  type="text" label="Enter program" help="see tip below" />
+<param format="text" size = "150" name = "param4"  type="text" label="Enter string" help="see tip below" />
+
+ <conditional name="cond_source"> 
+ <param name="optional_param_source" type="select" label="Show Additional Parameters">
+ <option value="no" selected="true">no</option> 
+ <option value="yes">yes</option> 
+ </param>
+<when value="no"> 
+ </when><when value="yes"> 
+<param format="text" size = "150" name = "param5"  type="text" label="Enter sensitivity" help="see tip below" />
+<param format="text" size = "150" name = "param6"  type="text" label="Enter topcombon" help="see tip below" />
+<param format="text" size = "150" name = "param7"  type="text" label="Enter filter" help="see tip below" />
+<param format="text" size = "150" name = "param8"  type="text" label="Enter alignments" help="see tip below" />
+<param format="text" size = "150" name = "param9"  type="text" label="Enter scores" help="see tip below" />
+<param format="text" size = "150" name = "param10"  type="text" label="Enter viewfilter" help="see tip below" />
+<param format="text" size = "150" name = "param11"  type="text" label="Enter sort" help="see tip below" />
+<param format="text" size = "150" name = "param12"  type="text" label="Enter strand" help="see tip below" />
+<param format="text" size = "150" name = "param13"  type="text" label="Enter align" help="see tip below" />
+<param format="text" size = "150" name = "param14"  type="text" label="Enter matrix" help="see tip below" />
+<param format="text" size = "150" name = "param15"  type="text" label="Enter title" help="see tip below" />
+<param format="text" size = "150" name = "param16"  type="text" label="Enter stats" help="see tip below" />
+<param format="text" size = "150" name = "param17"  type="text" label="Enter exp" help="see tip below" />
+</when>
+</conditional></inputs>
+  <outputs>
+    <data format="tabular" name="output" />
+  </outputs>
+  <help>
+
+.. class:: infomark
+
+**TIP:** About sequence: type is String
+
+.. class:: infomark
+
+**TIP:** About email: type is String
+
+.. class:: infomark
+
+**TIP:** About stype: type is String
+
+.. class:: infomark
+
+**TIP:** About program: type is String
+
+.. class:: infomark
+
+**TIP:** About string: type is String
+  </help>
+</tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/edit_tool_conf.py	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,73 @@
+'''
+@author  Chaitanya Guttula, Sumedha Ganjoo
+@see     LICENSE (MIT style license file).
+'''
+
+import os
+
+'''
+Open the toolconf.xml file and adds the tool under 'Web Service Workflow Tools' that has been passed to it.
+
+'''
+class editToolConfig(object):
+    def addTool(self,toolName):
+      galaxyhome=os.environ.get('GALAXY_HOME')
+      f1=open(galaxyhome+'/tool_conf.xml','r')
+      f1.seek(0,0)
+      f2=open(galaxyhome+'/tool_conf_backup.xml','w')
+      f2.seek(0,0)
+
+      ##first copy everything upto WebServiceTool1.xml into another file f2
+      line = f1.readline()
+      f2.write(line)
+
+      lineStripped=line.lstrip()
+      lineStripped=lineStripped.rstrip()
+
+      #add the workflow Web service invocation tool under Web Service Workflow Tools section
+      while not lineStripped == '<section name="Select Web Service Workflow Tool" id="WebServiceWorkflow">':
+        line = f1.readline()
+        f2.write(line)
+        lineStripped = line.lstrip()
+        lineStripped=lineStripped.rstrip()
+      else:
+        print line
+
+      ## add new tool to f2
+      f2.write('    <tool file="WebServiceToolWorkflow_REST_SOAP/workflowclients/'+toolName + '.xml"/>\n')
+
+      ## copy rest of f1 into f2
+      while not lineStripped == '</toolbox>':
+        line = f1.readline()
+        f2.write(line)
+        lineStripped = line.lstrip()
+        lineStripped=lineStripped.rstrip()        
+      else:
+        print line
+
+      ##close f1 and f2
+      f1.close()
+      f2.close()
+
+      ##interchange modes of f1 and f2
+      f1=open(galaxyhome+'/tool_conf.xml','w')
+      f1.seek(0,0)
+      f2=open(galaxyhome+'/tool_conf_backup.xml','r')
+      f2.seek(0,0)
+
+      line = f2.readline()
+      f1.write(line)
+
+      lineStripped=line.lstrip()
+
+      ##write entire f2 into f1 (reverse roles)
+      while not lineStripped == '</toolbox>':
+        line = f2.readline()
+        f1.write(line)
+        lineStripped = line.lstrip()
+        lineStripped=lineStripped.rstrip()        
+      else:
+        print line
+
+      f1.close()
+      f2.close()
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/edit_tool_conf.pyc has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/edit_tool_conf.py~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,76 @@
+'''
+@author  Chaitanya Guttula, Sumedha Ganjoo
+@see     LICENSE (MIT style license file).
+'''
+
+import os
+
+'''
+Open the toolconf.xml file and adds the tool under 'Web Service Workflow Tools' that has been passed to it.
+
+'''
+
+__author__="Chaitanya Guttula, Sumedha Ganjoo"
+
+class editToolConfig(object):
+    def addTool(self,toolName):
+      galaxyhome=os.environ.get('GALAXY_HOME')
+      f1=open(galaxyhome+'/tool_conf.xml','r')
+      f1.seek(0,0)
+      f2=open(galaxyhome+'/tool_conf_backup.xml','w')
+      f2.seek(0,0)
+
+      ##first copy everything upto WebServiceTool1.xml into another file f2
+      line = f1.readline()
+      f2.write(line)
+
+      lineStripped=line.lstrip()
+      lineStripped=lineStripped.rstrip()
+
+      #add the workflow Web service invocation tool under Web Service Workflow Tools section
+      while not lineStripped == '<section name="Web Service Workflow Tools" id="WebServiceWorkflow">':
+        line = f1.readline()
+        f2.write(line)
+        lineStripped = line.lstrip()
+        lineStripped=lineStripped.rstrip()
+      else:
+        print line
+
+      ## add new tool to f2
+      f2.write('    <tool file="WebServiceToolWorkflow_REST_SOAP/workflowclients/'+toolName + '.xml"/>\n')
+
+      ## copy rest of f1 into f2
+      while not lineStripped == '</toolbox>':
+        line = f1.readline()
+        f2.write(line)
+        lineStripped = line.lstrip()
+        lineStripped=lineStripped.rstrip()        
+      else:
+        print line
+
+      ##close f1 and f2
+      f1.close()
+      f2.close()
+
+      ##interchange modes of f1 and f2
+      f1=open(galaxyhome+'/tool_conf.xml','w')
+      f1.seek(0,0)
+      f2=open(galaxyhome+'/tool_conf_backup.xml','r')
+      f2.seek(0,0)
+
+      line = f2.readline()
+      f1.write(line)
+
+      lineStripped=line.lstrip()
+
+      ##write entire f2 into f1 (reverse roles)
+      while not lineStripped == '</toolbox>':
+        line = f2.readline()
+        f1.write(line)
+        lineStripped = line.lstrip()
+        lineStripped=lineStripped.rstrip()        
+      else:
+        print line
+
+      f1.close()
+      f2.close()
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/edit_tool_conf1.py	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,75 @@
+'''
+@author  Chaitanya Guttula, Sumedha Ganjoo
+@see     LICENSE (MIT style license file).
+'''
+
+import os
+
+'''
+Opens the toolconf.xml file and then adds the tool that is paased to it under Web Service tools
+'''
+
+__author__=""
+
+class editToolConfig1(object):
+    def addTool(self,toolName):
+      galaxyhome=os.environ.get('GALAXY_HOME')
+      f1=open(galaxyhome+'/tool_conf.xml','r')
+      f1.seek(0,0)
+      f2=open(galaxyhome+'/tool_conf_backup.xml','w')
+      f2.seek(0,0)
+
+      #copy everything from tool_conf.xml upto the section 'Web Service Tools' into another file f2
+      line = f1.readline()
+      f2.write(line)
+
+      lineStripped=line.lstrip()
+      lineStripped=lineStripped.rstrip()
+
+      #add the one-time Web service invocation tool under Web Service Tools section
+      while not lineStripped == '<section name="Select Web Service Tool" id="WebServices">':
+        line = f1.readline()
+        f2.write(line)
+        lineStripped = line.lstrip()
+        lineStripped=lineStripped.rstrip()        
+      else:
+        print line
+
+      f2.write('    <tool file="WebServiceToolWorkflow_REST_SOAP/clients/'+toolName + '.xml"/>\n')
+
+      #copy rest of tool_conf.xml file f2
+      while not lineStripped == '</toolbox>':
+        line = f1.readline()
+        f2.write(line)
+        lineStripped = line.lstrip()
+        lineStripped=lineStripped.rstrip()          
+      else:
+        print line
+
+      ##close f1 and f2
+      f1.close()
+      f2.close()
+
+      ##interchange modes of f1 and f2
+      f1=open(galaxyhome+'/tool_conf.xml','w')
+      f1.seek(0,0)
+      f2=open(galaxyhome+'/tool_conf_backup.xml','r')
+      f2.seek(0,0)
+
+      line = f2.readline()
+      f1.write(line)
+
+      lineStripped=line.lstrip()
+      lineStripped = lineStripped.rstrip()
+
+      ##write entire f2 into f1 (reverse roles)
+      while not lineStripped == '</toolbox>':
+        line = f2.readline()
+        f1.write(line)
+        lineStripped = line.lstrip()
+        lineStripped = lineStripped.rstrip()        
+      else:
+        print line
+
+      f1.close()
+      f2.close()
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/edit_tool_conf1.pyc has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/edit_tool_conf1.py~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,75 @@
+'''
+@author  Chaitanya Guttula, Sumedha Ganjoo
+@see     LICENSE (MIT style license file).
+'''
+
+import os
+
+'''
+Opens the toolconf.xml file and then adds the tool that is paased to it under Web Service tools
+'''
+
+__author__=""
+
+class editToolConfig1(object):
+    def addTool(self,toolName):
+      galaxyhome=os.environ.get('GALAXY_HOME')
+      f1=open(galaxyhome+'/tool_conf.xml','r')
+      f1.seek(0,0)
+      f2=open(galaxyhome+'/tool_conf_backup.xml','w')
+      f2.seek(0,0)
+
+      #copy everything from tool_conf.xml upto the section 'Web Service Tools' into another file f2
+      line = f1.readline()
+      f2.write(line)
+
+      lineStripped=line.lstrip()
+      lineStripped=lineStripped.rstrip()
+
+      #add the one-time Web service invocation tool under Web Service Tools section
+      while not lineStripped == '<section name="Web Service Tools" id="WebServices">':
+        line = f1.readline()
+        f2.write(line)
+        lineStripped = line.lstrip()
+        lineStripped=lineStripped.rstrip()        
+      else:
+        print line
+
+      f2.write('    <tool file="WebServiceToolWorkflow_REST_SOAP/clients/'+toolName + '.xml"/>\n')
+
+      #copy rest of tool_conf.xml file f2
+      while not lineStripped == '</toolbox>':
+        line = f1.readline()
+        f2.write(line)
+        lineStripped = line.lstrip()
+        lineStripped=lineStripped.rstrip()          
+      else:
+        print line
+
+      ##close f1 and f2
+      f1.close()
+      f2.close()
+
+      ##interchange modes of f1 and f2
+      f1=open(galaxyhome+'/tool_conf.xml','w')
+      f1.seek(0,0)
+      f2=open(galaxyhome+'/tool_conf_backup.xml','r')
+      f2.seek(0,0)
+
+      line = f2.readline()
+      f1.write(line)
+
+      lineStripped=line.lstrip()
+      lineStripped = lineStripped.rstrip()
+
+      ##write entire f2 into f1 (reverse roles)
+      while not lineStripped == '</toolbox>':
+        line = f2.readline()
+        f1.write(line)
+        lineStripped = line.lstrip()
+        lineStripped = lineStripped.rstrip()        
+      else:
+        print line
+
+      f1.close()
+      f2.close()
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/generateClient.py	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,864 @@
+'''
+@author  Chaitanya Guttula, Sumedha Ganjoo
+@see     LICENSE (MIT style license file).
+'''
+
+import warnings
+
+with warnings.catch_warnings():
+    warnings.simplefilter("ignore")
+    import platform
+
+    from jpype._jpackage import JPackage
+    from jpype import *
+    import os.path
+    import sys
+    import string
+    from edit_tool_conf import *
+    from clientGenerator.msHandler import *
+    from clientGenerator.creatorEngineComplex import *
+    from clientGenerator.wsdl2path import *
+    from clientGenerator.paramConverter import *
+
+    
+class ClientGenerator(object):
+    
+    #instantiate a client for invocation of the selected method of a Web service in workflows
+    def __init__(self,webservice,operation,outputfile,servicetype):
+      with warnings.catch_warnings():
+        warnings.simplefilter("ignore")
+        self.operation = operation
+        self.webservice = webservice
+        #self.inputs = outputfile
+        self.outputfile = outputfile
+        self.galaxyhome=os.environ.get('GALAXY_HOME')
+        self.clientfile = ''
+        self.servicetype = servicetype
+        if self.servicetype == 'SOAP':
+            wLoad=wsdlLoader()
+            sys.path.append(self.galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator')
+            os.chdir(self.galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator')
+        
+            a = str(self.webservice).split('/')
+            wsdlnamelist = a[len(a)-1].split(".")
+            if len(wsdlnamelist)==1:
+        	    wsdlnamelist=a[len(a)-1].split('?')
+        	    print wsdlnamelist
+
+            foldername=wsdlnamelist[0]
+        
+            path =self.galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator/'+foldername
+        
+    #creates the client stubs
+            self.clientfile = wLoad.wsdlUrl2path(str(self.webservice),foldername)
+        
+            print 'Client file : ',self.clientfile
+            self.paramelement = None
+        
+	    #replace '__tilda__' with '~'
+        #if(url.find('__tilda__')>-1):
+        #    ulist = url.split('__tilda__')
+	    #url = '~'.join(ulist)
+        #self.url = url        
+        
+    '''
+    Checks if a particular paramter is reuired or not. This is used only for soap web services.
+    ''' 
+    def isRequired(self,param):
+        #j=0
+        #for param in inputl:
+        cc = ClientCreator()
+        self.msinstance = cc.opname2inputClassOb(self.operation,self.clientfile)
+        test = MessageHandler()
+        required = False
+        if (param.find('|$|')>-1):
+            plist = param.split('|')
+            #root = test.getParameter(self.msinstance(),plist[0])
+            k = 0
+            iparam = ''
+            for p in plist:
+                if(k<len(plist)-3):
+                    if(k==0):
+                        iparam = iparam+(p)
+                    else:
+                        iparam = iparam+'|'+p
+                    k=k+1
+            paramelement = test.getParameter(self.msinstance(),iparam)
+        else:
+            paramelement = test.getParameter(self.msinstance(),param)
+        self.paramelement = paramelement
+        if (param.find('|')>-1):   
+            plist = param.split('|')   
+            root = test.getParameter(self.msinstance(),plist[0])    
+            if not getattr(root,'nillable') and not getattr(paramelement,'nillable'):
+                required = True
+                return True
+            elif getattr(root,'nillable') or (not getattr(root,'nillable') and getattr(paramelement,'nillable')): 
+                required = False
+                return False
+        else:     
+            if not getattr(paramelement,'nillable'):     
+                required = True
+                return True
+            elif getattr(paramelement,'nillable'):
+                required = False
+                return False
+        return required
+    
+    
+    #replace '**' with ' '
+    def formatString(self,string):
+        l = string.split(' ')
+        return '**'.join(l)
+
+    '''
+    Checks if the tool(operation) is already addded to Galaxy. It opens the tool_conf.xml file and loops through the "Web Service Workflow Tools" sections
+    Then opens each and every tool (xml file) and looks for the description tag for the "Web Service" and "Client for Method" values and then checks
+    if it same as the opearation and web service. As the code is dependent on description of the toool xml file, any change in the description tag 
+    of the tool xml file can impact this function.
+    '''
+    def isToolPresent(self):
+        
+        f = open(self.galaxyhome+'/tool_conf.xml','r')
+        line = f.readline()
+        linestripped = line.lstrip()
+        linestripped = linestripped.rstrip()
+        
+        while linestripped != '<section name="Select Web Service Workflow Tool" id="WebServiceWorkflow">':
+            line = f.readline()
+            linestripped = line.lstrip()
+            linestripped = linestripped.rstrip()
+            
+        line = f.readline()
+        linestripped = line.lstrip()
+        linestripped = linestripped.rstrip()
+                
+        while linestripped != '</section>':
+            if linestripped.find('<') >-1:
+                toolparts = linestripped.split('"')
+                print '\ntoolparts are : ',toolparts
+                f1 = open(self.galaxyhome+'/tools/'+toolparts[-2],'r')
+                line1 = f1.readline()
+                while not line1.find('<description>') >-1:
+                    line1 = f1.readline() 
+                
+                linestripped1 = line1.lstrip()
+                linestripped1 = linestripped1.rstrip()
+                descriptionparts=linestripped1.split(' ')
+                print '\nOperation : ',descriptionparts
+                service = ''
+                if(self.servicetype == 'SOAP'):
+                    service = self.clientfile
+                elif self.servicetype == 'REST':
+                    service = self.webservice
+                print 'Service : ',service
+                print 'operation : ',self.operation
+                if(descriptionparts[5]==self.operation and descriptionparts[10] == service):
+                    f.close()
+                    f1.close()
+                    return True
+                f1.close()
+            line = f.readline()
+            linestripped = line.lstrip()
+            linestripped = linestripped.rstrip()
+            
+        f.close()
+        return False
+    
+    
+       
+    def wsdlClient(self):
+      with warnings.catch_warnings():
+        warnings.simplefilter("ignore")
+       
+        wLoad=wsdlLoader()
+        galaxyhome=os.environ.get('GALAXY_HOME')
+        sys.path.append(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator')
+        os.chdir(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator')
+        
+        a = str(self.webservice).split('/')
+        wsdlnamelist = a[len(a)-1].split(".")
+        if len(wsdlnamelist)==1:
+    	    wsdlnamelist=a[len(a)-1].split('?')
+    	    print wsdlnamelist
+
+        foldername=wsdlnamelist[0]
+        
+        path =galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator/'+foldername
+        
+    #creates the client stubs
+        clientfile=wLoad.wsdlUrl2path(str(self.webservice),foldername)
+        
+        webservice = clientfile
+        outputfile=open(self.outputfile,'w')
+        test = ClientCreator()
+        print 'inputs of '+self.operation+':\n'
+        inputs= test.opname2inputs(self.operation,webservice)
+        inputl = nested2flatDict(inputs)
+        inputlist = inputl.keys()
+        #noOfInputs=inputlist.count()
+        print '*',inputs,'\n'
+        count =0
+        if (len(inputs)==0):
+            inputs={' ':' '}
+            #inputlist=inputs.keys()
+        for i in inputlist:
+            if count==0:
+                outputfile.write(i+'\t'+webservice+'\t'+self.operation+'\n')
+            else:
+                outputfile.write(i+'\n')
+            count=count+1
+
+        cc = ClientCreator()
+        self.msinstance = cc.opname2inputClassOb(self.operation,webservice)
+        galaxyhome=os.environ.get('GALAXY_HOME')
+        
+        clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/workflowclients/ClientCount.xml','r')
+        clientCountFile.readline()
+        clientCountStr = clientCountFile.readline()
+        
+        clientCount=string.atoi(clientCountStr)
+        clientCount=clientCount+1
+        clientCountFile.close()
+        
+        clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/workflowclients/ClientCount.xml','w')
+        clientCountFile.write('<count> \n')
+        clientCountFile.write(str(clientCount)+'\n')
+        clientCountFile.write('</count> \n')
+        clientCountFile.close()
+        
+        
+        
+        
+        clientName = 'workflowclient_'+ str(clientCount)
+        
+        clientXml=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/workflowclients/'+clientName+'.xml','w')
+        clientXml.seek(0,0)
+        
+        clientXml.write('<tool id="' + clientName+'" name="'+foldername+'.' + self.operation +'">\n')
+        clientXml.write('  <description> Client for operation : '+self.operation+' , Web service : '+webservice+' </description>\n')
+
+  
+        #clientXml.write('  <command interpreter="python">\n  client_1.py \n' +'  $output \n  ' +self.webservice+' \n  '+self.operation+'\n')
+        
+        test = MessageHandler()
+        
+        #the workflow tool/client for a REST Web service invokes ./workflowclients/client_1.py to invoke the Web service
+        #write the command tag to specify the arguments passed to this client_1.py
+        
+        clientXml.write('  <command interpreter="python">\n  	client_1.py\n'+'	#if $cond_source.optional_param_source=="no":\n  	$output\n	$servicetype\n      $url\n      $method\n' +webservice+ '         '+self.operation+'\n')
+        ##write such that the parameters passed to client_1.py(change name to clientName.py) are dependent on a for loop
+        
+     # The paramter having |$| means that it has an elemnet with maxoccurs='unbounded' (i.e. array of strings)
+     	
+        j=0
+        for param in inputl:
+            if self.isRequired(param):
+                clientXml.write('	"'+param+'"\n	 #if $source'+str(j)+'.source'+str(j)+'_source=="user":\n	 $source'+str(j)+'.user_param'+str(j)+'\n	 #else:\n	 fileInput\n	 $source' + str(j) + '.cached_param' + str(j)+'\n	 #end if\n')           
+                j=j+1
+            
+        clientXml.write('   	#else:\n  	$output\n	$servicetype\n      $url\n      $method\n' +webservice+'            '+self.operation+'\n')
+	        
+	j=0
+        for param in inputl:
+            if self.isRequired(param):
+                clientXml.write('	"'+param+'"\n	 #if $source'+str(j)+'.source'+str(j)+'_source=="user":\n	 $source'+str(j)+'.user_param'+str(j)+'\n	 #else:\n	 fileInput\n	 $source' + str(j) + '.cached_param' + str(j)+'\n	 #end if\n')            
+                j=j+1
+                                    
+        for param in inputl:
+            if not self.isRequired(param):     
+                clientXml.write('	"'+param+'"\n	 #if $cond_source.source'+str(j)+'.source'+str(j)+'_source=="user":\n	 $cond_source.source'+str(j)+'.user_param'+str(j)+'\n	 #else:\n	 fileInput\n	 $cond_source.source' + str(j) + '.cached_param' + str(j)+'\n	 #end if\n')            
+                j=j+1        
+                        
+
+        clientXml.write('   	#end if\n')
+        
+        clientXml.write('</command>\n')
+        
+        #start writing inputs
+	    ##write inputs depending on required or not. if not required den dont display 
+        ##if required- den check default value, and if options exist.Depending on that
+        ##decide the type of parameter and options
+        ##The input servicetype tells what type of webservice it is wether SOAP or REST - Useful during invocation of the web servcie   
+        clientXml.write('  <inputs>\n')
+        clientXml.write('     <param name="servicetype" type="hidden" value="SOAP" />\n')
+        clientXml.write('     <param name="url" type="hidden" value="'+self.webservice+'" />\n')
+        clientXml.write('     <param name="method" type="hidden" value="'+self.operation+'" />\n')
+        
+        j=0
+        for param in inputl:                       
+            if self.isRequired(param):     
+                    pName = getattr(self.paramelement,'pname')
+            
+                    clientXml.write('<conditional name="source'+str(j)+'">\n    <param name="source' + str(j)+'_source" type="select" label="'+pName+' Source"> \n      <option value="cached" selected="true">Param value will be taken from previous step</option> \n      <option value="user">User will enter the param value</option> \n    </param>\n    <when value="user">\n')
+                    clientXml.write('      <param format="text" size = "150" name = "user_param'+str(j)+'"  ')
+                    clientXml.write('type="text" label="Enter '+pName+'" help="see tip below" />\n')
+                  #  clientXml.write('    </param> \n')
+                    clientXml.write(' </when>\n')    
+                    clientXml.write(' <when value="cached">\n    <param name = "cached_param'+ str(j)+'" type="data" label="' + pName + '"/> \n </when>\n   </conditional>')            
+                    j=j+1        
+            
+            
+        clientXml.write('  <conditional name="cond_source">\n  <param name="optional_param_source" type="select" label="Display Optional Parameters"> \n <option value="no" selected="true">no</option> \n <option value="yes">yes</option> \n </param> \n    <when value="no"> \n     </when>\n    <when value="yes"> \n')
+
+        for param in inputl:
+            if not self.isRequired(param):     
+                    pName = getattr(self.paramelement,'pname')
+                      
+                    clientXml.write('\n<conditional name="source'+str(j)+'">\n  <param name="source' + str(j)+'_source" type="select" label="'+pName+' Source"> \n    <option value="cached" selected="true">Param value will be taken from previous step</option> \n <option value="user">User will enter the param value</option> \n</param>\n         <when value="user">')
+                    clientXml.write('<param format="text" size = "150" name = "user_param'+str(j)+'"  ')
+                    clientXml.write('type="text" label="Enter '+pName+'" help="see tip below" />\n')
+                    clientXml.write(' </when>\n')    
+                    clientXml.write('<when value="cached">\n <param name = "cached_param'+ str(j)+'" type="data" label="' + pName + '"/> \n  </when>\n   </conditional>\n')
+                    j=j+1       
+            
+                                    
+        clientXml.write(' </when>\n </conditional>\n')
+                    
+        clientXml.write('</inputs>\n  <outputs>\n    <data format="tabular" name="output" />\n  </outputs>\n')
+        clientXml.write('  <help>\n')
+        paramtype = None
+        for param in inputl:
+            if self.isRequired(param):     
+                    if isinstance(self.paramelement,ZSI.TC.String):
+                        paramtype = 'String'
+                    elif isinstance(self.paramelement,ZSI.TCnumbers.FPfloat):
+                        paramtype = 'Floating point'
+                    elif isinstance(self.paramelement,ZSI.TC.Boolean):
+                        paramtype = 'Boolean'
+                    elif isinstance(self.paramelement,ZSI.TCnumbers.Iint):
+                        paramtype = 'Integer'
+                    clientXml.write('\n.. class:: infomark\n\n**TIP:** About '+ getattr(self.paramelement,'pname') +': type is ' + paramtype + '\n')       
+                                 
+            
+        clientXml.write('  </help>\n</tool>')
+                
+#        clientXml.write('  <help>\n')
+        
+ #       j=0
+  #      for param in params:
+   #         clientXml.write('\n.. class:: infomark\n\n**TIP:** '+ param +' type is ' + paramTypes[j] +'\n')       
+        
+    #    clientXml.write('  </help>\n</tool>')
+       # clientXml.write('</tool>')
+	clientXml.close()
+        editor = editToolConfig()
+        editor.addTool(clientName)
+        
+        ##later add help feature
+    
+
+        
+    def wadlClient(self):
+      
+        ##parse wadl         
+        pkg=JPackage('lsdis')
+        urlToPass=java.net.URL(self.webservice)
+        wadlUrl = self.webservice
+    
+        webserviceId = ''#self.operation
+        resUrl = self.operation
+        
+        urls = []
+        methods = []
+        params = []
+        
+        #invoke the WADL parser packaged with this tool.
+        WADLParserDriver=pkg.WADLParserDriver
+        wPD=WADLParserDriver()
+        wPD.parse(urlToPass)
+        urls = wPD.getUrl()
+        methods = wPD.getCompleteMethodList()
+        
+        a= str(self.webservice).split('/')
+        wadlnamelist = a[len(a)-1].split(".")
+        if len(wadlnamelist)==1:
+    	    wadlnamelist=a[len(a)-1].split('?')
+    	    print wadlnamelist
+
+        wadlname=wadlnamelist[0]
+        
+        #write into the output file information about the method and Web service to be invoked.        
+        f=open(self.outputfile,'w')
+        f.write(self.webservice+'\t')
+        f.write(resUrl+'\t')
+        
+        #get parameters for the selected method of the Web service
+        i=0
+        for method in methods:
+            x = str(method.getId())
+            y = str(urls.get(i))
+            webserviceId = x
+            if y == resUrl : 
+                params = method.getRequest().getParams()
+                break
+            i=i+1    
+        
+        f.write(webserviceId)
+        
+        galaxyhome=os.environ.get('GALAXY_HOME')
+
+        methodname = resUrl.split('/')
+
+        #./workflowclients/ClientCount.xml keeps the count of the clients/tools currently registered in Galaxy for Web service invocation.
+        #read the count and increment it. 
+        clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/workflowclients/ClientCount.xml','r')
+        clientCountFile.readline()
+        clientCountStr = clientCountFile.readline()
+        clientCount=string.atoi(clientCountStr)
+        clientCount=clientCount+1
+        clientCountFile.close()
+        
+        clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/workflowclients/ClientCount.xml','w')
+        clientCountFile.write('<count> \n')
+        clientCountFile.write(str(clientCount)+'\n')
+        clientCountFile.write('</count> \n') 
+        
+        #include the count in the tool's name and id to uniquely identify it. 
+        clientName = 'workflowclient_'+ str(clientCount)
+        
+        #create a new xml file under ./workflowclients/
+        clientXml=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/workflowclients/'+clientName+'.xml','w')
+        clientXml.seek(0,0)
+        
+        #write the tool id, name and description
+        clientXml.write('<tool id="' + clientName+'" name="' + wadlname + '.' + methodname[-1] +'">\n')
+        clientXml.write('  <description> Client for method : '+self.operation+' , Web service : '+self.webservice+' </description>\n')
+
+        #the workflow tool/client for a REST Web service invokes ./workflowclients/client_1.py to invoke the Web service
+        #write the command tag to specify the arguments passed to this client_1.py
+        clientXml.write('  <command interpreter="python">\n  	client_1.py\n'+'	#if $cond_source.optional_param_source=="no":\n  	$output\n	$servicetype\n      $url\n        $method\n     ' +resUrl+'\n')
+
+        
+        j=0
+        for param in params:
+            if param.isRequired():
+                clientXml.write('	'+self.formatString(param.getName())+'\n	 #if $source'+str(j)+'.source'+str(j)+'_source=="user":\n	 $source'+str(j)+'.user_param'+str(j)+'\n	 #else:\n	 fileInput\n	 $source' + str(j) + '.cached_param' + str(j)+'\n	 #end if\n')            
+                j=j+1
+                
+        clientXml.write('   	#else:\n  	$output\n	$servicetype\n    $url\n    $method\n' +resUrl+'\n')
+        j=0
+        for param in params:
+            if param.isRequired():
+                clientXml.write('	'+self.formatString(param.getName())+'\n	 #if $source'+str(j)+'.source'+str(j)+'_source=="user":\n	 $source'+str(j)+'.user_param'+str(j)+'\n	 #else:\n	 fileInput\n	 $source' + str(j) + '.cached_param' + str(j)+'\n	 #end if\n')            
+                j=j+1
+        
+        for param in params:
+            if not param.isRequired():
+                clientXml.write('	'+self.formatString(param.getName())+'\n	 #if $cond_source.source'+str(j)+'.source'+str(j)+'_source=="user":\n	 $cond_source.source'+str(j)+'.user_param'+str(j)+'\n	 #else:\n	 fileInput\n	 $cond_source.source' + str(j) + '.cached_param' + str(j)+'\n	 #end if\n')            
+                j=j+1
+
+        clientXml.write('   	#end if\n')
+        clientXml.write('</command>\n')
+        
+        #start writing inputs
+	    ##write inputs depending on required or not. if not required den dont display 
+        ##if required- den check default value, and if options exist.Depending on that
+        ##decide the type of parameter and options
+        ##The input servicetype tells what type of webservice it is wether SOAP or REST - Useful during invocation of the web servcie   
+        
+        clientXml.write('  <inputs>\n')
+        clientXml.write('     <param name="servicetype" type="hidden" value="REST"/>\n')
+        clientXml.write('     <param name="url" type="hidden" value="'+self.webservice+'" />\n')
+        clientXml.write('     <param name="method" type="hidden" value="'+self.operation+'" />\n')
+  
+        
+        #create a param for each required parameter described in the WADL. Check if defaults are specified. Create param such that
+        #it can either be given a value manually or the value can be taken from a previous step.
+        j=0
+        for param in params:                       
+            if param.isRequired():
+                pName = param.getName()
+                for doc in param.getDocs():
+                    if doc.getTitle()=="prompt" or doc.getTitle()=="Prompt" or doc.getTitle()=="PROMPT":
+		        pName = doc.getInnerText()          
+            
+                clientXml.write('<conditional name="source'+str(j)+'">\n    <param name="source' + str(j)+'_source" type="select" label="'+pName+' Source"> \n      <option value="cached" selected="true">Param value will be taken from previous step</option> \n      <option value="user">User will enter the param value</option> \n    </param>\n    <when value="user">\n')
+                if param.getOptions().size()==0:
+                    clientXml.write('      <param format="text" size = "150" name = "user_param'+str(j)+'"  ')
+                    if not param.getDefault1() == None:
+                        clientXml.write('value="'+param.getDefault1()+'"  ')
+                    clientXml.write('type="text" label="Enter '+pName+'" help="see tip below" />\n')
+                else:
+                    clientXml.write('    <param name="user_param'+str(j)+'" type="select" label="Select '+pName+'" help="see tip below">\n' )    
+                    for option in param.getOptions():
+                        clientXml.write('      <option value="'+self.formatString(option.getName())+'" ')
+                        if option.getName() == param.getDefault1():
+                            clientXml.write('selected="true"')
+                        clientXml.write('>'+option.getName()+'</option>\n ')    
+                    clientXml.write('    </param> \n')
+                clientXml.write(' </when>\n')    
+                clientXml.write(' <when value="cached">\n    <param name = "cached_param'+ str(j)+'" type="data" label="' + pName + '"/> \n </when></conditional>')
+                j=j+1
+
+        #create a conditional param for each optional parameter described in the WADL. Again the param can be given a value manually or the value can be taken from
+        #a previous step.
+        clientXml.write('  <conditional name="cond_source">\n  <param name="optional_param_source" type="select" label="Display Optional Parameters"> \n <option value="no" selected="true">no</option> \n <option value="yes">yes</option> \n </param> \n    <when value="no"> \n     </when>\n    <when value="yes"> \n')
+
+        for param in params:
+            if not param.isRequired():
+                pName = param.getName()
+                for doc in param.getDocs():
+                    if doc.getTitle()=="prompt" or doc.getTitle()=="Prompt" or doc.getTitle()=="PROMPT":
+		        pName = doc.getInnerText()   
+		                    
+                clientXml.write('\n<conditional name="source'+str(j)+'">\n  <param name="source' + str(j)+'_source" type="select" label="'+pName+' Source"> \n    <option value="cached" selected="true">Param value will be taken from previous step</option> \n <option value="user">User will enter the param value</option> \n</param>\n         <when value="user">')
+                if param.getOptions().size()==0:
+                    clientXml.write('<param format="text" size = "150" name = "user_param'+str(j)+'"  ')
+                    if not param.getDefault1() == None:
+                        clientXml.write('value="'+param.getDefault1()+'"  ')
+                    clientXml.write('type="text" label="Enter '+pName+'" help="see tip below" />\n')
+                else:
+                    clientXml.write('<param name="user_param'+str(j)+'" type="select" label="Select '+pName+'" help="see tip below">\n' )    
+                    for option in param.getOptions():
+                        clientXml.write(' <option value="'+self.formatString(option.getName())+'" ')
+                        if option.getName() == param.getDefault1():
+                            clientXml.write('selected="true"')
+                        clientXml.write('>'+option.getName()+'</option>\n ')    
+                    clientXml.write('    </param> \n')
+                clientXml.write(' </when>\n')    
+                clientXml.write('<when value="cached">\n <param name = "cached_param'+ str(j)+'" type="data" label="' + pName + '"/> \n  </when></conditional>\n')
+                j=j+1
+                            
+                            
+                            
+        clientXml.write(' </when>\n </conditional>\n</inputs>\n  <outputs>\n    <data format="tabular" name="output" />\n  </outputs>\n')
+
+        #write information about each parameter in the help section        
+        clientXml.write('  <help>\n')
+        clientXml.write('Replace white space with ** in all parameter values\n')
+
+        for param in params:
+            if param.isRequired():
+                pName = param.getName()
+                for doc in param.getDocs():
+                    if doc.getTitle()=="prompt" or doc.getTitle()=="Prompt" or doc.getTitle()=="PROMPT":
+		        pName = doc.getInnerText()           
+                clientXml.write('\n.. class:: infomark\n\n**TIP:** '+ pName +' type is ' + param.getType()+'\n')       
+        
+        clientXml.write('  </help>\n</tool>')
+        
+        #adds the newly created tool to tool_conf.xml in Galaxy under the 'Web Service Workflow Tools' section.
+        editor = editToolConfig()
+        editor.addTool(clientName)
+        
+        
+        
+        
+    def sawadlClient(self):
+        ##parse sawadl 
+        
+        pkg=JPackage('edu.uga.cs.lsdis.meteors.wadls')
+        pkgModel =JPackage('org.semanticweb.owlapi.model')
+        pkgApiBinding =JPackage('org.semanticweb.owlapi.apibinding')
+        pkgVocab = JPackage('org.semanticweb.owlapi.vocab')
+    
+        DOCUMENT_IRI = "http://cs.uga.edu/~ganjoo/galaxy/EDAM.owl"
+    
+        sawadlUrl = self.webservice
+    
+        webserviceId = ''#self.inputs
+        resUrl = self.operation
+    
+        urls = []
+        methods = []
+        params = []
+        annotationSet = []
+
+        SAWADLParserDriver=pkg.SAWADLParserDriver
+        sawPD=SAWADLParserDriver()
+        sawPD.parse(sawadlUrl)
+        urls = sawPD.getUrl()
+        methods = sawPD.getCompleteMethodList()
+
+        IRI = pkgModel.IRI
+        OWLRDFVocabulary = pkgVocab.OWLRDFVocabulary
+        OWLManager = pkgApiBinding.OWLManager
+        OWLLiteral = pkgModel.OWLLiteral
+        owlOntManager = OWLManager.createOWLOntologyManager()
+        ontology = owlOntManager.loadOntologyFromOntologyDocument(IRI.create(DOCUMENT_IRI))
+        dataFactory = owlOntManager.getOWLDataFactory()
+        propertyComment = dataFactory.getOWLAnnotationProperty(OWLRDFVocabulary.RDFS_COMMENT.getIRI())
+
+        #write into the output file information about the method and Web service to be invoked.        
+        f=open(self.outputfile,'w')
+        f.write(self.webservice+'\t')
+        f.write(resUrl+'\t')
+        
+        i=0
+        for method in methods:
+            x = str(method.getName())
+            y = str(urls.get(i))
+            webserviceId = x
+            #if x == webserviceId :
+            if y == resUrl : 
+                params = method.getRequest().getParamList()
+                break
+            i=i+1    
+        
+
+        f.write(webserviceId)
+        
+        ##generate client's xml
+        galaxyhome=os.environ.get('GALAXY_HOME')
+        
+        clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/workflowclients/ClientCount.xml','r')
+        clientCountFile.readline()
+        clientCountStr = clientCountFile.readline()
+        clientCount=string.atoi(clientCountStr)
+        clientCount=clientCount+1
+        clientCountFile.close()
+        
+        clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/workflowclients/ClientCount.xml','w')
+        clientCountFile.write('<count> \n')
+        clientCountFile.write(str(clientCount)+'\n')
+        clientCountFile.write('</count> \n')
+	
+        
+        
+        
+        clientName = 'workflowclient_'+ str(clientCount)
+        
+        clientXml=open(galaxyhome+'/tools/WebServiceToolWorkflow/workflowclients/'+clientName+'.xml','w')
+        clientXml.seek(0,0)
+        
+        clientXml.write('<tool id="' + clientName+'" name="' + webserviceId +'">\n')
+        clientXml.write('  <description> Client for method: '+webserviceId+' , Web service: '+self.webservice+' </description>\n')
+
+  
+        clientXml.write('  <command interpreter="python">\n  #client_1.py \n'+'  $output \n  $servicetype\n  $url\n  $method\n  ' +resUrl+'\n')
+        ##write such that the parameters passed to client1.py(change name to clientName.py) are dependent on a for loop
+        
+               
+        j=0
+        for param in params:
+            if param.getRequired()=='true' or param.getRequired()=='True' or param.getRequired()=='TRUE':
+                clientXml.write('  '+self.formatString(param.getName())+'\n#if $source'+str(j)+'.source'+str(j)+'_source=="user" $source'+str(j)+'.user_param'+str(j)+' #else $source' + str(j) + '.cached_param' + str(j)+' #end if\n')            
+                j=j+1
+        clientXml.write('#if $cond_source.optional_param_source=="yes"')
+        
+        for param in params:
+            if not param.getRequired()=='true' and not param.getRequired()=='True' and not param.getRequired()=='TRUE':
+                clientXml.write('  '+self.formatString(param.getName())+'\n#if $cond_source.source'+str(j)+'.source'+str(j)+'_source=="user" $cond_source.source'+str(j)+'.user_param'+str(j)+' #else $cond_source.source' + str(j) + '.cached_param' + str(j)+' #end if\n')            
+                j=j+1
+
+        clientXml.write('#else \n#end if\n')
+        clientXml.write('</command>\n')                
+        
+        ##write inputs depending on required or not. if not required den dont display 
+        ##if required- den check default value, and if options exist.Depending on that
+        ##decide the type of parameter and options
+        ##The input servicetype tells what type of webservice it is wether SOAP or REST - Useful during invocation of the web servcie   
+        
+        clientXml.write('  <inputs>\n') 
+        clientXml.write('      <param name="servicetype" type="hidden" value="REST" />')
+        clientXml.write('      <param name="url" type="hidden" value="'+self.webservice+'" />\n')
+        clientXml.write('      <param name="method" type="hidden" value="'+self.operation+'" />\n')
+       
+        
+        j=0
+        for param in params:
+            if param.getRequired()=='true' or param.getRequired()=='True' or param.getRequired()=='TRUE':
+                clientXml.write('<conditional name="source'+str(j)+'">\n    <param name="source' + str(j)+'_source" type="select" label="'+param.getName()+' Source"> \n      <option value="cached" selected="true">Param value will be taken from previous step</option> \n      <option value="user">User will enter the param value</option> \n    </param>\n    <when value="user">\n')
+                if param.getOptionvalue().size()==0:
+                    clientXml.write('    <param format="text" size = "150" name = "user_param'+str(j)+'"  ')
+                    if not param.getDefault1() == None:
+                        clientXml.write('value="'+param.getDefault1()+'"  ')
+                    clientXml.write('type="text" label="Enter '+param.getName()+'" help="see tip below" />\n')
+                    j=j+1
+                else:
+                    clientXml.write('    <param name="user_param'+str(j)+'" type="select" label="Select '+param.getName()+'" help="see tip below">\n' )    
+                    for option in param.getOptionvalue():
+                        clientXml.write('   <option value="'+self.formatString(option)+'" ')
+                        if option == param.getDefault1():
+                            clientXml.write('selected="true"')
+                        clientXml.write('>'+option+'</option>\n ')    
+                    clientXml.write('    </param> \n')
+                    j=j+1
+                clientXml.write(' </when>\n')    
+                clientXml.write(' <when value="cached">\n    <param name = "cached_param'+ str(j)+'" type="data" label="' + param.getName() + '"/> \n </when></conditional>')
+
+        clientXml.write('  <conditional name="cond_source">\n  <param name="optional_param_source" type="select" label="Display Additional Parameters"> \n <option value="no" selected="true">no</option> \n <option value="yes">yes</option> \n </param> \n    <when value="no"> \n     </when>\n    <when value="yes"> \n')        
+
+        for param in params:
+            if not param.getRequired()=='true' and not param.getRequired()=='True' and not param.getRequired()=='TRUE':
+                clientXml.write('<conditional name="source'+str(j)+'">\n    <param name="source' + str(j)+'_source" type="select" label="'+param.getName()+' Source"> \n      <option value="cached" selected="true">Param value will be taken from previous step</option> \n      <option value="user">User will enter the param value</option> \n    </param>\n    <when value="user">\n')
+                if param.getOptionvalue().size()==0:
+                    clientXml.write('    <param format="text" size = "150" name = "user_param'+str(j)+'"  ')
+                    if not param.getDefault1() == None:
+                        clientXml.write('value="'+param.getDefault1()+'"  ')
+                    clientXml.write('type="text" label="Enter '+param.getName()+'" help="see tip below" />\n')
+                    j=j+1
+                else:
+                    clientXml.write('    <param name="user_param'+str(j)+'" type="select" label="Select'+param.getName()+'" help="see tip below">\n' )    
+                    for option in param.getOptionvalue():
+                        clientXml.write('   <option value="'+self.formatString(option)+'" ')
+                        if option == param.getDefault1():
+                            clientXml.write('selected="true"')
+                        clientXml.write('>'+option+'</option>\n ')    
+                    clientXml.write('    </param> \n')
+                    j=j+1
+                clientXml.write(' </when>\n')    
+                clientXml.write(' <when value="cached">\n    <param name = "cached_param'+ str(j)+'" type="data" label="' + param.getName() + '"/> \n </when></conditional>')
+
+        clientXml.write(' </when>\n </conditional>\n')                 
+                    
+        clientXml.write('</inputs>\n  <outputs>\n    <data format="tabular" name="output" />\n  </outputs>\n')
+        
+        clientXml.write('  <help>\n')
+        for param in params:
+            if param.getRequired()=='true' or param.getRequired()=='True' or param.getRequired()=='TRUE':
+                clientXml.write('\n.. class:: infomark\n\n**TIP:** About '+ param.getName() +': type is ' + param.getType())       
+                
+                modelRef = sawPD.getCompleteModelReference(param)
+                if not modelRef is None:
+                    paramClass = dataFactory.getOWLClass(IRI.create(modelRef));
+                    annotationSet = paramClass.getAnnotations(ontology,propertyComment)
+                    for annotation in annotationSet:
+     		        if isinstance(annotation.getValue(),OWLLiteral):
+     		            val = annotation.getValue()
+     		            if val.isOWLStringLiteral() and not val.isOWLTypedLiteral():
+     		                print 'val.getLiteral()=' + val.getLiteral()
+                                clientXml.write(', description from ontology is "' + val.getLiteral()+'"')  
+                                break
+                    clientXml.write('\n')            
+        clientXml.write('  </help>\n</tool>')
+        editor = editToolConfig()
+        editor.addTool(clientName)
+    
+    
+    def wsdlRestClient(self):
+        ##parse wadl 
+        javahome = os.environ.get('JAVA_HOME')
+        galaxyhome=os.environ.get('GALAXY_HOME')
+        classpath= galaxyhome + '/tools/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/bin'
+        jarpath = galaxyhome + '/tools/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/lib/'
+        machine = platform.machine()
+    
+        if machine == 'x86_64' :
+            print 'a'
+            startJVM("%s/jre/lib/amd64/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+        elif machine == 'i686' :
+            print 'b'
+            startJVM("%s/jre/lib/i386/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+        elif machine == 'sun4u' :
+            startJVM("%s/jre/lib/sparc/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+        else :
+            print 'c'
+            System.exit("Could not identify machine, please specify path to libjvm.so")
+
+        
+        pkg=JPackage('lsdis')
+        wsdlUrl = self.webservice
+    
+        webserviceId = ''#self.methodName
+        resUrl = self.operation
+    
+        urls = []
+        methods = []
+        params = []
+        paramTypes = []
+        
+        WSDLParserDriver =pkg.WSDLParserDriver
+        wPD=WSDLParserDriver()
+        wPD.parse(wsdlUrl)
+        methods = wPD.getCompleteMethodList()
+        urls = wPD.getUrl()
+                
+        f=open(self.outputfile,'w')
+        f.write(wsdlUrl+'\t')
+        f.write(resUrl+'\t')
+        
+
+        i=0
+        for method in methods:
+            x = str(method.getName().getLocalPart())
+            y = str(url.get(i))
+            webserviceId = x
+            if y == resUrl :
+                wPD.getParameters(x)
+                f.write('method matched')
+                paramTypes = wPD.getParamTypeList()
+                params = wPD.getParamList()
+                break
+            i=i+1    
+        
+        f.write(webserviceId)
+
+        
+        
+        ##generate client's xml
+        galaxyhome=os.environ.get('GALAXY_HOME')
+        
+        clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/workflowclients/ClientCount.xml','r')
+        clientCountFile.readline()
+        clientCountStr = clientCountFile.readline()
+        clientCount=string.atoi(clientCountStr)
+        clientCount=clientCount+1
+        clientCountFile.close()
+        
+        clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/workflowclients/ClientCount.xml','w')
+        clientCountFile.write('<count> \n')
+        clientCountFile.write(str(clientCount)+'\n')
+        clientCountFile.write('</count> \n')
+	
+        
+        
+        
+        clientName = 'workflowclient_'+ str(clientCount)
+        
+        clientXml=open(galaxyhome+'/tools/WebServiceToolWorkflow_RESTSOAP/workflowclients/'+clientName+'.xml','w')
+        clientXml.seek(0,0)
+        
+        clientXml.write('<tool id="' + clientName+'" name="' + webserviceId +'">\n')
+        clientXml.write('  <description> Client for method: '+webserviceId+' , Web service: '+self.webservice+' </description>\n')
+
+  
+        clientXml.write('  <command interpreter="python">\n  client_1.py \n'+'  $output \n  $servicetype\n $url \n $method' +resUrl+'\n')
+        ##write such that the parameters passed to client1.py(change name to clientName.py) are dependent on a for loop
+        
+        j=0
+        for param in params:
+            clientXml.write('  '+self.formatString(param)+'\n')
+            clientXml.write('  $param' + str(j)+'\n')            
+            j=j+1
+        clientXml.write('</command>\n')
+        
+        ##write inputs depending on required or not. if not required den dont display 
+        ##if required- den check default value, and if options exist.Depending on that
+        ##decide the type of parameter and options
+        clientXml.write('  <inputs>\n') 
+        clientXml.write('      <param name="servicetype" type="hidden" value="REST" />')
+        clientXml.write('      <param name="url" type="hidden" value="'+self.webservice+'" />\n')
+        clientXml.write('      <param name="method" type="hidden" value="'+self.operation+'" />\n')
+       
+        
+        j=0
+        for param in params:
+            clientXml.write('<param format="text" size = "150" name = "param'+str(j)+'"  ')
+            clientXml.write('type="text" label="'+param+'" help="see tip below" />\n')
+            j=j+1
+            
+                    
+                    
+        clientXml.write('</inputs>\n  <outputs>\n    <data format="tabular" name="output" />\n  </outputs>\n')
+        
+        clientXml.write('  <help>\n')
+        
+        j=0
+        for param in params:
+            clientXml.write('\n.. class:: infomark\n\n**TIP:** '+ param +' type is ' + paramTypes[j] +'\n')       
+        
+        clientXml.write('  </help>\n</tool>')
+        editor = editToolConfig()
+        editor.addTool(clientName)
+        
+        ##later add help feature
+        
+if __name__ == "__main__":
+    
+    test = ClientGenerator('http://eupathdb.org/eupathdb/webservices/GeneQuestions/GenesByGeneType.wadl','genesbygenetype',None,'REST')
+    present = test.isToolPresent()
+#    required = test.isRequired('_parameters|_sequence')
+    print 'Tool is present : ',present
+    
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/generateClient.pyc has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/generateClient.py~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,864 @@
+'''
+@author  Chaitanya Guttula, Sumedha Ganjoo
+@see     LICENSE (MIT style license file).
+'''
+
+import warnings
+
+with warnings.catch_warnings():
+    warnings.simplefilter("ignore")
+    import platform
+
+    from jpype._jpackage import JPackage
+    from jpype import *
+    import os.path
+    import sys
+    import string
+    from edit_tool_conf import *
+    from clientGenerator.msHandler import *
+    from clientGenerator.creatorEngineComplex import *
+    from clientGenerator.wsdl2path import *
+    from clientGenerator.paramConverter import *
+
+    
+class ClientGenerator(object):
+    
+    #instantiate a client for invocation of the selected method of a Web service in workflows
+    def __init__(self,webservice,operation,outputfile,servicetype):
+      with warnings.catch_warnings():
+        warnings.simplefilter("ignore")
+        self.operation = operation
+        self.webservice = webservice
+        #self.inputs = outputfile
+        self.outputfile = outputfile
+        self.galaxyhome=os.environ.get('GALAXY_HOME')
+        self.clientfile = ''
+        self.servicetype = servicetype
+        if self.servicetype == 'SOAP':
+            wLoad=wsdlLoader()
+            sys.path.append(self.galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator')
+            os.chdir(self.galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator')
+        
+            a = str(self.webservice).split('/')
+            wsdlnamelist = a[len(a)-1].split(".")
+            if len(wsdlnamelist)==1:
+        	    wsdlnamelist=a[len(a)-1].split('?')
+        	    print wsdlnamelist
+
+            foldername=wsdlnamelist[0]
+        
+            path =self.galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator/'+foldername
+        
+    #creates the client stubs
+            self.clientfile = wLoad.wsdlUrl2path(str(self.webservice),foldername)
+        
+            print 'Client file : ',self.clientfile
+            self.paramelement = None
+        
+	    #replace '__tilda__' with '~'
+        #if(url.find('__tilda__')>-1):
+        #    ulist = url.split('__tilda__')
+	    #url = '~'.join(ulist)
+        #self.url = url        
+        
+    '''
+    Checks if a particular paramter is reuired or not. This is used only for soap web services.
+    ''' 
+    def isRequired(self,param):
+        #j=0
+        #for param in inputl:
+        cc = ClientCreator()
+        self.msinstance = cc.opname2inputClassOb(self.operation,self.clientfile)
+        test = MessageHandler()
+        required = False
+        if (param.find('|$|')>-1):
+            plist = param.split('|')
+            #root = test.getParameter(self.msinstance(),plist[0])
+            k = 0
+            iparam = ''
+            for p in plist:
+                if(k<len(plist)-3):
+                    if(k==0):
+                        iparam = iparam+(p)
+                    else:
+                        iparam = iparam+'|'+p
+                    k=k+1
+            paramelement = test.getParameter(self.msinstance(),iparam)
+        else:
+            paramelement = test.getParameter(self.msinstance(),param)
+        self.paramelement = paramelement
+        if (param.find('|')>-1):   
+            plist = param.split('|')   
+            root = test.getParameter(self.msinstance(),plist[0])    
+            if not getattr(root,'nillable') and not getattr(paramelement,'nillable'):
+                required = True
+                return True
+            elif getattr(root,'nillable') or (not getattr(root,'nillable') and getattr(paramelement,'nillable')): 
+                required = False
+                return False
+        else:     
+            if not getattr(paramelement,'nillable'):     
+                required = True
+                return True
+            elif getattr(paramelement,'nillable'):
+                required = False
+                return False
+        return required
+    
+    
+    #replace '**' with ' '
+    def formatString(self,string):
+        l = string.split(' ')
+        return '**'.join(l)
+
+    '''
+    Checks if the tool(operation) is already addded to Galaxy. It opens the tool_conf.xml file and loops through the "Web Service Workflow Tools" sections
+    Then opens each and every tool (xml file) and looks for the description tag for the "Web Service" and "Client for Method" values and then checks
+    if it same as the opearation and web service. As the code is dependent on description of the toool xml file, any change in the description tag 
+    of the tool xml file can impact this function.
+    '''
+    def isToolPresent(self):
+        
+        f = open(self.galaxyhome+'/tool_conf.xml','r')
+        line = f.readline()
+        linestripped = line.lstrip()
+        linestripped = linestripped.rstrip()
+        
+        while linestripped != '<section name="Select Web Service Workflow Tool" id="WebServiceWorkflow">':
+            line = f.readline()
+            linestripped = line.lstrip()
+            linestripped = linestripped.rstrip()
+            
+        line = f.readline()
+        linestripped = line.lstrip()
+        linestripped = linestripped.rstrip()
+                
+        while linestripped != '</section>':
+            if linestripped.find('<') >-1:
+                toolparts = linestripped.split('"')
+                print '\ntoolparts are : ',toolparts
+                f1 = open(self.galaxyhome+'/tools/'+toolparts[-2],'r')
+                line1 = f1.readline()
+                while not line1.find('<description>') >-1:
+                    line1 = f1.readline() 
+                
+                linestripped1 = line1.lstrip()
+                linestripped1 = linestripped1.rstrip()
+                descriptionparts=linestripped1.split(' ')
+                print '\nOperation : ',descriptionparts
+                service = ''
+                if(self.servicetype == 'SOAP'):
+                    service = self.clientfile
+                elif self.servicetype == 'REST':
+                    service = self.webservice
+                print 'Service : ',service
+                print 'operation : ',self.operation
+                if(descriptionparts[5]==self.operation and descriptionparts[10] == service):
+                    f.close()
+                    f1.close()
+                    return True
+                f1.close()
+            line = f.readline()
+            linestripped = line.lstrip()
+            linestripped = linestripped.rstrip()
+            
+        f.close()
+        return False
+    
+    
+       
+    def wsdlClient(self):
+      with warnings.catch_warnings():
+        warnings.simplefilter("ignore")
+       
+        wLoad=wsdlLoader()
+        galaxyhome=os.environ.get('GALAXY_HOME')
+        sys.path.append(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator')
+        os.chdir(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator')
+        
+        a = str(self.webservice).split('/')
+        wsdlnamelist = a[len(a)-1].split(".")
+        if len(wsdlnamelist)==1:
+    	    wsdlnamelist=a[len(a)-1].split('?')
+    	    print wsdlnamelist
+
+        foldername=wsdlnamelist[0]
+        
+        path =galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator/'+foldername
+        
+    #creates the client stubs
+        clientfile=wLoad.wsdlUrl2path(str(self.webservice),foldername)
+        
+        webservice = clientfile
+        outputfile=open(self.outputfile,'w')
+        test = ClientCreator()
+        print 'inputs of '+self.operation+':\n'
+        inputs= test.opname2inputs(self.operation,webservice)
+        inputl = nested2flatDict(inputs)
+        inputlist = inputl.keys()
+        #noOfInputs=inputlist.count()
+        print '*',inputs,'\n'
+        count =0
+        if (len(inputs)==0):
+            inputs={' ':' '}
+            #inputlist=inputs.keys()
+        for i in inputlist:
+            if count==0:
+                outputfile.write(i+'\t'+webservice+'\t'+self.operation+'\n')
+            else:
+                outputfile.write(i+'\n')
+            count=count+1
+
+        cc = ClientCreator()
+        self.msinstance = cc.opname2inputClassOb(self.operation,webservice)
+        galaxyhome=os.environ.get('GALAXY_HOME')
+        
+        clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/workflowclients/ClientCount.xml','r')
+        clientCountFile.readline()
+        clientCountStr = clientCountFile.readline()
+        
+        clientCount=string.atoi(clientCountStr)
+        clientCount=clientCount+1
+        clientCountFile.close()
+        
+        clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/workflowclients/ClientCount.xml','w')
+        clientCountFile.write('<count> \n')
+        clientCountFile.write(str(clientCount)+'\n')
+        clientCountFile.write('</count> \n')
+        clientCountFile.close()
+        
+        
+        
+        
+        clientName = 'workflowclient_'+ str(clientCount)
+        
+        clientXml=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/workflowclients/'+clientName+'.xml','w')
+        clientXml.seek(0,0)
+        
+        clientXml.write('<tool id="' + clientName+'" name="'+foldername+'.' + self.operation +'">\n')
+        clientXml.write('  <description> Client for operation : '+self.operation+' , Web service : '+webservice+' </description>\n')
+
+  
+        #clientXml.write('  <command interpreter="python">\n  client_1.py \n' +'  $output \n  ' +self.webservice+' \n  '+self.operation+'\n')
+        
+        test = MessageHandler()
+        
+        #the workflow tool/client for a REST Web service invokes ./workflowclients/client_1.py to invoke the Web service
+        #write the command tag to specify the arguments passed to this client_1.py
+        
+        clientXml.write('  <command interpreter="python">\n  	client_1.py\n'+'	#if $cond_source.optional_param_source=="no":\n  	$output\n	$servicetype\n      $url\n      $method\n' +webservice+ '         '+self.operation+'\n')
+        ##write such that the parameters passed to client_1.py(change name to clientName.py) are dependent on a for loop
+        
+     # The paramter having |$| means that it has an elemnet with maxoccurs='unbounded' (i.e. array of strings)
+     	
+        j=0
+        for param in inputl:
+            if self.isRequired(param):
+                clientXml.write('	"'+param+'"\n	 #if $source'+str(j)+'.source'+str(j)+'_source=="user":\n	 $source'+str(j)+'.user_param'+str(j)+'\n	 #else:\n	 fileInput\n	 $source' + str(j) + '.cached_param' + str(j)+'\n	 #end if\n')           
+                j=j+1
+            
+        clientXml.write('   	#else:\n  	$output\n	$servicetype\n      $url\n      $method\n' +webservice+'            '+self.operation+'\n')
+	        
+	j=0
+        for param in inputl:
+            if self.isRequired(param):
+                clientXml.write('	"'+param+'"\n	 #if $source'+str(j)+'.source'+str(j)+'_source=="user":\n	 $source'+str(j)+'.user_param'+str(j)+'\n	 #else:\n	 fileInput\n	 $source' + str(j) + '.cached_param' + str(j)+'\n	 #end if\n')            
+                j=j+1
+                                    
+        for param in inputl:
+            if not self.isRequired(param):     
+                clientXml.write('	"'+param+'"\n	 #if $cond_source.source'+str(j)+'.source'+str(j)+'_source=="user":\n	 $cond_source.source'+str(j)+'.user_param'+str(j)+'\n	 #else:\n	 fileInput\n	 $cond_source.source' + str(j) + '.cached_param' + str(j)+'\n	 #end if\n')            
+                j=j+1        
+                        
+
+        clientXml.write('   	#end if\n')
+        
+        clientXml.write('</command>\n')
+        
+        #start writing inputs
+	    ##write inputs depending on required or not. if not required den dont display 
+        ##if required- den check default value, and if options exist.Depending on that
+        ##decide the type of parameter and options
+        ##The input servicetype tells what type of webservice it is wether SOAP or REST - Useful during invocation of the web servcie   
+        clientXml.write('  <inputs>\n')
+        clientXml.write('     <param name="servicetype" type="hidden" value="SOAP" />\n')
+        clientXml.write('     <param name="url" type="hidden" value="'+self.webservice+'" />\n')
+        clientXml.write('     <param name="method" type="hidden" value="'+self.operation+'" />\n')
+        
+        j=0
+        for param in inputl:                       
+            if self.isRequired(param):     
+                    pName = getattr(self.paramelement,'pname')
+            
+                    clientXml.write('<conditional name="source'+str(j)+'">\n    <param name="source' + str(j)+'_source" type="select" label="'+pName+' Source"> \n      <option value="cached" selected="true">Param value will be taken from previous step</option> \n      <option value="user">User will enter the param value</option> \n    </param>\n    <when value="user">\n')
+                    clientXml.write('      <param format="text" size = "150" name = "user_param'+str(j)+'"  ')
+                    clientXml.write('type="text" label="Enter '+pName+'" help="see tip below" />\n')
+                  #  clientXml.write('    </param> \n')
+                    clientXml.write(' </when>\n')    
+                    clientXml.write(' <when value="cached">\n    <param name = "cached_param'+ str(j)+'" type="data" label="' + pName + '"/> \n </when>\n   </conditional>')            
+                    j=j+1        
+            
+            
+        clientXml.write('  <conditional name="cond_source">\n  <param name="optional_param_source" type="select" label="Display Optional Parameters"> \n <option value="no" selected="true">no</option> \n <option value="yes">yes</option> \n </param> \n    <when value="no"> \n     </when>\n    <when value="yes"> \n')
+
+        for param in inputl:
+            if not self.isRequired(param):     
+                    pName = getattr(self.paramelement,'pname')
+                      
+                    clientXml.write('\n<conditional name="source'+str(j)+'">\n  <param name="source' + str(j)+'_source" type="select" label="'+pName+' Source"> \n    <option value="cached" selected="true">Param value will be taken from previous step</option> \n <option value="user">User will enter the param value</option> \n</param>\n         <when value="user">')
+                    clientXml.write('<param format="text" size = "150" name = "user_param'+str(j)+'"  ')
+                    clientXml.write('type="text" label="Enter '+pName+'" help="see tip below" />\n')
+                    clientXml.write(' </when>\n')    
+                    clientXml.write('<when value="cached">\n <param name = "cached_param'+ str(j)+'" type="data" label="' + pName + '"/> \n  </when>\n   </conditional>\n')
+                    j=j+1       
+            
+                                    
+        clientXml.write(' </when>\n </conditional>\n')
+                    
+        clientXml.write('</inputs>\n  <outputs>\n    <data format="tabular" name="output" />\n  </outputs>\n')
+        clientXml.write('  <help>\n')
+        paramtype = None
+        for param in inputl:
+            if self.isRequired(param):     
+                    if isinstance(self.paramelement,ZSI.TC.String):
+                        paramtype = 'String'
+                    elif isinstance(self.paramelement,ZSI.TCnumbers.FPfloat):
+                        paramtype = 'Floating point'
+                    elif isinstance(self.paramelement,ZSI.TC.Boolean):
+                        paramtype = 'Boolean'
+                    elif isinstance(self.paramelement,ZSI.TCnumbers.Iint):
+                        paramtype = 'Integer'
+                    clientXml.write('\n.. class:: infomark\n\n**TIP:** About '+ getattr(self.paramelement,'pname') +': type is ' + paramtype + '\n')       
+                                 
+            
+        clientXml.write('  </help>\n</tool>')
+                
+#        clientXml.write('  <help>\n')
+        
+ #       j=0
+  #      for param in params:
+   #         clientXml.write('\n.. class:: infomark\n\n**TIP:** '+ param +' type is ' + paramTypes[j] +'\n')       
+        
+    #    clientXml.write('  </help>\n</tool>')
+       # clientXml.write('</tool>')
+	clientXml.close()
+        editor = editToolConfig()
+        editor.addTool(clientName)
+        
+        ##later add help feature
+    
+
+        
+    def wadlClient(self):
+      
+        ##parse wadl         
+        pkg=JPackage('lsdis')
+        urlToPass=java.net.URL(self.webservice)
+        wadlUrl = self.webservice
+    
+        webserviceId = ''#self.operation
+        resUrl = self.operation
+        
+        urls = []
+        methods = []
+        params = []
+        
+        #invoke the WADL parser packaged with this tool.
+        WADLParserDriver=pkg.WADLParserDriver
+        wPD=WADLParserDriver()
+        wPD.parse(urlToPass)
+        urls = wPD.getUrl()
+        methods = wPD.getCompleteMethodList()
+        
+        a= str(self.webservice).split('/')
+        wadlnamelist = a[len(a)-1].split(".")
+        if len(wadlnamelist)==1:
+    	    wadlnamelist=a[len(a)-1].split('?')
+    	    print wadlnamelist
+
+        wadlname=wadlnamelist[0]
+        
+        #write into the output file information about the method and Web service to be invoked.        
+        f=open(self.outputfile,'w')
+        f.write(self.webservice+'\t')
+        f.write(resUrl+'\t')
+        
+        #get parameters for the selected method of the Web service
+        i=0
+        for method in methods:
+            x = str(method.getId())
+            y = str(urls.get(i))
+            webserviceId = x
+            if y == resUrl : 
+                params = method.getRequest().getParams()
+                break
+            i=i+1    
+        
+        f.write(webserviceId)
+        
+        galaxyhome=os.environ.get('GALAXY_HOME')
+
+        methodname = resUrl.split('/')
+
+        #./workflowclients/ClientCount.xml keeps the count of the clients/tools currently registered in Galaxy for Web service invocation.
+        #read the count and increment it. 
+        clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/workflowclients/ClientCount.xml','r')
+        clientCountFile.readline()
+        clientCountStr = clientCountFile.readline()
+        clientCount=string.atoi(clientCountStr)
+        clientCount=clientCount+1
+        clientCountFile.close()
+        
+        clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/workflowclients/ClientCount.xml','w')
+        clientCountFile.write('<count> \n')
+        clientCountFile.write(str(clientCount)+'\n')
+        clientCountFile.write('</count> \n') 
+        
+        #include the count in the tool's name and id to uniquely identify it. 
+        clientName = 'workflowclient_'+ str(clientCount)
+        
+        #create a new xml file under ./workflowclients/
+        clientXml=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/workflowclients/'+clientName+'.xml','w')
+        clientXml.seek(0,0)
+        
+        #write the tool id, name and description
+        clientXml.write('<tool id="' + clientName+'" name="' + wadlname + '.' + methodname[-1] +'">\n')
+        clientXml.write('  <description> Client for method : '+self.operation+' , Web service : '+self.webservice+' </description>\n')
+
+        #the workflow tool/client for a REST Web service invokes ./workflowclients/client_1.py to invoke the Web service
+        #write the command tag to specify the arguments passed to this client_1.py
+        clientXml.write('  <command interpreter="python">\n  	client_1.py\n'+'	#if $cond_source.optional_param_source=="no":\n  	$output\n	$servicetype\n      $url\n        $method\n     ' +resUrl+'\n')
+
+        
+        j=0
+        for param in params:
+            if param.isRequired():
+                clientXml.write('	'+self.formatString(param.getName())+'\n	 #if $source'+str(j)+'.source'+str(j)+'_source=="user":\n	 $source'+str(j)+'.user_param'+str(j)+'\n	 #else:\n	 fileInput\n	 $source' + str(j) + '.cached_param' + str(j)+'\n	 #end if\n')            
+                j=j+1
+                
+        clientXml.write('   	#else:\n  	$output\n	$servicetype\n    $url\n    $method\n' +resUrl+'\n')
+        j=0
+        for param in params:
+            if param.isRequired():
+                clientXml.write('	'+self.formatString(param.getName())+'\n	 #if $source'+str(j)+'.source'+str(j)+'_source=="user":\n	 $source'+str(j)+'.user_param'+str(j)+'\n	 #else:\n	 fileInput\n	 $source' + str(j) + '.cached_param' + str(j)+'\n	 #end if\n')            
+                j=j+1
+        
+        for param in params:
+            if not param.isRequired():
+                clientXml.write('	'+self.formatString(param.getName())+'\n	 #if $cond_source.source'+str(j)+'.source'+str(j)+'_source=="user":\n	 $cond_source.source'+str(j)+'.user_param'+str(j)+'\n	 #else:\n	 fileInput\n	 $cond_source.source' + str(j) + '.cached_param' + str(j)+'\n	 #end if\n')            
+                j=j+1
+
+        clientXml.write('   	#end if\n')
+        clientXml.write('</command>\n')
+        
+        #start writing inputs
+	    ##write inputs depending on required or not. if not required den dont display 
+        ##if required- den check default value, and if options exist.Depending on that
+        ##decide the type of parameter and options
+        ##The input servicetype tells what type of webservice it is wether SOAP or REST - Useful during invocation of the web servcie   
+        
+        clientXml.write('  <inputs>\n')
+        clientXml.write('     <param name="servicetype" type="hidden" value="REST"/>\n')
+        clientXml.write('     <param name="url" type="hidden" value="'+self.webservice+'" />\n')
+        clientXml.write('     <param name="method" type="hidden" value="'+self.operation+'" />\n')
+  
+        
+        #create a param for each required parameter described in the WADL. Check if defaults are specified. Create param such that
+        #it can either be given a value manually or the value can be taken from a previous step.
+        j=0
+        for param in params:                       
+            if param.isRequired():
+                pName = param.getName()
+                for doc in param.getDocs():
+                    if doc.getTitle()=="prompt" or doc.getTitle()=="Prompt" or doc.getTitle()=="PROMPT":
+		        pName = doc.getInnerText()          
+            
+                clientXml.write('<conditional name="source'+str(j)+'">\n    <param name="source' + str(j)+'_source" type="select" label="'+pName+' Source"> \n      <option value="cached" selected="true">Param value will be taken from previous step</option> \n      <option value="user">User will enter the param value</option> \n    </param>\n    <when value="user">\n')
+                if param.getOptions().size()==0:
+                    clientXml.write('      <param format="text" size = "150" name = "user_param'+str(j)+'"  ')
+                    if not param.getDefault1() == None:
+                        clientXml.write('value="'+param.getDefault1()+'"  ')
+                    clientXml.write('type="text" label="Enter '+pName+'" help="see tip below" />\n')
+                else:
+                    clientXml.write('    <param name="user_param'+str(j)+'" type="select" label="Select '+pName+'" help="see tip below">\n' )    
+                    for option in param.getOptions():
+                        clientXml.write('      <option value="'+self.formatString(option.getName())+'" ')
+                        if option.getName() == param.getDefault1():
+                            clientXml.write('selected="true"')
+                        clientXml.write('>'+option.getName()+'</option>\n ')    
+                    clientXml.write('    </param> \n')
+                clientXml.write(' </when>\n')    
+                clientXml.write(' <when value="cached">\n    <param name = "cached_param'+ str(j)+'" type="data" label="' + pName + '"/> \n </when></conditional>')
+                j=j+1
+
+        #create a conditional param for each optional parameter described in the WADL. Again the param can be given a value manually or the value can be taken from
+        #a previous step.
+        clientXml.write('  <conditional name="cond_source">\n  <param name="optional_param_source" type="select" label="Display Optional Parameters"> \n <option value="no" selected="true">no</option> \n <option value="yes">yes</option> \n </param> \n    <when value="no"> \n     </when>\n    <when value="yes"> \n')
+
+        for param in params:
+            if not param.isRequired():
+                pName = param.getName()
+                for doc in param.getDocs():
+                    if doc.getTitle()=="prompt" or doc.getTitle()=="Prompt" or doc.getTitle()=="PROMPT":
+		        pName = doc.getInnerText()   
+		                    
+                clientXml.write('\n<conditional name="source'+str(j)+'">\n  <param name="source' + str(j)+'_source" type="select" label="'+pName+' Source"> \n    <option value="cached" selected="true">Param value will be taken from previous step</option> \n <option value="user">User will enter the param value</option> \n</param>\n         <when value="user">')
+                if param.getOptions().size()==0:
+                    clientXml.write('<param format="text" size = "150" name = "user_param'+str(j)+'"  ')
+                    if not param.getDefault1() == None:
+                        clientXml.write('value="'+param.getDefault1()+'"  ')
+                    clientXml.write('type="text" label="Enter '+pName+'" help="see tip below" />\n')
+                else:
+                    clientXml.write('<param name="user_param'+str(j)+'" type="select" label="Select '+pName+'" help="see tip below">\n' )    
+                    for option in param.getOptions():
+                        clientXml.write(' <option value="'+self.formatString(option.getName())+'" ')
+                        if option.getName() == param.getDefault1():
+                            clientXml.write('selected="true"')
+                        clientXml.write('>'+option.getName()+'</option>\n ')    
+                    clientXml.write('    </param> \n')
+                clientXml.write(' </when>\n')    
+                clientXml.write('<when value="cached">\n <param name = "cached_param'+ str(j)+'" type="data" label="' + pName + '"/> \n  </when></conditional>\n')
+                j=j+1
+                            
+                            
+                            
+        clientXml.write(' </when>\n </conditional>\n</inputs>\n  <outputs>\n    <data format="tabular" name="output" />\n  </outputs>\n')
+
+        #write information about each parameter in the help section        
+        clientXml.write('  <help>\n')
+        clientXml.write('Replace white space with ** in all parameter values\n')
+
+        for param in params:
+            if param.isRequired():
+                pName = param.getName()
+                for doc in param.getDocs():
+                    if doc.getTitle()=="prompt" or doc.getTitle()=="Prompt" or doc.getTitle()=="PROMPT":
+		        pName = doc.getInnerText()           
+                clientXml.write('\n.. class:: infomark\n\n**TIP:** '+ pName +' type is ' + param.getType()+'\n')       
+        
+        clientXml.write('  </help>\n</tool>')
+        
+        #adds the newly created tool to tool_conf.xml in Galaxy under the 'Web Service Workflow Tools' section.
+        editor = editToolConfig()
+        editor.addTool(clientName)
+        
+        
+        
+        
+    def sawadlClient(self):
+        ##parse sawadl 
+        
+        pkg=JPackage('edu.uga.cs.lsdis.meteors.wadls')
+        pkgModel =JPackage('org.semanticweb.owlapi.model')
+        pkgApiBinding =JPackage('org.semanticweb.owlapi.apibinding')
+        pkgVocab = JPackage('org.semanticweb.owlapi.vocab')
+    
+        DOCUMENT_IRI = "http://cs.uga.edu/~ganjoo/galaxy/EDAM.owl"
+    
+        sawadlUrl = self.webservice
+    
+        webserviceId = ''#self.inputs
+        resUrl = self.operation
+    
+        urls = []
+        methods = []
+        params = []
+        annotationSet = []
+
+        SAWADLParserDriver=pkg.SAWADLParserDriver
+        sawPD=SAWADLParserDriver()
+        sawPD.parse(sawadlUrl)
+        urls = sawPD.getUrl()
+        methods = sawPD.getCompleteMethodList()
+
+        IRI = pkgModel.IRI
+        OWLRDFVocabulary = pkgVocab.OWLRDFVocabulary
+        OWLManager = pkgApiBinding.OWLManager
+        OWLLiteral = pkgModel.OWLLiteral
+        owlOntManager = OWLManager.createOWLOntologyManager()
+        ontology = owlOntManager.loadOntologyFromOntologyDocument(IRI.create(DOCUMENT_IRI))
+        dataFactory = owlOntManager.getOWLDataFactory()
+        propertyComment = dataFactory.getOWLAnnotationProperty(OWLRDFVocabulary.RDFS_COMMENT.getIRI())
+
+        #write into the output file information about the method and Web service to be invoked.        
+        f=open(self.outputfile,'w')
+        f.write(self.webservice+'\t')
+        f.write(resUrl+'\t')
+        
+        i=0
+        for method in methods:
+            x = str(method.getName())
+            y = str(urls.get(i))
+            webserviceId = x
+            #if x == webserviceId :
+            if y == resUrl : 
+                params = method.getRequest().getParamList()
+                break
+            i=i+1    
+        
+
+        f.write(webserviceId)
+        
+        ##generate client's xml
+        galaxyhome=os.environ.get('GALAXY_HOME')
+        
+        clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/workflowclients/ClientCount.xml','r')
+        clientCountFile.readline()
+        clientCountStr = clientCountFile.readline()
+        clientCount=string.atoi(clientCountStr)
+        clientCount=clientCount+1
+        clientCountFile.close()
+        
+        clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/workflowclients/ClientCount.xml','w')
+        clientCountFile.write('<count> \n')
+        clientCountFile.write(str(clientCount)+'\n')
+        clientCountFile.write('</count> \n')
+	
+        
+        
+        
+        clientName = 'workflowclient_'+ str(clientCount)
+        
+        clientXml=open(galaxyhome+'/tools/WebServiceToolWorkflow/workflowclients/'+clientName+'.xml','w')
+        clientXml.seek(0,0)
+        
+        clientXml.write('<tool id="' + clientName+'" name="' + webserviceId +'">\n')
+        clientXml.write('  <description> Client for method: '+webserviceId+' , Web service: '+self.webservice+' </description>\n')
+
+  
+        clientXml.write('  <command interpreter="python">\n  #client_1.py \n'+'  $output \n  $servicetype\n  $url\n  $method\n  ' +resUrl+'\n')
+        ##write such that the parameters passed to client1.py(change name to clientName.py) are dependent on a for loop
+        
+               
+        j=0
+        for param in params:
+            if param.getRequired()=='true' or param.getRequired()=='True' or param.getRequired()=='TRUE':
+                clientXml.write('  '+self.formatString(param.getName())+'\n#if $source'+str(j)+'.source'+str(j)+'_source=="user" $source'+str(j)+'.user_param'+str(j)+' #else $source' + str(j) + '.cached_param' + str(j)+' #end if\n')            
+                j=j+1
+        clientXml.write('#if $cond_source.optional_param_source=="yes"')
+        
+        for param in params:
+            if not param.getRequired()=='true' and not param.getRequired()=='True' and not param.getRequired()=='TRUE':
+                clientXml.write('  '+self.formatString(param.getName())+'\n#if $cond_source.source'+str(j)+'.source'+str(j)+'_source=="user" $cond_source.source'+str(j)+'.user_param'+str(j)+' #else $cond_source.source' + str(j) + '.cached_param' + str(j)+' #end if\n')            
+                j=j+1
+
+        clientXml.write('#else \n#end if\n')
+        clientXml.write('</command>\n')                
+        
+        ##write inputs depending on required or not. if not required den dont display 
+        ##if required- den check default value, and if options exist.Depending on that
+        ##decide the type of parameter and options
+        ##The input servicetype tells what type of webservice it is wether SOAP or REST - Useful during invocation of the web servcie   
+        
+        clientXml.write('  <inputs>\n') 
+        clientXml.write('      <param name="servicetype" type="hidden" value="REST" />')
+        clientXml.write('      <param name="url" type="hidden" value="'+self.webservice+'" />\n')
+        clientXml.write('      <param name="method" type="hidden" value="'+self.operation+'" />\n')
+       
+        
+        j=0
+        for param in params:
+            if param.getRequired()=='true' or param.getRequired()=='True' or param.getRequired()=='TRUE':
+                clientXml.write('<conditional name="source'+str(j)+'">\n    <param name="source' + str(j)+'_source" type="select" label="'+param.getName()+' Source"> \n      <option value="cached" selected="true">Param value will be taken from previous step</option> \n      <option value="user">User will enter the param value</option> \n    </param>\n    <when value="user">\n')
+                if param.getOptionvalue().size()==0:
+                    clientXml.write('    <param format="text" size = "150" name = "user_param'+str(j)+'"  ')
+                    if not param.getDefault1() == None:
+                        clientXml.write('value="'+param.getDefault1()+'"  ')
+                    clientXml.write('type="text" label="Enter '+param.getName()+'" help="see tip below" />\n')
+                    j=j+1
+                else:
+                    clientXml.write('    <param name="user_param'+str(j)+'" type="select" label="Select '+param.getName()+'" help="see tip below">\n' )    
+                    for option in param.getOptionvalue():
+                        clientXml.write('   <option value="'+self.formatString(option)+'" ')
+                        if option == param.getDefault1():
+                            clientXml.write('selected="true"')
+                        clientXml.write('>'+option+'</option>\n ')    
+                    clientXml.write('    </param> \n')
+                    j=j+1
+                clientXml.write(' </when>\n')    
+                clientXml.write(' <when value="cached">\n    <param name = "cached_param'+ str(j)+'" type="data" label="' + param.getName() + '"/> \n </when></conditional>')
+
+        clientXml.write('  <conditional name="cond_source">\n  <param name="optional_param_source" type="select" label="Display Additional Parameters"> \n <option value="no" selected="true">no</option> \n <option value="yes">yes</option> \n </param> \n    <when value="no"> \n     </when>\n    <when value="yes"> \n')        
+
+        for param in params:
+            if not param.getRequired()=='true' and not param.getRequired()=='True' and not param.getRequired()=='TRUE':
+                clientXml.write('<conditional name="source'+str(j)+'">\n    <param name="source' + str(j)+'_source" type="select" label="'+param.getName()+' Source"> \n      <option value="cached" selected="true">Param value will be taken from previous step</option> \n      <option value="user">User will enter the param value</option> \n    </param>\n    <when value="user">\n')
+                if param.getOptionvalue().size()==0:
+                    clientXml.write('    <param format="text" size = "150" name = "user_param'+str(j)+'"  ')
+                    if not param.getDefault1() == None:
+                        clientXml.write('value="'+param.getDefault1()+'"  ')
+                    clientXml.write('type="text" label="Enter '+param.getName()+'" help="see tip below" />\n')
+                    j=j+1
+                else:
+                    clientXml.write('    <param name="user_param'+str(j)+'" type="select" label="Select'+param.getName()+'" help="see tip below">\n' )    
+                    for option in param.getOptionvalue():
+                        clientXml.write('   <option value="'+self.formatString(option)+'" ')
+                        if option == param.getDefault1():
+                            clientXml.write('selected="true"')
+                        clientXml.write('>'+option+'</option>\n ')    
+                    clientXml.write('    </param> \n')
+                    j=j+1
+                clientXml.write(' </when>\n')    
+                clientXml.write(' <when value="cached">\n    <param name = "cached_param'+ str(j)+'" type="data" label="' + param.getName() + '"/> \n </when></conditional>')
+
+        clientXml.write(' </when>\n </conditional>\n')                 
+                    
+        clientXml.write('</inputs>\n  <outputs>\n    <data format="tabular" name="output" />\n  </outputs>\n')
+        
+        clientXml.write('  <help>\n')
+        for param in params:
+            if param.getRequired()=='true' or param.getRequired()=='True' or param.getRequired()=='TRUE':
+                clientXml.write('\n.. class:: infomark\n\n**TIP:** About '+ param.getName() +': type is ' + param.getType())       
+                
+                modelRef = sawPD.getCompleteModelReference(param)
+                if not modelRef is None:
+                    paramClass = dataFactory.getOWLClass(IRI.create(modelRef));
+                    annotationSet = paramClass.getAnnotations(ontology,propertyComment)
+                    for annotation in annotationSet:
+     		        if isinstance(annotation.getValue(),OWLLiteral):
+     		            val = annotation.getValue()
+     		            if val.isOWLStringLiteral() and not val.isOWLTypedLiteral():
+     		                print 'val.getLiteral()=' + val.getLiteral()
+                                clientXml.write(', description from ontology is "' + val.getLiteral()+'"')  
+                                break
+                    clientXml.write('\n')            
+        clientXml.write('  </help>\n</tool>')
+        editor = editToolConfig()
+        editor.addTool(clientName)
+    
+    
+    def wsdlRestClient(self):
+        ##parse wadl 
+        javahome = os.environ.get('JAVA_HOME')
+        galaxyhome=os.environ.get('GALAXY_HOME')
+        classpath= galaxyhome + '/tools/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/bin'
+        jarpath = galaxyhome + '/tools/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/lib/'
+        machine = platform.machine()
+    
+        if machine == 'x86_64' :
+            print 'a'
+            startJVM("%s/jre/lib/amd64/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+        elif machine == 'i686' :
+            print 'b'
+            startJVM("%s/jre/lib/i386/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+        elif machine == 'sun4u' :
+            startJVM("%s/jre/lib/sparc/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+        else :
+            print 'c'
+            System.exit("Could not identify machine, please specify path to libjvm.so")
+
+        
+        pkg=JPackage('lsdis')
+        wsdlUrl = self.webservice
+    
+        webserviceId = ''#self.methodName
+        resUrl = self.operation
+    
+        urls = []
+        methods = []
+        params = []
+        paramTypes = []
+        
+        WSDLParserDriver =pkg.WSDLParserDriver
+        wPD=WSDLParserDriver()
+        wPD.parse(wsdlUrl)
+        methods = wPD.getCompleteMethodList()
+        urls = wPD.getUrl()
+                
+        f=open(self.outputfile,'w')
+        f.write(wsdlUrl+'\t')
+        f.write(resUrl+'\t')
+        
+
+        i=0
+        for method in methods:
+            x = str(method.getName().getLocalPart())
+            y = str(url.get(i))
+            webserviceId = x
+            if y == resUrl :
+                wPD.getParameters(x)
+                f.write('method matched')
+                paramTypes = wPD.getParamTypeList()
+                params = wPD.getParamList()
+                break
+            i=i+1    
+        
+        f.write(webserviceId)
+
+        
+        
+        ##generate client's xml
+        galaxyhome=os.environ.get('GALAXY_HOME')
+        
+        clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/workflowclients/ClientCount.xml','r')
+        clientCountFile.readline()
+        clientCountStr = clientCountFile.readline()
+        clientCount=string.atoi(clientCountStr)
+        clientCount=clientCount+1
+        clientCountFile.close()
+        
+        clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/workflowclients/ClientCount.xml','w')
+        clientCountFile.write('<count> \n')
+        clientCountFile.write(str(clientCount)+'\n')
+        clientCountFile.write('</count> \n')
+	
+        
+        
+        
+        clientName = 'workflowclient_'+ str(clientCount)
+        
+        clientXml=open(galaxyhome+'/tools/WebServiceToolWorkflow_RESTSOAP/workflowclients/'+clientName+'.xml','w')
+        clientXml.seek(0,0)
+        
+        clientXml.write('<tool id="' + clientName+'" name="' + webserviceId +'">\n')
+        clientXml.write('  <description> Client for method: '+webserviceId+' , Web service: '+self.webservice+' </description>\n')
+
+  
+        clientXml.write('  <command interpreter="python">\n  client_1.py \n'+'  $output \n  $servicetype\n $url \n $method' +resUrl+'\n')
+        ##write such that the parameters passed to client1.py(change name to clientName.py) are dependent on a for loop
+        
+        j=0
+        for param in params:
+            clientXml.write('  '+self.formatString(param)+'\n')
+            clientXml.write('  $param' + str(j)+'\n')            
+            j=j+1
+        clientXml.write('</command>\n')
+        
+        ##write inputs depending on required or not. if not required den dont display 
+        ##if required- den check default value, and if options exist.Depending on that
+        ##decide the type of parameter and options
+        clientXml.write('  <inputs>\n') 
+        clientXml.write('      <param name="servicetype" type="hidden" value="REST" />')
+        clientXml.write('      <param name="url" type="hidden" value="'+self.webservice+'" />\n')
+        clientXml.write('      <param name="method" type="hidden" value="'+self.operation+'" />\n')
+       
+        
+        j=0
+        for param in params:
+            clientXml.write('<param format="text" size = "150" name = "param'+str(j)+'"  ')
+            clientXml.write('type="text" label="'+param+'" help="see tip below" />\n')
+            j=j+1
+            
+                    
+                    
+        clientXml.write('</inputs>\n  <outputs>\n    <data format="tabular" name="output" />\n  </outputs>\n')
+        
+        clientXml.write('  <help>\n')
+        
+        j=0
+        for param in params:
+            clientXml.write('\n.. class:: infomark\n\n**TIP:** '+ param +' type is ' + paramTypes[j] +'\n')       
+        
+        clientXml.write('  </help>\n</tool>')
+        editor = editToolConfig()
+        editor.addTool(clientName)
+        
+        ##later add help feature
+        
+if __name__ == "__main__":
+    
+    test = ClientGenerator('http://eupathdb.org/eupathdb/webservices/GeneQuestions/GenesByGeneType.wadl','genesbygenetype',None,'REST')
+    present = test.isToolPresent()
+#    required = test.isRequired('_parameters|_sequence')
+    print 'Tool is present : ',present
+    
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/generateClient1.py	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,919 @@
+'''
+@author  Chaitanya Guttula, Sumedha Ganjoo
+@see     LICENSE (MIT style license file).
+'''
+
+import warnings
+
+with warnings.catch_warnings():
+    warnings.simplefilter("ignore")
+    import platform
+
+    from jpype._jpackage import JPackage
+    from jpype import *
+    import os.path
+    import sys
+    import string
+    from edit_tool_conf1 import *
+    from clientGenerator.msHandler import *
+    from clientGenerator.creatorEngineComplex import *
+    from clientGenerator.wsdl2path import *
+    from clientGenerator.paramConverter import *
+
+__author__=""
+
+#generates client for a web service to be used as standalone
+class ClientGenerator1(object):
+    
+    def __init__(self,webservice,operation,outputfile,servicetype):#,url):
+      with warnings.catch_warnings():
+        warnings.simplefilter("ignore")
+        self.webservice = webservice
+        self.operation = operation
+        self.inputs = outputfile
+        self.outputfile = outputfile
+        #self.url = url
+        
+        self.servicetype = servicetype
+        self.galaxyhome=os.environ.get('GALAXY_HOME')
+        self.clientfile = ''
+        if self.servicetype == 'SOAP':
+            wLoad=wsdlLoader()
+            sys.path.append(self.galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator')
+            os.chdir(self.galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator')
+        
+            a = str(self.webservice).split('/')
+            wsdlnamelist = a[len(a)-1].split(".")
+            if len(wsdlnamelist)==1:
+        	    wsdlnamelist=a[len(a)-1].split('?')
+        	    print wsdlnamelist
+
+            foldername=wsdlnamelist[0]
+        
+            path =self.galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator/'+foldername
+        
+    #creates the client stubs
+            self.clientfile = wLoad.wsdlUrl2path(str(self.webservice),foldername)
+        
+            print 'Client file : ',self.clientfile
+            self.paramelement = None
+        
+        
+        
+    ''' Replaces space (' ') with '**' in the given string  '''
+    def formatString(self,string):
+        l = string.split(' ')
+        return '**'.join(l)
+        
+    def isRequired(self,param):
+        #j=0
+        #for param in inputl:
+        cc = ClientCreator()
+        self.msinstance = cc.opname2inputClassOb(self.operation,self.clientfile)
+        test = MessageHandler()
+        required = False
+        if (param.find('|$|')>-1):
+            plist = param.split('|')
+            #root = test.getParameter(self.msinstance(),plist[0])
+            k = 0
+            iparam = ''
+            for p in plist:
+                if(k<len(plist)-3):
+                    if(k==0):
+                        iparam = iparam+(p)
+                    else:
+                        iparam = iparam+'|'+p
+                    k=k+1
+            paramelement = test.getParameter(self.msinstance(),iparam)
+        else:
+            paramelement = test.getParameter(self.msinstance(),param)
+        self.paramelement = paramelement
+        if (param.find('|')>-1):   
+            plist = param.split('|')   
+            root = test.getParameter(self.msinstance(),plist[0])    
+            if not getattr(root,'nillable') and not getattr(paramelement,'nillable'):
+                required = True
+                return True
+            elif getattr(root,'nillable') or (not getattr(root,'nillable') and getattr(paramelement,'nillable')): 
+                required = False
+                return False
+        else:     
+            if not getattr(paramelement,'nillable'):     
+                required = True
+                return True
+            elif getattr(paramelement,'nillable'):
+                required = False
+                return False
+        return required
+    
+    
+    #replace '**' with ' '
+    def formatString(self,string):
+        l = string.split(' ')
+        return '**'.join(l)
+
+    '''
+    Checks if the tool(operation) is already addded to Galaxy. It opens the tool_conf.xml file and loops through the "Web Service Workflow Tools" sections
+    Then opens each and every tool (xml file) and looks for the description tag for the "Web Service" and "Client for Method" values and then checks
+    if it same as the opearation and web service. As the code is dependent on description of the toool xml fie, any change in the description
+    of the tool xml file can impact this function.
+    '''
+    def isToolPresent(self):
+        
+        f = open(self.galaxyhome+'/tool_conf.xml','r')
+        line = f.readline()
+        linestripped = line.lstrip()
+        linestripped = linestripped.rstrip()
+        
+        while linestripped != '<section name="Select Web Service Tool" id="WebServices">':
+            line = f.readline()
+            linestripped = line.lstrip()
+            linestripped = linestripped.rstrip()
+            
+        line = f.readline()
+        linestripped = line.lstrip()
+        linestripped = linestripped.rstrip()
+                
+        while linestripped != '</section>':
+            if linestripped.find('<') >-1:
+                toolparts = linestripped.split('"')
+                print '\ntoolparts are : ',toolparts
+                f1 = open(self.galaxyhome+'/tools/'+toolparts[-2],'r')
+                line1 = f1.readline()
+                while not line1.find('<description>') >-1:
+                    line1 = f1.readline() 
+                
+                linestripped1 = line1.lstrip()
+                linestripped1 = linestripped1.rstrip()
+                descriptionparts=linestripped1.split(' ')
+                print '\nOperation : ',descriptionparts
+                service = ''
+                if(self.servicetype == 'SOAP'):
+                    service = self.clientfile
+                elif self.servicetype == 'REST':
+                    service = self.webservice
+                if(descriptionparts[5]==self.operation and descriptionparts[10] == service):
+                    f.close()
+                    f1.close()
+                    return True
+                f1.close()
+            line = f.readline()
+            linestripped = line.lstrip()
+            linestripped = linestripped.rstrip()
+            
+        f.close()
+        return False
+    
+        
+    '''
+    Creates a client file2 (xml file) for the given opertion in the SOAP web service 
+    This operation is invokes standalone and is cannot be used in workflows
+    Then invokes another operation which adds this client file (tool) to the toolconfig.xml
+    under 'Web Service Tools'
+    
+    '''    
+    
+    def wsdlClient(self):
+      with warnings.catch_warnings():
+        warnings.simplefilter("ignore")
+        wLoad=wsdlLoader()
+        galaxyhome=os.environ.get('GALAXY_HOME')
+        sys.path.append(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator')
+        os.chdir(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator')
+        
+        a= str(self.webservice).split('/')
+        wsdlnamelist = a[len(a)-1].split(".")
+        if len(wsdlnamelist)==1:
+    	    wsdlnamelist=a[len(a)-1].split('?')
+    	    print wsdlnamelist
+
+        foldername=wsdlnamelist[0]
+        
+        path =galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator/'+foldername
+        
+    #creates the client stubs
+        clientfile=wLoad.wsdlUrl2path(str(self.webservice),foldername)
+        
+        webservice = clientfile#sys.argv[4]
+        #operation = sys.argv[3]
+        outputfile=open(self.outputfile,'w')
+        test = ClientCreator()
+        inputs= test.opname2inputs(self.operation,webservice)
+        inputl = nested2flatDict(inputs)
+        inputlist = inputl.keys()
+        #noOfInputs=inputlist.count()
+        count =0
+        if (len(inputs)==0):
+            inputs={' ':' '}
+            #inputlist=inputs.keys()
+        for i in inputlist:
+            if count==0:
+                outputfile.write(i+'\t'+webservice+'\t'+self.operation+'\n')
+            else:
+                outputfile.write(i+'\n')
+            count=count+1
+
+
+        cc = ClientCreator()
+        self.msinstance = cc.opname2inputClassOb(self.operation,webservice)
+        
+        ##generate client's xml
+        galaxyhome=os.environ.get('GALAXY_HOME')
+        
+        #./clients/ClientCount.xml keeps the count of the clients/tools currently registered in Galaxy for Web service invocation.
+        #read the count and increment it. 
+        
+        clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clients/ClientCount.xml','r')
+        clientCountFile.readline()
+        clientCountStr = clientCountFile.readline()
+        clientCount=string.atoi(clientCountStr)
+        clientCount=clientCount+1
+        clientCountFile.close()
+        
+        clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clients/ClientCount.xml','w')
+        clientCountFile.write('<count> \n')
+        clientCountFile.write(str(clientCount)+'\n')
+        clientCountFile.write('</count> \n')
+        clientCountFile.close() 
+        
+        clientName = 'WebServiceclient_'+ str(clientCount)
+        
+        clientXml=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clients/'+clientName+'.xml','w')
+        clientXml.seek(0,0)
+        
+        clientXml.write('<tool id="' + clientName+'" name="'+foldername+'.' + self.operation +'">\n')
+        clientXml.write('  <description> Client for operation : '+self.operation+' , Web service : '+webservice+' </description>\n')
+
+        #Only Required parameters
+        clientXml.write('  <command interpreter="python">\n #if $cond_source.optional_param_source=="no" #client_1.py'+' $output $servicetype ' +webservice+'  '+self.operation)
+        
+        #clientXml.write('  <command interpreter="python">\n  client_1.py \n' +'  $output \n  ' +self.webservice+' \n  '+self.operation+'\n')
+        ##write such that the parameters passed to client1.py(change name to clientName.py) are dependent on a for loop
+        test = MessageHandler()
+        j=0
+        for param in inputl:
+            if self.isRequired(param):     
+                    clientXml.write('	"'+param+'"')           
+                    clientXml.write(' $param'+str(j))     
+                    j=j+1        
+             
+                
+        #Both Required and optional paramters        
+        clientXml.write(' #else #client_1.py'+' $output $servicetype ' +webservice+'    '+self.operation+'\n')
+        
+        ''' 
+         Required parameters - If the parameter is complex type (tree structure) then the the parameter is required
+         only if both the root node and the leaf node are required (i.e. both root and leaf have attribute nillable as false) 
+        '''      
+        
+        j=0
+        for param in inputl:
+            if self.isRequired(param):     
+                    clientXml.write('	"'+param+'"')           
+                    clientXml.write(' $param'+str(j))     
+                    j=j+1        
+            
+        
+        ''' 
+         Optional parameters - If the parameter is complex type (tree structure) then the the paramter is optional
+         if its root element is optional (i.e. root has attribute nillable as true) even if the leaf node (element) 
+         is required (i.e. leaf element has attribute nillable as false)
+        '''      
+        for param in inputl:
+            if not self.isRequired(param):     
+                    clientXml.write('	"'+param+'"')            
+                    clientXml.write(' $param'+str(j))    
+                    j=j+1        
+                
+        
+#params for array type 
+#        for param in self.inputs:
+ #           paramelement = test.getParameter(self.msinstance(),param)
+  #          if getattr(paramelement,'nillable')==True:
+   #             if string.find(param,"|0|")>-1:
+    #                ele = string(param,"|0|")
+     #               for param in self.inputs:
+                        
+                
+      #          clientXml.write(' "'+param+'"')
+       #         clientXml.write(' $cond_source.param' + str(j))            
+        #        j=j+1
+        
+        clientXml.write(' #end if \n</command>\n')
+        
+        
+#        for param in self.inputs:
+ #           paramelement = test.getParameter(self.msinstance(),param)
+  #          if getattr(paramelement,'nillable')==False or getattr(paramelement,'minOccurs')==1:
+   #             clientXml.write('  "'+param+'"\n')            
+    #            clientXml.write('  $param'+str(j)+'\n')            
+     #           j=j+1
+                
+     
+        #clientXml.write('</command>\n')
+        
+        #start writing inputs
+	    ##write inputs depending on required or not. if not required den dont display 
+        ##if required- den check default value, and if options exist.Depending on that
+        ##decide the type of parameter and options
+        ##The input servicetype tells what type of webservice it is wether SOAP or REST - Useful during invocation of the web servcie   
+        clientXml.write('  <inputs>\n') 
+        clientXml.write('    <param name="servicetype" type="hidden" value="SOAP" />\n')
+        
+                
+        j=0
+        for param in inputl:
+            if self.isRequired(param):     
+                    pName = getattr(self.paramelement,'pname')
+                    clientXml.write('<param format="text" size = "150" name = "param'+str(j)+'"  ')      
+                    clientXml.write('type="text" label="Enter '+pName+'" help="see tip below" />\n')   
+                    j=j+1
+                            
+        clientXml.write('\n <conditional name="cond_source"> \n <param name="optional_param_source" type="select" label="Show Optional Parameters">\n <option value="no" selected="true">no</option> \n <option value="yes">yes</option> \n </param>\n')
+        clientXml.write('<when value="no"> \n </when>')
+        clientXml.write('<when value="yes"> \n')
+        
+        for param in inputl:
+            if not self.isRequired(param):     
+                    pName = getattr(self.paramelement,'pname')
+                    clientXml.write('<param format="text" size = "150" name = "param'+str(j)+'"  ')    
+                    clientXml.write('type="text" label="Enter '+pName+'" help="see tip below" />\n')   
+                    j=j+1        
+            
+           
+        clientXml.write('</when>\n</conditional>')
+       
+#        j=0
+ #       for param in self.inputs:                       
+  #          paramelement = test.getParameter(self.msinstance(),param)
+   #         if not getattr(paramelement,'nillable'):
+    #            pName = getattr(paramelement,'pname')#param.getName()
+     #           clientXml.write('<param format="text" size = "150" name = "param'+str(j)+'"  ')
+      #          clientXml.write('type="text" label="'+pName+'" help="see tip below" />\n')
+       #         j=j+1
+       
+        clientXml.write('</inputs>\n  <outputs>\n    <data format="tabular" name="output" />\n  </outputs>\n')
+        
+        clientXml.write('  <help>\n')
+        paramtype = None
+        for param in inputl:
+            if self.isRequired(param):     
+                    if isinstance(self.paramelement,ZSI.TC.String):
+                        paramtype = 'String'
+                    elif isinstance(self.paramelement,ZSI.TCnumbers.FPfloat):
+                        paramtype = 'Floating point'
+                    elif isinstance(self.paramelement,ZSI.TC.Boolean):
+                            paramtype = 'Boolean'
+                    elif isinstance(self.paramelement,ZSI.TCnumbers.Iint):
+                            paramtype = 'Integer'
+                    clientXml.write('\n.. class:: infomark\n\n**TIP:** About '+ getattr(self.paramelement,'pname') +': type is ' + paramtype + '\n')       
+
+            
+            
+                
+        clientXml.write('  </help>\n</tool>')
+                
+#        clientXml.write('  <help>\n')
+        
+ #       j=0
+  #      for param in params:
+   #         clientXml.write('\n.. class:: infomark\n\n**TIP:** '+ param +' type is ' + paramTypes[j] +'\n')       
+        
+    #    clientXml.write('  </help>\n</tool>')
+       # clientXml.write('</tool>')
+        clientXml.close()
+        editor = editToolConfig1()
+        editor.addTool(clientName)
+        
+        ##later add help feature
+            
+        
+    def wadlClient(self):
+        ##parse wadl 
+        pkg=JPackage('lsdis')
+        urlToPass=java.net.URL(self.webservice)
+        wadlUrl = self.webservice
+    
+        webserviceId = ''#self.operation
+        resUrl = self.operation
+    
+        urls = []
+        methods = []
+        params = []
+        docs = []
+
+        WADLParserDriver=pkg.WADLParserDriver
+        wPD=WADLParserDriver()
+        wPD.parse(urlToPass)
+        urls = wPD.getUrl()
+        methods = wPD.getCompleteMethodList()
+
+        #write into the output file information about the method and Web service to be invoked.        
+        f=open(self.outputfile,'w')
+        f.write(self.webservice)
+        f.write('\n'+ resUrl)
+        
+        a= str(self.webservice).split('/')
+        wadlnamelist = a[len(a)-1].split(".")
+        if len(wadlnamelist)==1:
+    	    wadlnamelist=a[len(a)-1].split('?')
+    	    print wadlnamelist
+
+        wadlname=wadlnamelist[0]
+        
+
+        #get parameters for the selected method of the Web service
+        i=0
+        for method in methods:
+            x = str(method.getId())
+            y = str(urls.get(i))
+            webserviceId = x
+            #if x==webserviceId:
+            if y == resUrl : 
+                params = method.getRequest().getParams()
+                break
+            i=i+1    
+     
+        f.write('\n'+webserviceId)
+        galaxyhome=os.environ.get('GALAXY_HOME')
+        
+        methodname = resUrl.split('/')
+        
+        #./clients/ClientCount.xml keeps the count of the clients/tools currently registered in Galaxy for Web service invocation.
+        #read the count and increment it. 
+        clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clients/ClientCount.xml','r')
+        clientCountFile.readline()
+        clientCountStr = clientCountFile.readline()
+        clientCount=string.atoi(clientCountStr)
+        clientCount=clientCount+1
+        clientCountFile.close()
+        
+        clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clients/ClientCount.xml','w')
+
+        clientCountFile.write('<count> \n')
+        clientCountFile.write(str(clientCount)+'\n')
+        clientCountFile.write('</count> \n')
+	
+        #include the count in the tool's name and id to uniquely identify it.         
+        clientName = 'WebServiceclient_'+ str(clientCount)
+
+        #create a new xml file under ./clients/        
+        clientXml=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clients/'+clientName+'.xml','w')
+        clientXml.seek(0,0)
+
+        #write the tool id, name and description        
+        clientXml.write('<tool id="' + clientName+'1" name="'+wadlname+'.' + methodname[-1] +'      ">\n')
+        clientXml.write('  <description> Client for method : '+self.operation+' , Web service : '+self.webservice+' </description>\n')
+
+        #the one-time invocation tool/client for a REST Web service invokes ./clients/client_1.py to invoke the Web service
+        #write the command tag to specify the arguments passed to this client_1.py
+        clientXml.write('  <command interpreter="python">\n #if $cond_source.optional_param_source=="no" #client_1.py'+' $output $servicetype ' +resUrl)
+               
+        j=0
+        
+        for param in params:
+            if param.isRequired():
+                clientXml.write(' '+self.formatString(param.getName()))
+                clientXml.write(' $param' + str(j))            
+                j=j+1
+        clientXml.write(' #else #client_1.py'+' $output $servicetype ' +resUrl)
+        j=0
+        for param in params:
+            if param.isRequired():
+                clientXml.write(' '+self.formatString(param.getName()))
+                clientXml.write(' $param' + str(j))            
+                j=j+1
+                
+        for param in params:
+            if not param.isRequired():
+                clientXml.write(' '+self.formatString(param.getName()))
+                clientXml.write(' $cond_source.param' + str(j))            
+                j=j+1
+        clientXml.write(' #end if \n</command>\n')
+        
+	#start writing inputs
+	##write inputs depending on required or not. if not required den dont display 
+    ##if required- den check default value, and if options exist.Depending on that
+    ##decide the type of parameter and options
+    ##The input servicetype tells what type of webservice it is wether SOAP or REST - Useful during invocation of the web servcie   
+        clientXml.write('  <inputs>\n') 
+        clientXml.write('    <param name="servicetype" type="hidden" value="REST" />')
+        
+        #create a param for each required parameter described in the WADL. Check if defaults and options are specified in the WADL
+        j=0
+        for param in params:
+            if param.isRequired():
+                pName = param.getName()
+                for doc in param.getDocs():
+                    if doc.getTitle()=="prompt" or doc.getTitle()=="Prompt" or doc.getTitle()=="PROMPT": 
+		        pName = doc.getInnerText()
+                if param.getOptions().size()==0:
+                    clientXml.write('<param format="text" size = "150" name = "param'+str(j)+'"  ')
+                    if not param.getDefault1() == None:
+                        clientXml.write('value="'+param.getDefault1()+'"  ')
+                    clientXml.write('type="text" label="Enter '+pName+'" help="see tip below" />\n')
+                    j=j+1
+                else:
+                    clientXml.write('<param name="param'+str(j)+'" type="select" label="Select '+pName+'" help="see tip below">\n' )    
+                    for option in param.getOptions():
+                        clientXml.write(' <option value="'+self.formatString(option.getName())+'" ')
+                        if option.getName() == param.getDefault1():
+                            clientXml.write('selected="true"')
+                        clientXml.write('>'+option.getName()+'</option>\n ')    
+                    clientXml.write('    </param> \n')
+                    j=j+1
+
+        #create a conditional param for each optional parameter described in the WADL.                     
+        clientXml.write('\n <conditional name="cond_source"> \n <param name="optional_param_source" type="select" label="Show Optional Parameters">\n <option value="no" selected="true">no</option> \n <option value="yes">yes</option> \n </param>\n')
+        clientXml.write('<when value="no"> \n </when>')
+        clientXml.write('<when value="yes"> \n')
+        for param in params:
+            if not param.isRequired():
+                pName = param.getName()
+                for doc in param.getDocs():
+                    if doc.getTitle()=="prompt" or doc.getTitle()=="Prompt" or doc.getTitle()=="PROMPT":
+		        pName = doc.getInnerText()              
+                if param.getOptions().size()==0:
+                    clientXml.write('<param format="text" size = "150" name = "param'+str(j)+'"  ')
+                    if not param.getDefault1() == None:
+                        clientXml.write('value="'+param.getDefault1()+'"  ')
+                    clientXml.write('type="text" label="Enter '+pName+'" help="see tip below" />\n')
+                    j=j+1
+                else:
+                    clientXml.write('<param name="param'+str(j)+'" type="select" label="Select '+pName+'" help="see tip below">\n' )    
+                    for option in param.getOptions():
+                        clientXml.write(' <option value="'+self.formatString(option.getName())+'" ')
+                        if option.getName() == param.getDefault1():
+                            clientXml.write('selected="true"')
+                        clientXml.write('>'+option.getName()+'</option>\n ')    
+                    clientXml.write('    </param> \n')
+                    j=j+1
+        
+                
+        clientXml.write('</when>\n</conditional>')
+        clientXml.write('</inputs>\n  <outputs>\n    <data format="tabular" name="output" />\n  </outputs>\n')
+
+        #write information about each parameter in the help section        
+        clientXml.write('  <help>\n')
+        
+        clientXml.write('Replace white space with ** in all parameter values\n')
+                
+        for param in params:
+            if param.isRequired():
+                pName = param.getName()
+                for doc in param.getDocs():
+                    if doc.getTitle()=="prompt" or doc.getTitle()=="Prompt" or doc.getTitle()=="PROMPT":
+		        pName = doc.getInnerText()            
+                clientXml.write('\n.. class:: infomark\n\n**TIP:** '+ pName +' type is ' + param.getType()+'\n')       
+        
+        clientXml.write('  </help>\n</tool>')
+        
+        
+        #adds the newly created tool to tool_conf.xml in Galaxy under the 'Web Service Tools' section.        
+        editor = editToolConfig1()
+        editor.addTool(clientName)
+        
+        ##later add help feature
+        
+        
+    def sawadlClient(self):
+        ##parse sawadl 
+        javahome = os.environ.get('JAVA_HOME')
+        galaxyhome=os.environ.get('GALAXY_HOME')
+        classpath= galaxyhome + '/tools/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin'
+        jarpath = galaxyhome + '/tools/WebServiceToolWorkflow_REST_SOAP/lib/'
+        machine = platform.machine()
+    
+        #if machine == 'x86_64' :
+        #    print 'a'
+        #    startJVM("%s/jre/lib/amd64/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+        #elif machine == 'i686' :
+        #    print 'b'
+        #    startJVM("%s/jre/lib/i386/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+        #elif machine == 'sun4u' :
+        #    startJVM("%s/jre/lib/sparc/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+        #else :
+        #    print 'c'
+        #    System.exit("Could not identify machine, please specify path to libjvm.so")
+
+        
+        pkg=JPackage('edu.uga.cs.lsdis.meteors.wadls')
+        pkgModel =JPackage('org.semanticweb.owlapi.model')
+        pkgApiBinding =JPackage('org.semanticweb.owlapi.apibinding')
+        pkgVocab = JPackage('org.semanticweb.owlapi.vocab')
+    
+        DOCUMENT_IRI = "http://cs.uga.edu/~ganjoo/galaxy/EDAM.owl"
+    
+        sawadlUrl = self.webservice
+    
+        webserviceId = ''#self.methodName
+        resUrl = self.operation
+    
+        urls = []
+        methods = []
+        params = []
+        annotationSet = []
+
+        SAWADLParserDriver=pkg.SAWADLParserDriver
+        sawPD=SAWADLParserDriver()
+        sawPD.parse(sawadlUrl)
+        urls = sawPD.getUrl()
+        methods = sawPD.getCompleteMethodList()
+
+        IRI = pkgModel.IRI
+        OWLRDFVocabulary = pkgVocab.OWLRDFVocabulary
+        OWLManager = pkgApiBinding.OWLManager
+        OWLLiteral = pkgModel.OWLLiteral
+        owlOntManager = OWLManager.createOWLOntologyManager()
+        ontology = owlOntManager.loadOntologyFromOntologyDocument(IRI.create(DOCUMENT_IRI))
+        dataFactory = owlOntManager.getOWLDataFactory()
+        propertyComment = dataFactory.getOWLAnnotationProperty(OWLRDFVocabulary.RDFS_COMMENT.getIRI())
+        
+        f=open(self.outputfile,'w')
+        f.write(sawadlUrl)
+        f.write(resUrl+'\t')
+        
+
+        i=0
+        for method in methods:
+            x = str(method.getName())
+            y = str(urls.get(i))
+            #if x == webserviceId :
+            webserviceId = x
+            if y == resUrl : 
+                params = method.getRequest().getParamList()
+                break
+            i=i+1    
+        
+        f.write(webserviceId)
+        
+        
+        ##generate client's xml
+        galaxyhome=os.environ.get('GALAXY_HOME')
+        
+        #./clients/ClientCount.xml keeps the count of the clients/tools currently registered in Galaxy for Web service invocation.
+        #read the count and increment it. 
+        
+        clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clients/ClientCount.xml','r')
+        clientCountFile.readline()
+        clientCountStr = clientCountFile.readline()
+        clientCount=string.atoi(clientCountStr)
+        clientCount=clientCount+1
+        clientCountFile.close()
+        
+        clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clients/ClientCount.xml','w')
+        clientCountFile.write('<count> \n')
+        clientCountFile.write(str(clientCount)+'\n')
+        clientCountFile.write('</count> \n')
+	
+        clientName = 'WebServiceclient_'+ str(clientCount)
+        
+        clientXml=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clients/'+clientName+'.xml','w')
+        clientXml.seek(0,0)
+        
+        clientXml.write('<tool id="' + clientName+'1" name="' + webserviceId +'">\n')
+        clientXml.write('  <description> Client for method: '+webserviceId+' , Web service: '+self.webservice+' </description>\n')
+
+  
+        clientXml.write('  <command interpreter="python">\n  #if $cond_source.optional_param_source=="no" #client_1.py'+' $output $servicetype ' +resUrl)
+        ##write such that the parameters passed to client1.py(change name to clientName.py) are dependent on a for loop
+               
+        
+        j=0
+        for param in params:
+            if param.getRequired()=='true' or param.getRequired()=='True' or param.getRequired()=='TRUE':
+                clientXml.write('  '+self.formatString(param.getName())+'\n')
+                clientXml.write('  $param' + str(j)+'\n')            
+                j=j+1
+        
+        clientXml.write(' #else #client_1.py'+' $output $servicetype ' +resUrl)
+        j=0
+        for param in params:
+            if param.getRequired()=='true' or param.getRequired()=='True' or param.getRequired()=='TRUE':
+                clientXml.write(' '+self.formatString(param.getName()))
+                clientXml.write(' $param' + str(j))            
+                j=j+1
+                
+        for param in params:
+            if not param.getRequired()=='true' and not param.getRequired()=='True' and not param.getRequired()=='TRUE':
+                clientXml.write(' '+self.formatString(param.getName()))
+                clientXml.write(' $cond_source.param' + str(j))            
+                j=j+1               
+                 
+        clientXml.write('#end if \n </command>\n')
+        
+        #start writing inputs
+	    ##write inputs depending on required or not. if not required den dont display 
+        ##if required- den check default value, and if options exist.Depending on that
+        ##decide the type of parameter and options
+        ##The input param servicetype tells what type of webservice it is wether SOAP or REST - Useful during invocation of the web servcie   
+        clientXml.write('  <inputs>\n') 
+        cleintXml.write('    <param name="servicetype" type="hidden" value="REST"/>')
+        
+        j=0
+        for param in params:
+            if param.getRequired()=='true' or param.getRequired()=='True' or param.getRequired()=='TRUE':
+                f.write('\n '+ param.getName() + ' options: '+str(param.getOptionvalue().size()))
+                if param.getOptionvalue().size()==0:
+                    clientXml.write('<param format="text" size = "150" name = "param'+str(j)+'"  ')
+                    if not param.getDefault1() == None:
+                        clientXml.write('value="'+param.getDefault1()+'"  ')
+                    clientXml.write('type="text" label="Enter '+param.getName()+'" help="see tip below" />\n')
+                    j=j+1
+                else:
+                    clientXml.write('<param name="param'+str(j)+'" type="select" label="Select '+param.getName()+'" help="see tip below">\n' )    
+                    for option in param.getOptionvalue():
+                        clientXml.write(' <option value="'+self.formatString(option)+'" ')
+                        if option == param.getDefault1():
+                            clientXml.write('selected="true"')
+                        clientXml.write('>'+option+'</option>\n ')    
+                    clientXml.write('    </param> \n')
+                    j=j+1
+
+                    
+        clientXml.write('\n <conditional name="cond_source"> \n <param name="optional_param_source" type="select" label="Display Optional Parameters">\n <option value="no" selected="true">no</option> \n <option value="yes">yes</option> \n </param>\n')
+        clientXml.write('<when value="no"> \n </when>')
+        clientXml.write('<when value="yes"> \n')
+        
+        for param in params:
+            if not param.getRequired()=='true' and not param.getRequired()=='True' and not param.getRequired()=='TRUE':
+                f.write('\n '+ param.getName() + ' options: '+str(param.getOptionvalue().size()))
+                if param.getOptionvalue().size()==0:
+                    clientXml.write('<param format="text" size = "150" name = "param'+str(j)+'"  ')
+                    if not param.getDefault1() == None:
+                        clientXml.write('value="'+param.getDefault1()+'"  ')
+                    clientXml.write('type="text" label="Enter '+param.getName()+'" help="see tip below" />\n')
+                    j=j+1
+                else:
+                    clientXml.write('<param name="param'+str(j)+'" type="select" label="Select '+param.getName()+'" help="see tip below">\n' )    
+                    for option in param.getOptionvalue():
+                        clientXml.write(' <option value="'+self.formatString(option)+'" ')
+                        if option == param.getDefault1():
+                            clientXml.write('selected="true"')
+                        clientXml.write('>'+option+'</option>\n ')    
+                    clientXml.write('    </param> \n')
+                    j=j+1
+        
+        clientXml.write('</when>\n</conditional>\n')        
+
+        clientXml.write('</inputs>\n  <outputs>\n    <data format="tabular" name="output" />\n  </outputs>\n')
+        
+        clientXml.write('  <help>\n')
+        for param in params:
+            if param.getRequired()=='true' or param.getRequired()=='True' or param.getRequired()=='TRUE':
+                clientXml.write('\n.. class:: infomark\n\n**TIP:** About '+ param.getName() +': type is ' + param.getType())       
+                
+                modelRef = sawPD.getCompleteModelReference(param)
+                if not modelRef is None:
+                    paramClass = dataFactory.getOWLClass(IRI.create(modelRef));
+                    annotationSet = paramClass.getAnnotations(ontology,propertyComment)
+                    for annotation in annotationSet:
+     		        if isinstance(annotation.getValue(),OWLLiteral):
+     		            val = annotation.getValue()
+     		            if val.isOWLStringLiteral() and not val.isOWLTypedLiteral():
+     		                print 'val.getLiteral()=' + val.getLiteral()
+                                clientXml.write(', description from ontology is "' + val.getLiteral()+'"')  
+                                break
+                    clientXml.write('\n')            
+        clientXml.write('  </help>\n</tool>')
+        editor = editToolConfig1()
+        editor.addTool(clientName)
+        
+        ##later add help feature 
+    
+    def wsdlRESTClient(self):
+        ##parse wadl 
+        javahome = os.environ.get('JAVA_HOME')
+        galaxyhome=os.environ.get('GALAXY_HOME')
+        classpath= galaxyhome + '/tools/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/bin'
+        jarpath = galaxyhome + '/tools/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/lib/'
+        machine = platform.machine()
+    
+        if machine == 'x86_64' :
+            print 'a'
+            startJVM("%s/jre/lib/amd64/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+        elif machine == 'i686' :
+            print 'b'
+            startJVM("%s/jre/lib/i386/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+        elif machine == 'sun4u' :
+            startJVM("%s/jre/lib/sparc/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+        else :
+            print 'c'
+            System.exit("Could not identify machine, please specify path to libjvm.so")
+
+        
+        pkg=JPackage('lsdis')
+        wsdlUrl = self.webserviceId
+    
+        webserviceId = ''#self.methodName
+        resUrl = self.resourceName
+    
+        urls = []
+        methods = []
+        params = []
+        paramTypes = []
+        
+        WSDLParserDriver =pkg.WSDLParserDriver
+        wPD=WSDLParserDriver()
+        wPD.parse(wsdlUrl)
+        methods = wPD.getCompleteMethodList()
+        urls = wPD.getUrl()
+                
+        f=open(self.Ofile,'w')
+        f.write(wsdlUrl)
+        f.write('\n'+ resUrl)
+        f.write('\n'+webserviceId)
+        
+
+        i=0
+        for method in methods:
+            x = str(method.getName().getLocalPart())
+            y = str(url.get(i))
+            webserviceId = x
+            if y == resUrl :
+                wPD.getParameters(x)
+                f.write('method matched')
+                paramTypes = wPD.getParamTypeList()
+                params = wPD.getParamList()
+                break
+            i=i+1    
+        
+
+        
+        
+        ##generate client's xml
+        galaxyhome=os.environ.get('GALAXY_HOME')
+        
+        clientCountFile=open(galaxyhome+'/tools/WebServiceTool/clients/ClientCount.xml','r')
+	clientCountFile.readline()
+        clientCountStr = clientCountFile.readline()
+        clientCount=string.atoi(clientCountStr)
+        clientCount=clientCount+1
+        clientCountFile.close()
+        
+        clientCountFile=open(galaxyhome+'/tools/WebServiceTool/clients/ClientCount.xml','w')
+	clientCountFile.write('<count> \n')
+	clientCountFile.write(str(clientCount)+'\n')
+	clientCountFile.write('</count> \n')
+	
+        
+        
+        
+        clientName = 'WebServiceclient_'+ str(clientCount)
+        
+        clientXml=open(galaxyhome+'/tools/WebServiceTool/clients/'+clientName+'.xml','w')
+        clientXml.seek(0,0)
+        
+        clientXml.write('<tool id="' + clientName+'" name="' + webserviceId +'">\n')
+        clientXml.write('  <description> Client for method: '+webserviceId+' , Web service: '+self.webservice+' </description>\n')
+
+  
+        clientXml.write('  <command interpreter="python">\n  client_1.py \n'+'  $output \n  $servicetype\n ' +resUrl+'\n')
+        ##write such that the parameters passed to client1.py(change name to clientName.py) are dependent on a for loop
+        
+        j=0
+        for param in params:
+            clientXml.write('  '+self.formatString(param)+'\n')
+            clientXml.write('  $param' + str(j)+'\n')            
+            j=j+1
+        clientXml.write('</command>\n')
+        
+        ##write inputs depending on required or not. if not required den dont display 
+        ##if required- den check default value, and if options exist.Depending on that
+        ##decide the type of parameter and options
+        clientXml.write('  <inputs>\n') 
+        cleintXml.write('    <param name="servicetype" type="hidden" value="REST"/>')
+        
+        j=0
+        for param in params:
+            clientXml.write('<param format="text" size = "150" name = "param'+str(j)+'"  ')
+            clientXml.write('type="text" label="'+param+'" help="see tip below" />\n')
+            j=j+1
+            
+                    
+                    
+        clientXml.write('</inputs>\n  <outputs>\n    <data format="tabular" name="output" />\n  </outputs>\n')
+        
+        clientXml.write('  <help>\n')
+        
+        clientXml.write('** Replace white with ** in all parameter values **\n')
+        
+        j=0
+        for param in params:
+            clientXml.write('\n.. class:: infomark\n\n**TIP:** '+ param +' type is ' + paramTypes[j] +'\n')       
+        
+        clientXml.write('  </help>\n</tool>')
+        editor = editToolConfig()
+        editor.addTool(clientName)
+        
+        ##later add help feature
+
+
+# Addedfor testing purpose
+        
+if __name__ == "__main__":
+    
+    test = ClientGenerator1('http://www.cs.uga.edu/~guttula/wublast.wsdl','run',None,'SOAP')
+    present = test.isToolPresent()
+    required = test.isRequired('_parameters|_sequence')
+    print 'required : ',required
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/generateClient1.pyc has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/generateClient1.py~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,919 @@
+'''
+@author  Chaitanya Guttula, Sumedha Ganjoo
+@see     LICENSE (MIT style license file).
+'''
+
+import warnings
+
+with warnings.catch_warnings():
+    warnings.simplefilter("ignore")
+    import platform
+
+    from jpype._jpackage import JPackage
+    from jpype import *
+    import os.path
+    import sys
+    import string
+    from edit_tool_conf1 import *
+    from clientGenerator.msHandler import *
+    from clientGenerator.creatorEngineComplex import *
+    from clientGenerator.wsdl2path import *
+    from clientGenerator.paramConverter import *
+
+__author__=""
+
+#generates client for a web service to be used as standalone
+class ClientGenerator1(object):
+    
+    def __init__(self,webservice,operation,outputfile,servicetype):#,url):
+      with warnings.catch_warnings():
+        warnings.simplefilter("ignore")
+        self.webservice = webservice
+        self.operation = operation
+        self.inputs = outputfile
+        self.outputfile = outputfile
+        #self.url = url
+        
+        self.servicetype = servicetype
+        self.galaxyhome=os.environ.get('GALAXY_HOME')
+        self.clientfile = ''
+        if self.servicetype == 'SOAP':
+            wLoad=wsdlLoader()
+            sys.path.append(self.galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator')
+            os.chdir(self.galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator')
+        
+            a = str(self.webservice).split('/')
+            wsdlnamelist = a[len(a)-1].split(".")
+            if len(wsdlnamelist)==1:
+        	    wsdlnamelist=a[len(a)-1].split('?')
+        	    print wsdlnamelist
+
+            foldername=wsdlnamelist[0]
+        
+            path =self.galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator/'+foldername
+        
+    #creates the client stubs
+            self.clientfile = wLoad.wsdlUrl2path(str(self.webservice),foldername)
+        
+            print 'Client file : ',self.clientfile
+            self.paramelement = None
+        
+        
+        
+    ''' Replaces space (' ') with '**' in the given string  '''
+    def formatString(self,string):
+        l = string.split(' ')
+        return '**'.join(l)
+        
+    def isRequired(self,param):
+        #j=0
+        #for param in inputl:
+        cc = ClientCreator()
+        self.msinstance = cc.opname2inputClassOb(self.operation,self.clientfile)
+        test = MessageHandler()
+        required = False
+        if (param.find('|$|')>-1):
+            plist = param.split('|')
+            #root = test.getParameter(self.msinstance(),plist[0])
+            k = 0
+            iparam = ''
+            for p in plist:
+                if(k<len(plist)-3):
+                    if(k==0):
+                        iparam = iparam+(p)
+                    else:
+                        iparam = iparam+'|'+p
+                    k=k+1
+            paramelement = test.getParameter(self.msinstance(),iparam)
+        else:
+            paramelement = test.getParameter(self.msinstance(),param)
+        self.paramelement = paramelement
+        if (param.find('|')>-1):   
+            plist = param.split('|')   
+            root = test.getParameter(self.msinstance(),plist[0])    
+            if not getattr(root,'nillable') and not getattr(paramelement,'nillable'):
+                required = True
+                return True
+            elif getattr(root,'nillable') or (not getattr(root,'nillable') and getattr(paramelement,'nillable')): 
+                required = False
+                return False
+        else:     
+            if not getattr(paramelement,'nillable'):     
+                required = True
+                return True
+            elif getattr(paramelement,'nillable'):
+                required = False
+                return False
+        return required
+    
+    
+    #replace '**' with ' '
+    def formatString(self,string):
+        l = string.split(' ')
+        return '**'.join(l)
+
+    '''
+    Checks if the tool(operation) is already addded to Galaxy. It opens the tool_conf.xml file and loops through the "Web Service Workflow Tools" sections
+    Then opens each and every tool (xml file) and looks for the description tag for the "Web Service" and "Client for Method" values and then checks
+    if it same as the opearation and web service. As the code is dependent on description of the toool xml fie, any change in the description
+    of the tool xml file can impact this function.
+    '''
+    def isToolPresent(self):
+        
+        f = open(self.galaxyhome+'/tool_conf.xml','r')
+        line = f.readline()
+        linestripped = line.lstrip()
+        linestripped = linestripped.rstrip()
+        
+        while linestripped != '<section name="Select Web Service Tool" id="WebServices">':
+            line = f.readline()
+            linestripped = line.lstrip()
+            linestripped = linestripped.rstrip()
+            
+        line = f.readline()
+        linestripped = line.lstrip()
+        linestripped = linestripped.rstrip()
+                
+        while linestripped != '</section>':
+            if linestripped.find('<') >-1:
+                toolparts = linestripped.split('"')
+                print '\ntoolparts are : ',toolparts
+                f1 = open(self.galaxyhome+'/tools/'+toolparts[-2],'r')
+                line1 = f1.readline()
+                while not line1.find('<description>') >-1:
+                    line1 = f1.readline() 
+                
+                linestripped1 = line1.lstrip()
+                linestripped1 = linestripped1.rstrip()
+                descriptionparts=linestripped1.split(' ')
+                print '\nOperation : ',descriptionparts
+                service = ''
+                if(self.servicetype == 'SOAP'):
+                    service = self.clientfile
+                elif self.servicetype == 'REST':
+                    service = self.webservice
+                if(descriptionparts[5]==self.operation and descriptionparts[10] == service):
+                    f.close()
+                    f1.close()
+                    return True
+                f1.close()
+            line = f.readline()
+            linestripped = line.lstrip()
+            linestripped = linestripped.rstrip()
+            
+        f.close()
+        return False
+    
+        
+    '''
+    Creates a client file2 (xml file) for the given opertion in the SOAP web service 
+    This operation is invokes standalone and is cannot be used in workflows
+    Then invokes another operation which adds this client file (tool) to the toolconfig.xml
+    under 'Web Service Tools'
+    
+    '''    
+    
+    def wsdlClient(self):
+      with warnings.catch_warnings():
+        warnings.simplefilter("ignore")
+        wLoad=wsdlLoader()
+        galaxyhome=os.environ.get('GALAXY_HOME')
+        sys.path.append(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator')
+        os.chdir(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator')
+        
+        a= str(self.webservice).split('/')
+        wsdlnamelist = a[len(a)-1].split(".")
+        if len(wsdlnamelist)==1:
+    	    wsdlnamelist=a[len(a)-1].split('?')
+    	    print wsdlnamelist
+
+        foldername=wsdlnamelist[0]
+        
+        path =galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator/'+foldername
+        
+    #creates the client stubs
+        clientfile=wLoad.wsdlUrl2path(str(self.webservice),foldername)
+        
+        webservice = clientfile#sys.argv[4]
+        #operation = sys.argv[3]
+        outputfile=open(self.outputfile,'w')
+        test = ClientCreator()
+        inputs= test.opname2inputs(self.operation,webservice)
+        inputl = nested2flatDict(inputs)
+        inputlist = inputl.keys()
+        #noOfInputs=inputlist.count()
+        count =0
+        if (len(inputs)==0):
+            inputs={' ':' '}
+            #inputlist=inputs.keys()
+        for i in inputlist:
+            if count==0:
+                outputfile.write(i+'\t'+webservice+'\t'+self.operation+'\n')
+            else:
+                outputfile.write(i+'\n')
+            count=count+1
+
+
+        cc = ClientCreator()
+        self.msinstance = cc.opname2inputClassOb(self.operation,webservice)
+        
+        ##generate client's xml
+        galaxyhome=os.environ.get('GALAXY_HOME')
+        
+        #./clients/ClientCount.xml keeps the count of the clients/tools currently registered in Galaxy for Web service invocation.
+        #read the count and increment it. 
+        
+        clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clients/ClientCount.xml','r')
+        clientCountFile.readline()
+        clientCountStr = clientCountFile.readline()
+        clientCount=string.atoi(clientCountStr)
+        clientCount=clientCount+1
+        clientCountFile.close()
+        
+        clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clients/ClientCount.xml','w')
+        clientCountFile.write('<count> \n')
+        clientCountFile.write(str(clientCount)+'\n')
+        clientCountFile.write('</count> \n')
+        clientCountFile.close() 
+        
+        clientName = 'WebServiceclient_'+ str(clientCount)
+        
+        clientXml=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clients/'+clientName+'.xml','w')
+        clientXml.seek(0,0)
+        
+        clientXml.write('<tool id="' + clientName+'" name="'+foldername+'.' + self.operation +'">\n')
+        clientXml.write('  <description> Client for operation : '+self.operation+' , Web service : '+webservice+' </description>\n')
+
+        #Only Required parameters
+        clientXml.write('  <command interpreter="python">\n #if $cond_source.optional_param_source=="no" #client_1.py'+' $output $servicetype ' +webservice+'  '+self.operation)
+        
+        #clientXml.write('  <command interpreter="python">\n  client_1.py \n' +'  $output \n  ' +self.webservice+' \n  '+self.operation+'\n')
+        ##write such that the parameters passed to client1.py(change name to clientName.py) are dependent on a for loop
+        test = MessageHandler()
+        j=0
+        for param in inputl:
+            if self.isRequired(param):     
+                    clientXml.write('	"'+param+'"')           
+                    clientXml.write(' $param'+str(j))     
+                    j=j+1        
+             
+                
+        #Both Required and optional paramters        
+        clientXml.write(' #else #client_1.py'+' $output $servicetype ' +webservice+'    '+self.operation+'\n')
+        
+        ''' 
+         Required parameters - If the parameter is complex type (tree structure) then the the parameter is required
+         only if both the root node and the leaf node are required (i.e. both root and leaf have attribute nillable as false) 
+        '''      
+        
+        j=0
+        for param in inputl:
+            if self.isRequired(param):     
+                    clientXml.write('	"'+param+'"')           
+                    clientXml.write(' $param'+str(j))     
+                    j=j+1        
+            
+        
+        ''' 
+         Optional parameters - If the parameter is complex type (tree structure) then the the paramter is optional
+         if its root element is optional (i.e. root has attribute nillable as true) even if the leaf node (element) 
+         is required (i.e. leaf element has attribute nillable as false)
+        '''      
+        for param in inputl:
+            if not self.isRequired(param):     
+                    clientXml.write('	"'+param+'"')            
+                    clientXml.write(' $param'+str(j))    
+                    j=j+1        
+                
+        
+#params for array type 
+#        for param in self.inputs:
+ #           paramelement = test.getParameter(self.msinstance(),param)
+  #          if getattr(paramelement,'nillable')==True:
+   #             if string.find(param,"|0|")>-1:
+    #                ele = string(param,"|0|")
+     #               for param in self.inputs:
+                        
+                
+      #          clientXml.write(' "'+param+'"')
+       #         clientXml.write(' $cond_source.param' + str(j))            
+        #        j=j+1
+        
+        clientXml.write(' #end if \n</command>\n')
+        
+        
+#        for param in self.inputs:
+ #           paramelement = test.getParameter(self.msinstance(),param)
+  #          if getattr(paramelement,'nillable')==False or getattr(paramelement,'minOccurs')==1:
+   #             clientXml.write('  "'+param+'"\n')            
+    #            clientXml.write('  $param'+str(j)+'\n')            
+     #           j=j+1
+                
+     
+        #clientXml.write('</command>\n')
+        
+        #start writing inputs
+	    ##write inputs depending on required or not. if not required den dont display 
+        ##if required- den check default value, and if options exist.Depending on that
+        ##decide the type of parameter and options
+        ##The input servicetype tells what type of webservice it is wether SOAP or REST - Useful during invocation of the web servcie   
+        clientXml.write('  <inputs>\n') 
+        clientXml.write('    <param name="servicetype" type="hidden" value="SOAP" />\n')
+        
+                
+        j=0
+        for param in inputl:
+            if self.isRequired(param):     
+                    pName = getattr(self.paramelement,'pname')
+                    clientXml.write('<param format="text" size = "150" name = "param'+str(j)+'"  ')      
+                    clientXml.write('type="text" label="Enter '+pName+'" help="see tip below" />\n')   
+                    j=j+1
+                            
+        clientXml.write('\n <conditional name="cond_source"> \n <param name="optional_param_source" type="select" label="Show Optional Parameters">\n <option value="no" selected="true">no</option> \n <option value="yes">yes</option> \n </param>\n')
+        clientXml.write('<when value="no"> \n </when>')
+        clientXml.write('<when value="yes"> \n')
+        
+        for param in inputl:
+            if not self.isRequired(param):     
+                    pName = getattr(self.paramelement,'pname')
+                    clientXml.write('<param format="text" size = "150" name = "param'+str(j)+'"  ')    
+                    clientXml.write('type="text" label="Enter '+pName+'" help="see tip below" />\n')   
+                    j=j+1        
+            
+           
+        clientXml.write('</when>\n</conditional>')
+       
+#        j=0
+ #       for param in self.inputs:                       
+  #          paramelement = test.getParameter(self.msinstance(),param)
+   #         if not getattr(paramelement,'nillable'):
+    #            pName = getattr(paramelement,'pname')#param.getName()
+     #           clientXml.write('<param format="text" size = "150" name = "param'+str(j)+'"  ')
+      #          clientXml.write('type="text" label="'+pName+'" help="see tip below" />\n')
+       #         j=j+1
+       
+        clientXml.write('</inputs>\n  <outputs>\n    <data format="tabular" name="output" />\n  </outputs>\n')
+        
+        clientXml.write('  <help>\n')
+        paramtype = None
+        for param in inputl:
+            if self.isRequired(param):     
+                    if isinstance(self.paramelement,ZSI.TC.String):
+                        paramtype = 'String'
+                    elif isinstance(self.paramelement,ZSI.TCnumbers.FPfloat):
+                        paramtype = 'Floating point'
+                    elif isinstance(self.paramelement,ZSI.TC.Boolean):
+                            paramtype = 'Boolean'
+                    elif isinstance(self.paramelement,ZSI.TCnumbers.Iint):
+                            paramtype = 'Integer'
+                    clientXml.write('\n.. class:: infomark\n\n**TIP:** About '+ getattr(self.paramelement,'pname') +': type is ' + paramtype + '\n')       
+
+            
+            
+                
+        clientXml.write('  </help>\n</tool>')
+                
+#        clientXml.write('  <help>\n')
+        
+ #       j=0
+  #      for param in params:
+   #         clientXml.write('\n.. class:: infomark\n\n**TIP:** '+ param +' type is ' + paramTypes[j] +'\n')       
+        
+    #    clientXml.write('  </help>\n</tool>')
+       # clientXml.write('</tool>')
+        clientXml.close()
+        editor = editToolConfig1()
+        editor.addTool(clientName)
+        
+        ##later add help feature
+            
+        
+    def wadlClient(self):
+        ##parse wadl 
+        pkg=JPackage('lsdis')
+        urlToPass=java.net.URL(self.webservice)
+        wadlUrl = self.webservice
+    
+        webserviceId = ''#self.operation
+        resUrl = self.operation
+    
+        urls = []
+        methods = []
+        params = []
+        docs = []
+
+        WADLParserDriver=pkg.WADLParserDriver
+        wPD=WADLParserDriver()
+        wPD.parse(urlToPass)
+        urls = wPD.getUrl()
+        methods = wPD.getCompleteMethodList()
+
+        #write into the output file information about the method and Web service to be invoked.        
+        f=open(self.outputfile,'w')
+        f.write(self.webservice)
+        f.write('\n'+ resUrl)
+        
+        a= str(self.webservice).split('/')
+        wadlnamelist = a[len(a)-1].split(".")
+        if len(wadlnamelist)==1:
+    	    wadlnamelist=a[len(a)-1].split('?')
+    	    print wadlnamelist
+
+        wadlname=wadlnamelist[0]
+        
+
+        #get parameters for the selected method of the Web service
+        i=0
+        for method in methods:
+            x = str(method.getId())
+            y = str(urls.get(i))
+            webserviceId = x
+            #if x==webserviceId:
+            if y == resUrl : 
+                params = method.getRequest().getParams()
+                break
+            i=i+1    
+     
+        f.write('\n'+webserviceId)
+        galaxyhome=os.environ.get('GALAXY_HOME')
+        
+        methodname = resUrl.split('/')
+        
+        #./clients/ClientCount.xml keeps the count of the clients/tools currently registered in Galaxy for Web service invocation.
+        #read the count and increment it. 
+        clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clients/ClientCount.xml','r')
+        clientCountFile.readline()
+        clientCountStr = clientCountFile.readline()
+        clientCount=string.atoi(clientCountStr)
+        clientCount=clientCount+1
+        clientCountFile.close()
+        
+        clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clients/ClientCount.xml','w')
+
+        clientCountFile.write('<count> \n')
+        clientCountFile.write(str(clientCount)+'\n')
+        clientCountFile.write('</count> \n')
+	
+        #include the count in the tool's name and id to uniquely identify it.         
+        clientName = 'WebServiceclient_'+ str(clientCount)
+
+        #create a new xml file under ./clients/        
+        clientXml=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clients/'+clientName+'.xml','w')
+        clientXml.seek(0,0)
+
+        #write the tool id, name and description        
+        clientXml.write('<tool id="' + clientName+'1" name="'+wadlname+'.' + methodname[-1] +'      ">\n')
+        clientXml.write('  <description> Client for method : '+self.operation+' , Web service : '+self.webservice+' </description>\n')
+
+        #the one-time invocation tool/client for a REST Web service invokes ./clients/client_1.py to invoke the Web service
+        #write the command tag to specify the arguments passed to this client_1.py
+        clientXml.write('  <command interpreter="python">\n #if $cond_source.optional_param_source=="no" #client_1.py'+' $output $servicetype ' +resUrl)
+               
+        j=0
+        
+        for param in params:
+            if param.isRequired():
+                clientXml.write(' '+self.formatString(param.getName()))
+                clientXml.write(' $param' + str(j))            
+                j=j+1
+        clientXml.write(' #else #client_1.py'+' $output $servicetype ' +resUrl)
+        j=0
+        for param in params:
+            if param.isRequired():
+                clientXml.write(' '+self.formatString(param.getName()))
+                clientXml.write(' $param' + str(j))            
+                j=j+1
+                
+        for param in params:
+            if not param.isRequired():
+                clientXml.write(' '+self.formatString(param.getName()))
+                clientXml.write(' $cond_source.param' + str(j))            
+                j=j+1
+        clientXml.write(' #end if \n</command>\n')
+        
+	#start writing inputs
+	##write inputs depending on required or not. if not required den dont display 
+    ##if required- den check default value, and if options exist.Depending on that
+    ##decide the type of parameter and options
+    ##The input servicetype tells what type of webservice it is wether SOAP or REST - Useful during invocation of the web servcie   
+        clientXml.write('  <inputs>\n') 
+        clientXml.write('    <param name="servicetype" type="hidden" value="REST" />')
+        
+        #create a param for each required parameter described in the WADL. Check if defaults and options are specified in the WADL
+        j=0
+        for param in params:
+            if param.isRequired():
+                pName = param.getName()
+                for doc in param.getDocs():
+                    if doc.getTitle()=="prompt" or doc.getTitle()=="Prompt" or doc.getTitle()=="PROMPT": 
+		        pName = doc.getInnerText()
+                if param.getOptions().size()==0:
+                    clientXml.write('<param format="text" size = "150" name = "param'+str(j)+'"  ')
+                    if not param.getDefault1() == None:
+                        clientXml.write('value="'+param.getDefault1()+'"  ')
+                    clientXml.write('type="text" label="Enter '+pName+'" help="see tip below" />\n')
+                    j=j+1
+                else:
+                    clientXml.write('<param name="param'+str(j)+'" type="select" label="Select '+pName+'" help="see tip below">\n' )    
+                    for option in param.getOptions():
+                        clientXml.write(' <option value="'+self.formatString(option.getName())+'" ')
+                        if option.getName() == param.getDefault1():
+                            clientXml.write('selected="true"')
+                        clientXml.write('>'+option.getName()+'</option>\n ')    
+                    clientXml.write('    </param> \n')
+                    j=j+1
+
+        #create a conditional param for each optional parameter described in the WADL.                     
+        clientXml.write('\n <conditional name="cond_source"> \n <param name="optional_param_source" type="select" label="Show Optional Parameters">\n <option value="no" selected="true">no</option> \n <option value="yes">yes</option> \n </param>\n')
+        clientXml.write('<when value="no"> \n </when>')
+        clientXml.write('<when value="yes"> \n')
+        for param in params:
+            if not param.isRequired():
+                pName = param.getName()
+                for doc in param.getDocs():
+                    if doc.getTitle()=="prompt" or doc.getTitle()=="Prompt" or doc.getTitle()=="PROMPT":
+		        pName = doc.getInnerText()              
+                if param.getOptions().size()==0:
+                    clientXml.write('<param format="text" size = "150" name = "param'+str(j)+'"  ')
+                    if not param.getDefault1() == None:
+                        clientXml.write('value="'+param.getDefault1()+'"  ')
+                    clientXml.write('type="text" label="Enter '+pName+'" help="see tip below" />\n')
+                    j=j+1
+                else:
+                    clientXml.write('<param name="param'+str(j)+'" type="select" label="Select '+pName+'" help="see tip below">\n' )    
+                    for option in param.getOptions():
+                        clientXml.write(' <option value="'+self.formatString(option.getName())+'" ')
+                        if option.getName() == param.getDefault1():
+                            clientXml.write('selected="true"')
+                        clientXml.write('>'+option.getName()+'</option>\n ')    
+                    clientXml.write('    </param> \n')
+                    j=j+1
+        
+                
+        clientXml.write('</when>\n</conditional>')
+        clientXml.write('</inputs>\n  <outputs>\n    <data format="tabular" name="output" />\n  </outputs>\n')
+
+        #write information about each parameter in the help section        
+        clientXml.write('  <help>\n')
+        
+        clientXml.write('Replace white space with ** in all parameter values\n')
+                
+        for param in params:
+            if param.isRequired():
+                pName = param.getName()
+                for doc in param.getDocs():
+                    if doc.getTitle()=="prompt" or doc.getTitle()=="Prompt" or doc.getTitle()=="PROMPT":
+		        pName = doc.getInnerText()            
+                clientXml.write('\n.. class:: infomark\n\n**TIP:** '+ pName +' type is ' + param.getType()+'\n')       
+        
+        clientXml.write('  </help>\n</tool>')
+        
+        
+        #adds the newly created tool to tool_conf.xml in Galaxy under the 'Web Service Tools' section.        
+        editor = editToolConfig1()
+        editor.addTool(clientName)
+        
+        ##later add help feature
+        
+        
+    def sawadlClient(self):
+        ##parse sawadl 
+        javahome = os.environ.get('JAVA_HOME')
+        galaxyhome=os.environ.get('GALAXY_HOME')
+        classpath= galaxyhome + '/tools/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin'
+        jarpath = galaxyhome + '/tools/WebServiceToolWorkflow_REST_SOAP/lib/'
+        machine = platform.machine()
+    
+        #if machine == 'x86_64' :
+        #    print 'a'
+        #    startJVM("%s/jre/lib/amd64/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+        #elif machine == 'i686' :
+        #    print 'b'
+        #    startJVM("%s/jre/lib/i386/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+        #elif machine == 'sun4u' :
+        #    startJVM("%s/jre/lib/sparc/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+        #else :
+        #    print 'c'
+        #    System.exit("Could not identify machine, please specify path to libjvm.so")
+
+        
+        pkg=JPackage('edu.uga.cs.lsdis.meteors.wadls')
+        pkgModel =JPackage('org.semanticweb.owlapi.model')
+        pkgApiBinding =JPackage('org.semanticweb.owlapi.apibinding')
+        pkgVocab = JPackage('org.semanticweb.owlapi.vocab')
+    
+        DOCUMENT_IRI = "http://cs.uga.edu/~ganjoo/galaxy/EDAM.owl"
+    
+        sawadlUrl = self.webservice
+    
+        webserviceId = ''#self.methodName
+        resUrl = self.operation
+    
+        urls = []
+        methods = []
+        params = []
+        annotationSet = []
+
+        SAWADLParserDriver=pkg.SAWADLParserDriver
+        sawPD=SAWADLParserDriver()
+        sawPD.parse(sawadlUrl)
+        urls = sawPD.getUrl()
+        methods = sawPD.getCompleteMethodList()
+
+        IRI = pkgModel.IRI
+        OWLRDFVocabulary = pkgVocab.OWLRDFVocabulary
+        OWLManager = pkgApiBinding.OWLManager
+        OWLLiteral = pkgModel.OWLLiteral
+        owlOntManager = OWLManager.createOWLOntologyManager()
+        ontology = owlOntManager.loadOntologyFromOntologyDocument(IRI.create(DOCUMENT_IRI))
+        dataFactory = owlOntManager.getOWLDataFactory()
+        propertyComment = dataFactory.getOWLAnnotationProperty(OWLRDFVocabulary.RDFS_COMMENT.getIRI())
+        
+        f=open(self.outputfile,'w')
+        f.write(sawadlUrl)
+        f.write(resUrl+'\t')
+        
+
+        i=0
+        for method in methods:
+            x = str(method.getName())
+            y = str(urls.get(i))
+            #if x == webserviceId :
+            webserviceId = x
+            if y == resUrl : 
+                params = method.getRequest().getParamList()
+                break
+            i=i+1    
+        
+        f.write(webserviceId)
+        
+        
+        ##generate client's xml
+        galaxyhome=os.environ.get('GALAXY_HOME')
+        
+        #./clients/ClientCount.xml keeps the count of the clients/tools currently registered in Galaxy for Web service invocation.
+        #read the count and increment it. 
+        
+        clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clients/ClientCount.xml','r')
+        clientCountFile.readline()
+        clientCountStr = clientCountFile.readline()
+        clientCount=string.atoi(clientCountStr)
+        clientCount=clientCount+1
+        clientCountFile.close()
+        
+        clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clients/ClientCount.xml','w')
+        clientCountFile.write('<count> \n')
+        clientCountFile.write(str(clientCount)+'\n')
+        clientCountFile.write('</count> \n')
+	
+        clientName = 'WebServiceclient_'+ str(clientCount)
+        
+        clientXml=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clients/'+clientName+'.xml','w')
+        clientXml.seek(0,0)
+        
+        clientXml.write('<tool id="' + clientName+'1" name="' + webserviceId +'">\n')
+        clientXml.write('  <description> Client for method: '+webserviceId+' , Web service: '+self.webservice+' </description>\n')
+
+  
+        clientXml.write('  <command interpreter="python">\n  #if $cond_source.optional_param_source=="no" #client_1.py'+' $output $servicetype ' +resUrl)
+        ##write such that the parameters passed to client1.py(change name to clientName.py) are dependent on a for loop
+               
+        
+        j=0
+        for param in params:
+            if param.getRequired()=='true' or param.getRequired()=='True' or param.getRequired()=='TRUE':
+                clientXml.write('  '+self.formatString(param.getName())+'\n')
+                clientXml.write('  $param' + str(j)+'\n')            
+                j=j+1
+        
+        clientXml.write(' #else #client_1.py'+' $output $servicetype ' +resUrl)
+        j=0
+        for param in params:
+            if param.getRequired()=='true' or param.getRequired()=='True' or param.getRequired()=='TRUE':
+                clientXml.write(' '+self.formatString(param.getName()))
+                clientXml.write(' $param' + str(j))            
+                j=j+1
+                
+        for param in params:
+            if not param.getRequired()=='true' and not param.getRequired()=='True' and not param.getRequired()=='TRUE':
+                clientXml.write(' '+self.formatString(param.getName()))
+                clientXml.write(' $cond_source.param' + str(j))            
+                j=j+1               
+                 
+        clientXml.write('#end if \n </command>\n')
+        
+        #start writing inputs
+	    ##write inputs depending on required or not. if not required den dont display 
+        ##if required- den check default value, and if options exist.Depending on that
+        ##decide the type of parameter and options
+        ##The input param servicetype tells what type of webservice it is wether SOAP or REST - Useful during invocation of the web servcie   
+        clientXml.write('  <inputs>\n') 
+        cleintXml.write('    <param name="servicetype" type="hidden" value="REST"/>')
+        
+        j=0
+        for param in params:
+            if param.getRequired()=='true' or param.getRequired()=='True' or param.getRequired()=='TRUE':
+                f.write('\n '+ param.getName() + ' options: '+str(param.getOptionvalue().size()))
+                if param.getOptionvalue().size()==0:
+                    clientXml.write('<param format="text" size = "150" name = "param'+str(j)+'"  ')
+                    if not param.getDefault1() == None:
+                        clientXml.write('value="'+param.getDefault1()+'"  ')
+                    clientXml.write('type="text" label="Enter '+param.getName()+'" help="see tip below" />\n')
+                    j=j+1
+                else:
+                    clientXml.write('<param name="param'+str(j)+'" type="select" label="Select '+param.getName()+'" help="see tip below">\n' )    
+                    for option in param.getOptionvalue():
+                        clientXml.write(' <option value="'+self.formatString(option)+'" ')
+                        if option == param.getDefault1():
+                            clientXml.write('selected="true"')
+                        clientXml.write('>'+option+'</option>\n ')    
+                    clientXml.write('    </param> \n')
+                    j=j+1
+
+                    
+        clientXml.write('\n <conditional name="cond_source"> \n <param name="optional_param_source" type="select" label="Display Optional Parameters">\n <option value="no" selected="true">no</option> \n <option value="yes">yes</option> \n </param>\n')
+        clientXml.write('<when value="no"> \n </when>')
+        clientXml.write('<when value="yes"> \n')
+        
+        for param in params:
+            if not param.getRequired()=='true' and not param.getRequired()=='True' and not param.getRequired()=='TRUE':
+                f.write('\n '+ param.getName() + ' options: '+str(param.getOptionvalue().size()))
+                if param.getOptionvalue().size()==0:
+                    clientXml.write('<param format="text" size = "150" name = "param'+str(j)+'"  ')
+                    if not param.getDefault1() == None:
+                        clientXml.write('value="'+param.getDefault1()+'"  ')
+                    clientXml.write('type="text" label="Enter '+param.getName()+'" help="see tip below" />\n')
+                    j=j+1
+                else:
+                    clientXml.write('<param name="param'+str(j)+'" type="select" label="Select '+param.getName()+'" help="see tip below">\n' )    
+                    for option in param.getOptionvalue():
+                        clientXml.write(' <option value="'+self.formatString(option)+'" ')
+                        if option == param.getDefault1():
+                            clientXml.write('selected="true"')
+                        clientXml.write('>'+option+'</option>\n ')    
+                    clientXml.write('    </param> \n')
+                    j=j+1
+        
+        clientXml.write('</when>\n</conditional>\n')        
+
+        clientXml.write('</inputs>\n  <outputs>\n    <data format="tabular" name="output" />\n  </outputs>\n')
+        
+        clientXml.write('  <help>\n')
+        for param in params:
+            if param.getRequired()=='true' or param.getRequired()=='True' or param.getRequired()=='TRUE':
+                clientXml.write('\n.. class:: infomark\n\n**TIP:** About '+ param.getName() +': type is ' + param.getType())       
+                
+                modelRef = sawPD.getCompleteModelReference(param)
+                if not modelRef is None:
+                    paramClass = dataFactory.getOWLClass(IRI.create(modelRef));
+                    annotationSet = paramClass.getAnnotations(ontology,propertyComment)
+                    for annotation in annotationSet:
+     		        if isinstance(annotation.getValue(),OWLLiteral):
+     		            val = annotation.getValue()
+     		            if val.isOWLStringLiteral() and not val.isOWLTypedLiteral():
+     		                print 'val.getLiteral()=' + val.getLiteral()
+                                clientXml.write(', description from ontology is "' + val.getLiteral()+'"')  
+                                break
+                    clientXml.write('\n')            
+        clientXml.write('  </help>\n</tool>')
+        editor = editToolConfig1()
+        editor.addTool(clientName)
+        
+        ##later add help feature 
+    
+    def wsdlRESTClient(self):
+        ##parse wadl 
+        javahome = os.environ.get('JAVA_HOME')
+        galaxyhome=os.environ.get('GALAXY_HOME')
+        classpath= galaxyhome + '/tools/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/bin'
+        jarpath = galaxyhome + '/tools/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/lib/'
+        machine = platform.machine()
+    
+        if machine == 'x86_64' :
+            print 'a'
+            startJVM("%s/jre/lib/amd64/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+        elif machine == 'i686' :
+            print 'b'
+            startJVM("%s/jre/lib/i386/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+        elif machine == 'sun4u' :
+            startJVM("%s/jre/lib/sparc/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+        else :
+            print 'c'
+            System.exit("Could not identify machine, please specify path to libjvm.so")
+
+        
+        pkg=JPackage('lsdis')
+        wsdlUrl = self.webserviceId
+    
+        webserviceId = ''#self.methodName
+        resUrl = self.resourceName
+    
+        urls = []
+        methods = []
+        params = []
+        paramTypes = []
+        
+        WSDLParserDriver =pkg.WSDLParserDriver
+        wPD=WSDLParserDriver()
+        wPD.parse(wsdlUrl)
+        methods = wPD.getCompleteMethodList()
+        urls = wPD.getUrl()
+                
+        f=open(self.Ofile,'w')
+        f.write(wsdlUrl)
+        f.write('\n'+ resUrl)
+        f.write('\n'+webserviceId)
+        
+
+        i=0
+        for method in methods:
+            x = str(method.getName().getLocalPart())
+            y = str(url.get(i))
+            webserviceId = x
+            if y == resUrl :
+                wPD.getParameters(x)
+                f.write('method matched')
+                paramTypes = wPD.getParamTypeList()
+                params = wPD.getParamList()
+                break
+            i=i+1    
+        
+
+        
+        
+        ##generate client's xml
+        galaxyhome=os.environ.get('GALAXY_HOME')
+        
+        clientCountFile=open(galaxyhome+'/tools/WebServiceTool/clients/ClientCount.xml','r')
+	clientCountFile.readline()
+        clientCountStr = clientCountFile.readline()
+        clientCount=string.atoi(clientCountStr)
+        clientCount=clientCount+1
+        clientCountFile.close()
+        
+        clientCountFile=open(galaxyhome+'/tools/WebServiceTool/clients/ClientCount.xml','w')
+	clientCountFile.write('<count> \n')
+	clientCountFile.write(str(clientCount)+'\n')
+	clientCountFile.write('</count> \n')
+	
+        
+        
+        
+        clientName = 'WebServiceclient_'+ str(clientCount)
+        
+        clientXml=open(galaxyhome+'/tools/WebServiceTool/clients/'+clientName+'.xml','w')
+        clientXml.seek(0,0)
+        
+        clientXml.write('<tool id="' + clientName+'" name="' + webserviceId +'">\n')
+        clientXml.write('  <description> Client for method: '+webserviceId+' , Web service: '+self.webservice+' </description>\n')
+
+  
+        clientXml.write('  <command interpreter="python">\n  client_1.py \n'+'  $output \n  $servicetype\n ' +resUrl+'\n')
+        ##write such that the parameters passed to client1.py(change name to clientName.py) are dependent on a for loop
+        
+        j=0
+        for param in params:
+            clientXml.write('  '+self.formatString(param)+'\n')
+            clientXml.write('  $param' + str(j)+'\n')            
+            j=j+1
+        clientXml.write('</command>\n')
+        
+        ##write inputs depending on required or not. if not required den dont display 
+        ##if required- den check default value, and if options exist.Depending on that
+        ##decide the type of parameter and options
+        clientXml.write('  <inputs>\n') 
+        cleintXml.write('    <param name="servicetype" type="hidden" value="REST"/>')
+        
+        j=0
+        for param in params:
+            clientXml.write('<param format="text" size = "150" name = "param'+str(j)+'"  ')
+            clientXml.write('type="text" label="'+param+'" help="see tip below" />\n')
+            j=j+1
+            
+                    
+                    
+        clientXml.write('</inputs>\n  <outputs>\n    <data format="tabular" name="output" />\n  </outputs>\n')
+        
+        clientXml.write('  <help>\n')
+        
+        clientXml.write('** Replace white with ** in all parameter values **\n')
+        
+        j=0
+        for param in params:
+            clientXml.write('\n.. class:: infomark\n\n**TIP:** '+ param +' type is ' + paramTypes[j] +'\n')       
+        
+        clientXml.write('  </help>\n</tool>')
+        editor = editToolConfig()
+        editor.addTool(clientName)
+        
+        ##later add help feature
+
+
+# Addedfor testing purpose
+        
+if __name__ == "__main__":
+    
+    test = ClientGenerator1('http://www.cs.uga.edu/~guttula/wublast.wsdl','run',None,'SOAP')
+    present = test.isToolPresent()
+    required = test.isRequired('_parameters|_sequence')
+    print 'required : ',required
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/generateClient1_mc.py~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,599 @@
+#generates client for a web service to be used as standalone
+import warnings
+
+with warnings.catch_warnings():
+    warnings.simplefilter("ignore")
+    import platform
+
+    from jpype._jpackage import JPackage
+    from jpype import *
+    import os.path
+    import sys
+    import string
+    from edit_tool_conf1 import *
+    from msHandler import *
+    from creatorEngineComplex import *
+    
+class ClientGenerator1(object):
+    
+    def __init__(self,webservice,operation,inputs):
+        self.webservice = webservice
+        self.operation = operation
+        #self.resourceName=resourceName
+        self.inputs = inputs
+        cc = ClientCreator()
+        self.msinstance = cc.opname2inputClassOb(self.operation,self.webservice)
+
+    def formatString(self,string):
+        l = string.split(' ')
+        return '**'.join(l)
+    
+    def isRequired(self,param):    
+        required = False
+        if param.find('|')>-1 :
+            plist = param.split('|')
+            root = test.getParameter(self.msinstance(),plist[0])  # Added
+            if (param.find('|$|')>-1):
+                print 'plist-------->',plist
+                k = 0
+                iparam = ''
+                for p in plist:
+                    if(k<len(plist)-3):
+                        if(k==0):
+                            iparam = iparam+(p)
+                        else:
+                            iparam = iparam+'|'+p
+                        k=k+1
+                paramelement = test.getParameter(self.msinstance(),iparam)
+                #if not getattr(root,'nillable') or (getattr(root,'nillable') and not getattr(paramelement,'nillable')):
+                #    required = True
+            else:
+                paramelement = test.getParameter(self.msinstance(),param)
+            if not getattr(root,'nillable') or (getattr(root,'nillable') and not getattr(paramelement,'nillable')):
+                required = True
+        else:
+            paramelement = test.getParameter(self.msinstance(),param)
+            if getattr(paramelement,'nillable')==False:
+                required = True
+        return required 
+            
+    def wsdlClient(self):
+        ##parse wsdl 
+        '''javahome = os.environ.get('JAVA_HOME')
+        galaxyhome=os.environ.get('GALAXY_HOME')
+        classpath= galaxyhome + '/tools/SOAPclient/SimpleWSDLParser/build/classes'
+        jarpath = galaxyhome + '/tools/SOAPclient/SimpleWSDLParser/dist/lib/'
+        machine = platform.machine()
+    
+        if machine == 'x86_64' :
+            print 'a'
+            startJVM("%s/jre/lib/amd64/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+        elif machine == 'i386' :
+            print 'b'
+            startJVM("/System/Library/Frameworks/JavaVM.framework/JavaVM","-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+        elif machine == 'sun4u' :
+            startJVM("%s/jre/lib/sparc/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+        else :
+            print 'c'
+            System.exit("Could not identify machine, please specify path to libjvm.so")
+
+        
+        pkg=JPackage('edu.uga.cs.lsdis.wsdl')
+        urlToPass=java.net.URL(self.url)
+        wadlUrl = self.url
+    
+        webserviceId = self.methodName
+        resUrl = self.resourceName
+    
+        urls = []
+        methods = []
+        params = []
+
+        WADLParserDriver=pkg.WADLParserDriver
+        wPD=WADLParserDriver()
+        wPD.parse(urlToPass)
+        urls = wPD.getUrl()
+        methods = wPD.getCompleteMethodList()
+       ''' 
+
+        
+        
+        ##generate client's xml
+        galaxyhome=os.environ.get('GALAXY_HOME')
+        
+        clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clients/ClientCount.xml','r')
+	clientCountFile.readline()
+        clientCountStr = clientCountFile.read(1)
+        clientCount=string.atoi(clientCountStr)
+        clientCount=clientCount+1
+        clientCountFile.close()
+        
+        clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clients/ClientCount.xml','w')
+	clientCountFile.write('<count> \n')
+	clientCountFile.write(str(clientCount)+'\n')
+	clientCountFile.write('</count> \n')
+	clientCountFile.close()
+        
+        
+        
+        
+        clientName = 'client_'+ str(clientCount)
+        
+        clientXml=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clients/'+clientName+'.xml','w')
+        clientXml.seek(0,0)
+        
+        clientXml.write('<tool id="' + clientName+'" name="' + self.operation +'">\n')
+        clientXml.write('  <description> Client for operation : '+self.operation+' , Web service: '+self.webservice+' </description>\n')
+
+        clientXml.write('  <command interpreter="python">\n #if $cond_source.optional_param_source=="no" #client_1.py'+' $output ' +self.webservice+'  '+self.operation)
+        
+        #clientXml.write('  <command interpreter="python">\n  client_1.py \n' +'  $output \n  ' +self.webservice+' \n  '+self.operation+'\n')
+        ##write such that the parameters passed to client1.py(change name to clientName.py) are dependent on a for loop
+        test = MessageHandler()
+        j=0
+        for param in self.inputs:
+            required = False
+            if param.find('|')>-1 :
+                plist = param.split('|')
+                root = test.getParameter(self.msinstance(),plist[0])  # Added
+                if (param.find('|$|')>-1):
+                    print 'plist-------->',plist
+                    k = 0
+                    iparam = ''
+                    for p in plist:
+                        if(k<len(plist)-3):
+                            if(k==0):
+                                iparam = iparam+(p)
+                            else:
+                                iparam = iparam+'|'+p
+                            k=k+1
+                    paramelement = test.getParameter(self.msinstance(),iparam)
+                    #if (getattr(root,'nillable') and not getattr(paramelement,'nillable')):
+                    #    required = True
+                else:
+                    paramelement = test.getParameter(self.msinstance(),param)
+                if getattr(root,'nillable'):
+                    required = False
+                else:
+                    #if (not getattr(root,'nillable')) or (getattr(root,'nillable') and not getattr(paramelement,'nillable')):
+                    if (not getattr(paramelement,'nillable')): 
+                        required = True
+                    else:
+                        required = False
+                    
+            else:
+                paramelement = test.getParameter(self.msinstance(),param)
+                if getattr(paramelement,'nillable')==False:
+                    required = True
+            if required:
+                clientXml.write(' "'+param+'"')
+                clientXml.write(' $param' + str(j))            
+                j=j+1
+        clientXml.write(' #else #client_1.py'+' $output ' +self.webservice+'    '+self.operation+'\n')
+        j=0
+        for param in self.inputs:
+            required = False
+            if param.find('|')>-1 :
+                plist = param.split('|')
+                root = test.getParameter(self.msinstance(),plist[0])
+                if (param.find('|$|')>-1):
+                    plist = param.split('|')
+                    print 'plist-------->',plist
+                    k = 0
+                    iparam = ''
+                    for p in plist:
+                        if(k<len(plist)-3):
+                            if(k==0):
+                                iparam = iparam+(p)
+                            else:
+                                iparam = iparam+'|'+p
+                            k=k+1
+                    paramelement = test.getParameter(self.msinstance(),iparam)
+                else:
+                    paramelement = test.getParameter(self.msinstance(),param)
+                if getattr(root,'nillable'):
+                    required = False
+                else:    
+                    #if (getattr(root,'nillable') and not getattr(paramelement,'nillable')):
+                    if (not getattr(paramelement,'nillable')): 
+                        required = True
+                    else:
+                        required = False
+            else:
+                paramelement = test.getParameter(self.msinstance(),param)
+                if getattr(paramelement,'nillable')==False:
+                    required = True
+            if required:
+                clientXml.write(' "'+param+'"')
+                clientXml.write(' $param' + str(j))            
+                j=j+1
+                
+        for param in self.inputs:
+            required = False
+            if param.find('|')>-1 :
+                plist = param.split('|')
+                root = test.getParameter(self.msinstance(),plist[0])
+                if (param.find('|$|')>-1):
+                    plist = param.split('|')
+                    print 'plist-------->',plist
+                    k = 0
+                    iparam = ''
+                    for p in plist:
+                        if(k<len(plist)-3):
+                            if(k==0):
+                                iparam = iparam+(p)
+                            else:
+                                iparam = iparam+'|'+p
+                            k=k+1
+                    paramelement = test.getParameter(self.msinstance(),iparam)
+                else:
+                    paramelement = test.getParameter(self.msinstance(),param)
+                if getattr(root,'nillable'):
+                    required = False
+                else:
+                    #if (getattr(root,'nillable') and not getattr(paramelement,'nillable')):
+                    if (not getattr(paramelement,'nillable')): 
+                        required = True
+                    else:
+                        required = False
+            else:
+                paramelement = test.getParameter(self.msinstance(),param)
+                if(not getattr(paramelement,'nillable')):
+                    required = True
+            if not required:#getattr(paramelement,'nillable')==True:
+                clientXml.write(' "'+param+'"')
+                clientXml.write(' $cond_source.param' + str(j))            
+                j=j+1
+#params for array type 
+#        for param in self.inputs:
+ #           paramelement = test.getParameter(self.msinstance(),param)
+  #          if getattr(paramelement,'nillable')==True:
+   #             if string.find(param,"|0|")>-1:
+    #                ele = string(param,"|0|")
+     #               for param in self.inputs:
+                        
+                
+      #          clientXml.write(' "'+param+'"')
+       #         clientXml.write(' $cond_source.param' + str(j))            
+        #        j=j+1
+        
+        clientXml.write(' #end if \n</command>\n')
+        
+        
+#        for param in self.inputs:
+ #           paramelement = test.getParameter(self.msinstance(),param)
+  #          if getattr(paramelement,'nillable')==False or getattr(paramelement,'minOccurs')==1:
+   #             clientXml.write('  "'+param+'"\n')            
+    #            clientXml.write('  $param'+str(j)+'\n')            
+     #           j=j+1
+                
+     
+        #clientXml.write('</command>\n')
+        
+        ##write inputs depending on required or not. if not required den dont display 
+        ##if required- den check default value, and if options exist.Depending on that
+        ##decide the type of parameter and options
+        clientXml.write('  <inputs>\n') 
+
+        j=0
+        for param in self.inputs:
+            required = False
+            if param.find('|')>-1 :
+                plist = param.split('|')
+                root = test.getParameter(self.msinstance(),plist[0])
+                if (param.find('|$|')>-1):
+                    plist = param.split('|')
+                    print 'plist-------->',plist
+                    k = 0
+                    iparam = ''
+                    for p in plist:
+                        if(k<len(plist)-3):
+                            if(k==0):
+                                iparam = iparam+(p)
+                            else:
+                                iparam = iparam+'|'+p
+                            k=k+1
+                    paramelement = test.getParameter(self.msinstance(),iparam)
+                else:
+                    paramelement = test.getParameter(self.msinstance(),param)
+                if getattr(root,'nillable'):
+                    required = False
+                else:
+                #if (getattr(root,'nillable') and not getattr(paramelement,'nillable')):
+                    if (not getattr(paramelement,'nillable')): 
+                        required = True
+                    else:
+                        required = False
+            else:
+                paramelement = test.getParameter(self.msinstance(),param)
+                if getattr(paramelement,'nillable')==False:
+                    required = True
+
+            #if (param.find('|$|')>-1):
+            #    plist = param.split('|')
+            #    print 'plist-------->',plist
+            #    k = 0
+            #    param = ''
+            #    for p in plist:
+            #        if(k<len(plist)-3):
+            #            if(k==0):
+            #                param = param+(p)
+            #            else:
+            #                param = param+'|'+p
+            #            k=k+1
+            #paramelement = test.getParameter(self.msinstance(),param)
+            if required:#getattr(paramelement,'nillable')==False:
+                pName = getattr(paramelement,'pname')
+                clientXml.write('<param format="text" size = "150" name = "param'+str(j)+'"  ')
+                clientXml.write('type="text" label="Enter '+pName+'" help="see tip below" />\n')
+                j=j+1
+                
+                    
+        clientXml.write('\n <conditional name="cond_source"> \n <param name="optional_param_source" type="select" label="Show Additional Parameters">\n <option value="no" selected="true">no</option> \n <option value="yes">yes</option> \n </param>\n')
+        clientXml.write('<when value="no"> \n </when>')
+        clientXml.write('<when value="yes"> \n')
+        for param in self.inputs:
+            required = False
+            if param.find('|')>-1 :
+                plist = param.split('|')
+                root = test.getParameter(self.msinstance(),plist[0])
+                if (param.find('|$|')>-1):
+                    plist = param.split('|')
+                    print 'plist-------->',plist
+                    k = 0
+                    iparam = ''
+                    for p in plist:
+                        if(k<len(plist)-3):
+                            if(k==0):
+                                iparam = iparam+(p)
+                            else:
+                                iparam = iparam+'|'+p
+                            k=k+1
+                    paramelement = test.getParameter(self.msinstance(),iparam)
+                else:
+                    paramelement = test.getParameter(self.msinstance(),param)
+                if getattr(root,'nillable'):
+                    required = False
+                else:
+                #if (getattr(root,'nillable') and not getattr(paramelement,'nillable')):
+                    if (not getattr(paramelement,'nillable')): 
+                        required = True
+                    else:
+                        required = False
+            else:
+                paramelement = test.getParameter(self.msinstance(),param)
+                if getattr(paramelement,'nillable')==False:
+                    required = True
+
+        #    if (param.find('|$|')>-1):
+        #        plist = param.split('|')
+        #        print 'plist-------->',plist
+        #        k = 0
+        #        param = ''
+        #        for p in plist:
+        #            if(k<len(plist)-3):
+        #                if(k==0):
+        #                    param = param+(p)
+        #               else:
+        #                    param = param+'|'+p
+        #                k=k+1
+        #    paramelement = test.getParameter(self.msinstance(),param)
+            if not required:#getattr(paramelement,'nillable'):
+                pName = getattr(paramelement,'pname')
+                clientXml.write('<param format="text" size = "150" name = "param'+str(j)+'"  ')
+                clientXml.write('type="text" label="Enter '+pName+'" help="see tip below" />\n')
+                j=j+1
+                
+        
+        
+        clientXml.write('</when>\n</conditional>')
+       
+#        j=0
+ #       for param in self.inputs:                       
+  #          paramelement = test.getParameter(self.msinstance(),param)
+   #         if not getattr(paramelement,'nillable'):
+    #            pName = getattr(paramelement,'pname')#param.getName()
+     #           clientXml.write('<param format="text" size = "150" name = "param'+str(j)+'"  ')
+      #          clientXml.write('type="text" label="'+pName+'" help="see tip below" />\n')
+       #         j=j+1
+       
+        clientXml.write('</inputs>\n  <outputs>\n    <data format="tabular" name="output" />\n  </outputs>\n')
+        clientXml.write('  <help>\n')
+        paramtype = None
+        for param in self.inputs:
+            required = False
+            if param.find('|')>-1 :
+                plist = param.split('|')
+                root = test.getParameter(self.msinstance(),plist[0])
+                if (param.find('|$|')>-1):
+                    plist = param.split('|')
+                    print 'plist-------->',plist
+                    k = 0
+                    iparam = ''
+                    for p in plist:
+                        if(k<len(plist)-3):
+                            if(k==0):
+                                iparam = iparam+(p)
+                            else:
+                                iparam = iparam+'|'+p
+                            k=k+1
+                    paramelement = test.getParameter(self.msinstance(),iparam)
+                else:
+                    paramelement = test.getParameter(self.msinstance(),param)
+                if getattr(root,'nillable'):
+                    required = False
+                else:
+                #if (getattr(root,'nillable') and not getattr(paramelement,'nillable')):
+                    if (not getattr(paramelement,'nillable')): 
+                        required = True
+                    else:
+                        required = False
+            else:
+                paramelement = test.getParameter(self.msinstance(),param)
+                if getattr(paramelement,'nillable')==False:
+                    required = True
+
+        #    if (param.find('|$|')>-1):
+        #        plist = param.split('|')
+        #        print 'plist-------->',plist
+        #        k = 0
+        #        param = ''
+        #        for p in plist:
+        #            if(k<len(plist)-3):
+        #                if(k==0):
+        #                    param = param+(p)
+        #                else:
+        #                    param = param+'|'+p
+        #                k=k+1
+        #    paramelement = test.getParameter(self.msinstance(),param)
+            if required:#getattr(paramelement,'nillable')==False:
+                if isinstance(paramelement,ZSI.TC.String):
+                    paramtype = 'String'
+                elif isinstance(paramelement,ZSI.TCnumbers.FPfloat):
+                    paramtype = 'Floating point'
+                elif isinstance(paramelement,ZSI.TC.Boolean):
+                    paramtype = 'Boolean'
+                elif isinstance(paramelement,ZSI.TCnumbers.Iint):
+                    paramtype = 'Integer'
+                clientXml.write('\n.. class:: infomark\n\n**TIP:** About '+ getattr(paramelement,'pname') +': type is ' + paramtype + '\n')       
+                
+        clientXml.write('  </help>\n</tool>')
+                
+#        clientXml.write('  <help>\n')
+        
+ #       j=0
+  #      for param in params:
+   #         clientXml.write('\n.. class:: infomark\n\n**TIP:** '+ param +' type is ' + paramTypes[j] +'\n')       
+        
+    #    clientXml.write('  </help>\n</tool>')
+       # clientXml.write('</tool>')
+        clientXml.close()
+        editor = editToolConfig1()
+        editor.addTool(clientName)
+        
+        ##later add help feature
+
+        
+    def sawsdlClient(self):
+        ##parse wadl 
+        javahome = os.environ.get('JAVA_HOME')
+        galaxyhome=os.environ.get('GALAXY_HOME')
+        classpath= galaxyhome + '/tools/WebServiceTool/WodenWSDLParser/bin'
+        jarpath = galaxyhome + '/tools/WebServiceTool/WodenWSDLParser/lib/'
+        machine = platform.machine()
+    
+        if machine == 'x86_64' :
+            print 'a'
+            startJVM("%s/jre/lib/amd64/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+        elif machine == 'i686' :
+            print 'b'
+            startJVM("%s/jre/lib/i386/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+        elif machine == 'sun4u' :
+            startJVM("%s/jre/lib/sparc/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+        else :
+            print 'c'
+            System.exit("Could not identify machine, please specify path to libjvm.so")
+
+        
+        pkg=JPackage('lsdis')
+        wsdlUrl = self.url
+    
+        webserviceId = self.methodName
+        resUrl = self.resourceName
+    
+        urls = []
+        methods = []
+        params = []
+        paramTypes = []
+        
+        WSDLParserDriver =pkg.WSDLParserDriver
+        wPD=WSDLParserDriver()
+        wPD.parse(wsdlUrl)
+        methods = wPD.getCompleteMethodList()
+        urls = wPD.getUrl()
+                
+        f=open(self.Ofile,'w')
+        f.write(wsdlUrl)
+        f.write('\n'+ resUrl)
+        f.write('\n'+webserviceId)
+        
+
+        i=0
+        for method in methods:
+            x = str(method.getName().getLocalPart())
+            if x == webserviceId :
+                wPD.getParameters(x)
+                f.write('method matched')
+                paramTypes = wPD.getParamTypeList()
+                params = wPD.getParamList()
+                break
+            i=i+1    
+        
+
+        
+        
+        ##generate client's xml
+        galaxyhome=os.environ.get('GALAXY_HOME')
+        
+        clientCountFile=open(galaxyhome+'/tools/WebServiceTool/clients/ClientCount.xml','r')
+	clientCountFile.readline()
+        clientCountStr = clientCountFile.read(1)
+        clientCount=string.atoi(clientCountStr)
+        clientCount=clientCount+1
+        clientCountFile.close()
+        
+        clientCountFile=open(galaxyhome+'/tools/WebServiceTool/clients/ClientCount.xml','w')
+	clientCountFile.write('<count> \n')
+	clientCountFile.write(str(clientCount))
+	clientCountFile.write('</count> \n')
+	
+        
+        
+        
+        clientName = 'client_'+ str(clientCount)
+        
+        clientXml=open(galaxyhome+'/tools/WebServiceTool/clients/'+clientName+'.xml','w')
+        clientXml.seek(0,0)
+        
+        clientXml.write('<tool id="' + clientName+'" name="' + self.methodName +'">\n')
+        clientXml.write('  <description> Client for method: '+self.methodName+' , Web service: '+self.url+' </description>\n')
+
+  
+        clientXml.write('  <command interpreter="python">\n  client_1.py \n'+'  $output \n  ' +resUrl+'\n')
+        ##write such that the parameters passed to client1.py(change name to clientName.py) are dependent on a for loop
+        
+        j=0
+        for param in params:
+            clientXml.write('  '+self.formatString(param)+'\n')
+            clientXml.write('  $param' + str(j)+'\n')            
+            j=j+1
+        clientXml.write('</command>\n')
+        
+        ##write inputs depending on required or not. if not required den dont display 
+        ##if required- den check default value, and if options exist.Depending on that
+        ##decide the type of parameter and options
+        clientXml.write('  <inputs>\n') 
+        
+        j=0
+        for param in params:
+            clientXml.write('<param format="text" size = "150" name = "param'+str(j)+'"  ')
+            clientXml.write('type="text" label="'+param+'" help="see tip below" />\n')
+            j=j+1
+            
+                    
+                    
+        clientXml.write('</inputs>\n  <outputs>\n    <data format="tabular" name="output" />\n  </outputs>\n')
+        
+        clientXml.write('  <help>\n')
+        
+        clientXml.write('** Replace white with ** in all parameter values **\n')
+        
+        j=0
+        for param in params:
+            clientXml.write('\n.. class:: infomark\n\n**TIP:** '+ param +' type is ' + paramTypes[j] +'\n')       
+        
+        clientXml.write('  </help>\n</tool>')
+        editor = editToolConfig1()
+        editor.addTool(clientName)
+        
+        ##later add help feature
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/getMethods_m.py	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,220 @@
+'''
+@author  Chaitanya Guttula
+@see     LICENSE (MIT style license file).
+'''
+
+
+# Author = Chaitanya Guttula
+
+import warnings
+
+with warnings.catch_warnings():
+    warnings.simplefilter("ignore")
+
+    import platform
+    import commands
+    import ZSI
+    import os
+    from clientGenerator.creatorEngineComplex import *
+    from clientGenerator.wsdl2path import *
+    from jpype._jpackage import JPackage
+    from jpype import *
+    import sys
+
+class Document(object):  
+
+    '''    
+        Method to get all the operations from the WSDL file and write it to Galaxy output datasets
+    '''
+     	    
+    def getWSDLMethods(self, url , outputFileUrl):
+        wLoad=wsdlLoader()
+        a= str(url).split('/')
+        wsdlnamelist = a[len(a)-1].split(".")
+        if len(wsdlnamelist)==1:
+    	    wsdlnamelist=a[len(a)-1].split('?')
+    	    print wsdlnamelist
+
+        foldername=wsdlnamelist[0]
+        
+        galaxyhome=os.environ.get('GALAXY_HOME')
+        path =galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator/'+foldername
+        os.chdir(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator/')
+        
+    #creates the client stubs
+        clientfile=wLoad.wsdlUrl2path(str(url),foldername)
+        
+    #Gets the list of operations
+        test=ClientCreator()
+        operations=test.path2Ops(str(clientfile)).keys()
+        
+    #COnvert ~ to __tilda__
+        if(url.find('~')>-1):
+            ulist = url.split('~')
+            url = '__tilda__'.join(ulist)
+
+
+    #Print all the operations and web service info to the Galaxy output dataset
+        outputfile=open(outputFileUrl,'w')
+        count=0
+        outputfile.seek(0,0)
+        for k in operations:
+            count=count+1
+            if(count==1):
+                outputfile.write(k+'\t'+clientfile+'\t'+url+'\n')
+    	    else:
+                outputfile.write(k+'\n')
+
+    #invoked to get REST methods described in a WSDL 2.0 document. Steps are similar to getWADLMethods except the library to parse WSDL 2.0 is used.
+    def getWSDLRESTMethods(self, wsdlUrl, outputFileUrl ):
+        javahome = os.environ.get('JAVA_HOME')
+        galaxyhome=os.environ.get('GALAXY_HOME')
+        classpath= galaxyhome + '/tools/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/bin'
+        jarpath = galaxyhome + '/tools/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/lib/'
+        machine = platform.machine()
+        
+    #start JVM depending on the machine. The location of libjvm.so is assumed to be standard.
+    #you can replace lines 81 to 88, with startJVM("LOCATION OF YOUR LIBJVM.SO","-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+        if machine == 'x86_64' :
+            startJVM("%s/jre/lib/amd64/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+        elif machine == 'i686' :
+            startJVM("%s/jre/lib/i386/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+        elif machine == 'sun4u' :
+            startJVM("%s/jre/lib/sparc/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+        else :
+            System.exit("Could not identify machine, please specify path to libjvm.so")
+    
+        pkg=JPackage('lsdis')
+       
+        outputfile=open(outputFileUrl,'w')
+        outputfile.seek(0,0)
+        length=(len(sys.argv))
+    
+        urls = []
+        methods = []
+
+	if(wsdlUrl.find('__tilda__')>-1):
+	    ulist = wsdlUrl.split('__tilda__')
+	    urlToPass = '~'.join(ulist)
+
+        WSDLParserDriver=pkg.WSDLParserDriver
+        wPD=WSDLParserDriver()
+        wPD.parse(urlToPass)
+        urls = wPD.getUrl()
+        methods = wPD.getCompleteMethodList()
+        	            
+        i=0
+        for url in urls:
+           outputfile.write(wsdlUrl+"\t")
+           outputfile.write(str(methods[i].getName().getLocalPart())+"\t")
+           outputfile.write(str(url)+"\n")
+           i=i+1
+
+                
+
+    '''
+        Invoked to get methods described in a WADL document 
+    '''
+    def getWADLMethods(self, wadlUrl, outputFileUrl ):
+
+    #get environment variables JAVA_HOME and GALAXY_HOME
+        javahome = os.environ.get('JAVA_HOME')
+        galaxyhome=os.environ.get('GALAXY_HOME')
+
+    #classpath, jarpath are variables pointing to the java libraries required to parse a WADL document
+        classpath= galaxyhome + '/tools/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/bin'
+        jarpath = galaxyhome + '/tools/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/lib/'
+    
+    #start JVM depending on the machine. The location of libjvm.so is assumed to be standard.
+    #you can replace lines 28 to 35, with startJVM("LOCATION OF YOUR LIBJVM.SO","-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+        machine = platform.machine()
+        if machine == 'x86_64' :
+            startJVM("%s/jre/lib/amd64/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+        elif machine == 'i686' :
+            startJVM("%s/jre/lib/i386/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+        elif machine == 'sun4u' :
+            startJVM("%s/jre/lib/sparc/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+        else :
+            System.exit("Could not identify machine, please specify path to libjvm.so")
+        
+    #tell JPYPE that the package name is lsdis 
+        pkg=JPackage('lsdis')
+    
+        urlToPass=java.net.URL(wadlUrl)	
+
+    #convert __tilda__ to ~
+        if(wadlUrl.find('__tilda__')>-1):
+	        ulist = wadlUrl.split('__tilda__')
+	        urlToPass = java.net.URL('~'.join(ulist))
+        
+   
+        outputfile=open(outputFileUrl,'w')
+        outputfile.seek(0,0)
+         
+        urls = []
+        methods = []
+
+    #using JPYPE call appropriate Java classes and methods to parse the WADL document and get a list of methods defined in it
+        WADLParserDriver=pkg.WADLParserDriver
+        wPD=WADLParserDriver()
+        wPD.parse(urlToPass)
+        urls = wPD.getUrl()
+        methods = wPD.getCompleteMethodList()
+    
+    #write the url of the WADL and the list of methods to the output in a tabular format, for the Step 2 tool to read from.
+        i=0
+        for url in urls:
+            outputfile.write(str(url)+"\t")
+            outputfile.write(str(methods[i].getId())+"\t")
+            outputfile.write(wadlUrl+"\n")
+            i=i+1
+     	    
+
+   
+    # invoked to get methods described in a SAWADL document    
+    def getSAWADLMethods(self, sawadlUrl, outputFileUrl ):
+        javahome = os.environ.get('JAVA_HOME')
+        galaxyhome=os.environ.get('GALAXY_HOME')
+        classpath= galaxyhome + '/tools/restclientSAWADL/lib/SAWADLParser/bin'
+        machine = platform.machine()
+        
+    #start JVM depending on the machine. The location of libjvm.so is assumed to be standard.
+    #you can replace lines 126 to 133, with startJVM("LOCATION OF YOUR LIBJVM.SO","-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)        
+        if machine == 'x86_64' :
+            startJVM("%s/jre/lib/amd64/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath)
+        elif machine == 'i686' :
+            startJVM("%s/jre/lib/i386/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath)
+        elif machine == 'sun4u' :
+            startJVM("%s/jre/lib/sparc/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath)            
+        else :
+            System.exit("Could not identify machine, please specify path to libjvm.so")
+    
+        pkg=JPackage('edu.uga.cs.lsdis.meteors.wadls')
+        
+
+   # Open the output file for galaxy
+        outputfile=open(outputFileUrl,'w')
+        outputfile.seek(0,0)
+   
+    	if(sawadlUrl.find('__tilda__')>-1):
+    	    ulist = sawadlUrl.split('__tilda__')
+    	    urlToPass = '~'.join(ulist)
+	         
+        urls = []
+        methods = []
+
+    #invoke the parser and get the method list
+        SAWADLParserDriver=pkg.SAWADLParserDriver
+        sawPD=SAWADLParserDriver()
+        sawPD.parse(urlToPass)
+        urls = sawPD.getUrl()
+        methods = sawPD.getCompleteMethodList()
+        
+    #Print the methods and service information to the 
+        i=0
+        for url in urls:
+           outputfile.write(sawadlUrl+"\t")
+           outputfile.write(str(methods[i].getName())+"\t")    
+           outputfile.write(str(url)+"\n")
+           i=i+1
+
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/getMethods_m.pyc has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/getMethods_m.py~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,220 @@
+'''
+@author  Chaitanya Guttula
+@see     LICENSE (MIT style license file).
+'''
+
+
+# Author = Chaitanya Guttula
+
+import warnings
+
+with warnings.catch_warnings():
+    warnings.simplefilter("ignore")
+
+    import platform
+    import commands
+    import ZSI
+    import os
+    from clientGenerator.creatorEngineComplex import *
+    from clientGenerator.wsdl2path import *
+    from jpype._jpackage import JPackage
+    from jpype import *
+    import sys
+
+class Document(object):  
+
+    '''    
+        Method to get all the operations from the WSDL file and write it to Galaxy output datasets
+    '''
+     	    
+    def getWSDLMethods(self, url , outputFileUrl):
+        wLoad=wsdlLoader()
+        a= str(url).split('/')
+        wsdlnamelist = a[len(a)-1].split(".")
+        if len(wsdlnamelist)==1:
+    	    wsdlnamelist=a[len(a)-1].split('?')
+    	    print wsdlnamelist
+
+        foldername=wsdlnamelist[0]
+        
+        galaxyhome=os.environ.get('GALAXY_HOME')
+        path =galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator/'+foldername
+        os.chdir(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator/')
+        
+    #creates the client stubs
+        clientfile=wLoad.wsdlUrl2path(str(url),foldername)
+        
+    #Gets the list of operations
+        test=ClientCreator()
+        operations=test.path2Ops(str(clientfile)).keys()
+        
+    #COnvert ~ to __tilda__
+        if(url.find('~')>-1):
+            ulist = url.split('~')
+            url = '__tilda__'.join(ulist)
+
+
+    #Print all the operations and web service info to the Galaxy output dataset
+        outputfile=open(outputFileUrl,'w')
+        count=0
+        outputfile.seek(0,0)
+        for k in operations:
+            count=count+1
+            if(count==1):
+                outputfile.write(k+'\t'+clientfile+'\t'+url+'\n')
+    	    else:
+                outputfile.write(k+'\n')
+
+    #invoked to get REST methods described in a WSDL 2.0 document. Steps are similar to getWADLMethods except the library to parse WSDL 2.0 is used.
+    def getWSDLRESTMethods(self, wsdlUrl, outputFileUrl ):
+        javahome = os.environ.get('JAVA_HOME')
+        galaxyhome=os.environ.get('GALAXY_HOME')
+        classpath= galaxyhome + '/tools/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/bin'
+        jarpath = galaxyhome + '/tools/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/lib/'
+        machine = platform.machine()
+        
+    #start JVM depending on the machine. The location of libjvm.so is assumed to be standard.
+    #you can replace lines 81 to 88, with startJVM("LOCATION OF YOUR LIBJVM.SO","-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+        if machine == 'x86_64' :
+            startJVM("%s/jre/lib/amd64/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+        elif machine == 'i686' :
+            startJVM("%s/jre/lib/i386/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+        elif machine == 'sun4u' :
+            startJVM("%s/jre/lib/sparc/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+        else :
+            System.exit("Could not identify machine, please specify path to libjvm.so")
+    
+        pkg=JPackage('lsdis')
+       
+        outputfile=open(outputFileUrl,'w')
+        outputfile.seek(0,0)
+        length=(len(sys.argv))
+    
+        urls = []
+        methods = []
+
+	if(wsdlUrl.find('__tilda__')>-1):
+	    ulist = wsdlUrl.split('__tilda__')
+	    urlToPass = '~'.join(ulist)
+
+        WSDLParserDriver=pkg.WSDLParserDriver
+        wPD=WSDLParserDriver()
+        wPD.parse(urlToPass)
+        urls = wPD.getUrl()
+        methods = wPD.getCompleteMethodList()
+        	            
+        i=0
+        for url in urls:
+           outputfile.write(wsdlUrl+"\t")
+           outputfile.write(str(methods[i].getName().getLocalPart())+"\t")
+           outputfile.write(str(url)+"\n")
+           i=i+1
+
+                
+
+    '''
+        Invoked to get methods described in a WADL document 
+    '''
+    def getWADLMethods(self, wadlUrl, outputFileUrl ):
+
+    #get environment variables JAVA_HOME and GALAXY_HOME
+        javahome = os.environ.get('JAVA_HOME')
+        galaxyhome=os.environ.get('GALAXY_HOME')
+
+    #classpath, jarpath are variables pointing to the java libraries required to parse a WADL document
+        classpath= galaxyhome + '/tools/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/bin'
+        jarpath = galaxyhome + '/tools/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/lib/'
+    
+    #start JVM depending on the machine. The location of libjvm.so is assumed to be standard.
+    #you can replace lines 28 to 35, with startJVM("LOCATION OF YOUR LIBJVM.SO","-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+        machine = platform.machine()
+        if machine == 'x86_64' :
+            startJVM("%s/jre/lib/amd64/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+        elif machine == 'i686' :
+            startJVM("%s/jre/lib/i386/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+        elif machine == 'sun4u' :
+            startJVM("%s/jre/lib/sparc/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
+        else :
+            System.exit("Could not identify machine, please specify path to libjvm.so")
+        
+    #tell JPYPE that the package name is lsdis 
+        pkg=JPackage('lsdis')
+    
+        urlToPass=java.net.URL(wadlUrl)	
+
+    #convert __tilda__ to ~
+        if(wadlUrl.find('__tilda__')>-1):
+	        ulist = wadlUrl.split('__tilda__')
+	        urlToPass = java.net.URL('~'.join(ulist))
+        
+   
+        outputfile=open(outputFileUrl,'w')
+        outputfile.seek(0,0)
+         
+        urls = []
+        methods = []
+
+    #using JPYPE call appropriate Java classes and methods to parse the WADL document and get a list of methods defined in it
+        WADLParserDriver=pkg.WADLParserDriver
+        wPD=WADLParserDriver()
+        wPD.parse(urlToPass)
+        urls = wPD.getUrl()
+        methods = wPD.getCompleteMethodList()
+    
+    #write the url of the WADL and the list of methods to the output in a tabular format, for the Step 2 tool to read from.
+        i=0
+        for url in urls:
+            outputfile.write(str(url)+"\t")
+            outputfile.write(str(methods[i].getId())+"\t")
+            outputfile.write(wadlUrl+"\n")
+            i=i+1
+     	    
+
+   
+    # invoked to get methods described in a SAWADL document    
+    def getSAWADLMethods(self, sawadlUrl, outputFileUrl ):
+        javahome = os.environ.get('JAVA_HOME')
+        galaxyhome=os.environ.get('GALAXY_HOME')
+        classpath= galaxyhome + '/tools/restclientSAWADL/lib/SAWADLParser/bin'
+        machine = platform.machine()
+        
+    #start JVM depending on the machine. The location of libjvm.so is assumed to be standard.
+    #you can replace lines 126 to 133, with startJVM("LOCATION OF YOUR LIBJVM.SO","-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)        
+        if machine == 'x86_64' :
+            startJVM("%s/jre/lib/amd64/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath)
+        elif machine == 'i686' :
+            startJVM("%s/jre/lib/i386/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath)
+        elif machine == 'sun4u' :
+            startJVM("%s/jre/lib/sparc/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath)            
+        else :
+            System.exit("Could not identify machine, please specify path to libjvm.so")
+    
+        pkg=JPackage('edu.uga.cs.lsdis.meteors.wadls')
+        
+
+   # Open the output file for galaxy
+        outputfile=open(outputFileUrl,'w')
+        outputfile.seek(0,0)
+   
+    	if(sawadlUrl.find('__tilda__')>-1):
+    	    ulist = sawadlUrl.split('__tilda__')
+    	    urlToPass = '~'.join(ulist)
+	         
+        urls = []
+        methods = []
+
+    #invoke the parser and get the method list
+        SAWADLParserDriver=pkg.SAWADLParserDriver
+        sawPD=SAWADLParserDriver()
+        sawPD.parse(urlToPass)
+        urls = sawPD.getUrl()
+        methods = sawPD.getCompleteMethodList()
+        
+    #Print the methods and service information to the 
+        i=0
+        for url in urls:
+           outputfile.write(sawadlUrl+"\t")
+           outputfile.write(str(methods[i].getName())+"\t")    
+           outputfile.write(str(url)+"\n")
+           i=i+1
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/.classpath	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+	<classpathentry kind="lib" path="/home/ganjoo/workspace/RESTWorkflowDesignValidator/lib/SAWADLPArser.jar"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/.project	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>SAWADLParser</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/Files/3A4_PurchaseOrder_CoreElements.xsd	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,447 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- edited with XMLSpy v2006 sp2 U (http://www.altova.com) by michal (jakas) -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.sws-challenge.org/schemas/rnet/coreElements" xmlns:dict="http://www.sws-challenge.org/schemas/rnet/dictionary" targetNamespace="http://www.sws-challenge.org/schemas/rnet/coreElements" elementFormDefault="qualified" attributeFormDefault="unqualified"
+xmlns:Ontology1="http://www.owl-ontologies.com/sws_challenge.owl" 
+xmlns:xml="http://www.w3.org/XML/1998/namespace" 
+xmlns:sawsdl="http://www.w3.org/2002/ws/sawsdl/spec/sawsdl#">
+
+	<xs:annotation>
+		<xs:documentation>Authors: Michal Zaremba, Holger Lausen
+$Revision: 1.2 $
+$Date: 2006/03/22 17:05:21 $
+
+This XML Core Elements has been created on the basis of the RosettaNet specification (http://rosettanet.org/) 
+and is solely intended for the Semantic Web Challenge (http://www.sws-challenge.org/).</xs:documentation>
+	</xs:annotation>
+	<xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/>
+	<xs:import namespace="http://www.sws-challenge.org/schemas/rnet/dictionary" schemaLocation="3A4_PurchaseOrder_Dictionary.xsd"/>
+	<xs:element name="FreeFormText">
+		<xs:annotation>
+			<xs:documentation>Unformatted text.</xs:documentation>
+		</xs:annotation>
+		<xs:complexType mixed="true">
+			<xs:choice minOccurs="0" maxOccurs="unbounded"/>
+			<xs:attribute ref="xml:lang"/>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="businessName">
+		<xs:annotation>
+			<xs:documentation>The name of a business entity.</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element ref="FreeFormText" sawsdl:modelReference="Ontology1#BusinessName"/>
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="BusinessDescription">
+		<xs:annotation>
+			<xs:documentation>The collection of business properties that describe a business identity and location.</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element ref="businessName" minOccurs="0"/>
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="addressLine1">
+		<xs:annotation>
+			<xs:documentation>The first line of a physical address.</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element ref="FreeFormText" sawsdl:modelReference="Ontology1#Street"/>
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="cityName">
+		<xs:annotation>
+			<xs:documentation>The name of a city.</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element ref="FreeFormText" sawsdl:modelReference="Ontology1#City"/>
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="NationalPostalCode">
+		<xs:annotation>
+			<xs:documentation>Code identifying geographic location as specified by a national postal code.</xs:documentation>
+		</xs:annotation>
+		<xs:complexType mixed="true">
+			<xs:choice minOccurs="0" maxOccurs="unbounded"/>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="PhysicalAddress">
+		<xs:annotation>
+			<xs:documentation>The actual physical location of an entity as prescribed by local postal authorities, including country identification as it relates to the party or a product.</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element ref="addressLine1" minOccurs="0"/>
+				<xs:element ref="cityName" minOccurs="0"/>
+				<xs:element ref="dict:GlobalCountryCode" minOccurs="0" sawsdl:modelReference="Ontology1#Country"/>
+				<xs:element ref="NationalPostalCode" minOccurs="0" sawsdl:modelReference="Ontology1#PostalCode"/>
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="PhysicalLocation">
+		<xs:annotation>
+			<xs:documentation>The collection of business properties that identify and describe the actual physical location of an entity as prescribed by local postal authorities, including country identification.</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element ref="PhysicalAddress" minOccurs="0"/>
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="PartnerDescription">
+		<xs:annotation>
+			<xs:documentation>The collection of business properties that describe a business partners' identity, their contact information, where they are physically located and their function in a supply chain.</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element ref="BusinessDescription"/>
+				<xs:element ref="ContactInformation" minOccurs="0" sawsdl:modelReference="Ontology1#ContactPerson"/>
+				<xs:element ref="PhysicalLocation" minOccurs="0"/>
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="PartnerRoleDescription">
+		<xs:annotation>
+			<xs:documentation>The collection of business properties that describe a business partners' role in a partner interface process.</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element ref="ContactInformation" minOccurs="0"/>
+				<xs:element ref="dict:GlobalPartnerRoleClassificationCode"/>
+				<xs:element ref="PartnerDescription"/>
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="MonetaryAmount">
+		<xs:annotation>
+			<xs:documentation>Magnitude of currency amount.</xs:documentation>
+		</xs:annotation>
+		<xs:complexType mixed="true">
+			<xs:choice minOccurs="0" maxOccurs="unbounded"/>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="FinancialAmount">
+		<xs:annotation>
+			<xs:documentation>The collection of business properties that describe the monetary amount defined by a specified currency.</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element ref="dict:GlobalCurrencyCode"/>
+				<xs:element ref="MonetaryAmount"/>
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="totalAmount">
+		<xs:annotation>
+			<xs:documentation>Total price for an entire business document.</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element ref="FinancialAmount"/>
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="shipTo">
+		<xs:annotation>
+			<xs:documentation>The partner and/or location to which the product must be delivered.</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element ref="PartnerDescription"/>
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="DateStamp">
+		<xs:annotation>
+			<xs:documentation>Specifies a specific date. Date stamp based on the ISO 8601 specification. The "Z" following the day identifier (DD) is used to indicate Coordinated Universal Time. Informal format: YYYYMMDDZ</xs:documentation>
+		</xs:annotation>
+		<xs:complexType mixed="true">
+			<xs:choice minOccurs="0" maxOccurs="unbounded"/>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="TransportationEvent">
+		<xs:annotation>
+			<xs:documentation>The collection of business properties that describe the occurrence of the public conveyance of goods as a commercial enterprise.</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element ref="DateStamp"/>
+				<xs:element ref="dict:GlobalTransportEventCode"/>
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="requestedEvent">
+		<xs:annotation>
+			<xs:documentation>The date a transportation event is requested to occur.</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element ref="TransportationEvent"/>
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="AffirmationIndicator">
+		<xs:annotation>
+			<xs:documentation>Used to indicate "Yes", "No" statements.</xs:documentation>
+		</xs:annotation>
+		<xs:complexType mixed="true">
+			<xs:choice minOccurs="0" maxOccurs="unbounded"/>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="isDropShip">
+		<xs:annotation>
+			<xs:documentation>Indicates whether the order is a drop shipment.</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element ref="AffirmationIndicator"/>
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="toRole" sawsdl:modelReference="Ontology1#ToRole">
+		<xs:annotation>
+			<xs:documentation>The role receiving the document in a business document exchange.</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element ref="PartnerRoleDescription" sawsdl:liftingSchemaMapping="PartnerRoleDescriptionLifting.xslt" sawsdl:loweringSchemaMapping="PartnerRoleDescriptionLowering.xslt"/>
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="requestingDocumentIdentifier">
+		<xs:annotation>
+			<xs:documentation>Unique tracking identification number that identifies a request.</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element ref="ProprietaryDocumentIdentifier"/>
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="ProprietaryDocumentIdentifier">
+		<xs:annotation>
+			<xs:documentation>Unique identifier, i.e. a numeric value or alphanumeric value, for a business document.</xs:documentation>
+		</xs:annotation>
+		<xs:complexType mixed="true">
+			<xs:choice minOccurs="0" maxOccurs="unbounded"/>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="LineNumber">
+		<xs:annotation>
+			<xs:documentation>Number of the line in the document.</xs:documentation>
+		</xs:annotation>
+		<xs:complexType mixed="true">
+			<xs:choice minOccurs="0" maxOccurs="unbounded"/>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="thisDocumentIdentifier">
+		<xs:annotation>
+			<xs:documentation>The information that identifies the business document being sent. This identifier is used to represent the specific business document associated with the defined business process.</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element ref="ProprietaryDocumentIdentifier"/>
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="DateTimeStamp">
+		<xs:annotation>
+			<xs:documentation>Specifies an instance in time. Based on the ISO 8601 specification where "YYYY" represents the year, "MM" the month and "DD" the day. The letter "T" is the date/time separator and "hh", "mm", "ss.sss" represent hour, minute and second respectively. This representation is immediately followed by a "Z" to indicate Coordinated Universal Time. Informal format: YYYYMMDDThhmmss</xs:documentation>
+		</xs:annotation>
+		<xs:complexType mixed="true">
+			<xs:choice minOccurs="0" maxOccurs="unbounded"/>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="thisDocumentGenerationDateTime">
+		<xs:annotation>
+			<xs:documentation>The date-time stamp indicating when this business document was generated.</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element ref="DateTimeStamp"/>
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="contactName">
+		<xs:annotation>
+			<xs:documentation>Name of the contact person(s) within the organization.</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element ref="FreeFormText" sawsdl:modelReference="Ontology1#PersonName"/>
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="EmailAddress">
+		<xs:annotation>
+			<xs:documentation>Electronic mail address.</xs:documentation>
+		</xs:annotation>
+		<xs:complexType mixed="true">
+			<xs:choice minOccurs="0" maxOccurs="unbounded"/>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="CommunicationsNumber">
+		<xs:annotation>
+			<xs:documentation>The electro-technical communication number, e.g., telephone number, facsimile number, pager number.</xs:documentation>
+		</xs:annotation>
+		<xs:complexType mixed="true">
+			<xs:choice minOccurs="0" maxOccurs="unbounded"/>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="requestingDocumentDateTime">
+		<xs:annotation>
+			<xs:documentation>The date-time that the requesting business document was generated. This is the same as the date-time stamp of the original business document.</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element ref="DateTimeStamp"/>
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="totalLineItemAmount">
+		<xs:annotation>
+			<xs:documentation>The monetary total associated with a line item.</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element ref="FinancialAmount"/>
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="requestedUnitPrice">
+		<xs:annotation>
+			<xs:documentation>The price requested for a unit of product.</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element ref="FinancialAmount"/>
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="GlobalProductIdentifier" sawsdl:modelReference="Ontology1#ProductIdentifier">
+		<xs:annotation>
+			<xs:documentation>Global unique product identifier. RosettaNet has adopted the Global Trade Identification Number (GTIN).</xs:documentation>
+		</xs:annotation>
+		<xs:complexType mixed="true">
+			<xs:choice minOccurs="0" maxOccurs="unbounded"/>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="ProductIdentification">
+		<xs:annotation>
+			<xs:documentation>The collection of business properties that describe proprietary and global identifier information regarding a product.</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element ref="GlobalProductIdentifier" minOccurs="0"/>
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="buyerLineItem">
+		<xs:annotation>
+			<xs:documentation>Line number assigned to an item by the product buyer.</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element ref="LineNumber"/>
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="ProductQuantity" sawsdl:modelReference="Ontology1#Quantity">
+		<xs:annotation>
+			<xs:documentation>A quantity specifying the number of product units.</xs:documentation>
+		</xs:annotation>
+		<xs:complexType mixed="true">
+			<xs:choice minOccurs="0" maxOccurs="unbounded"/>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="shippedQuantity">
+		<xs:annotation>
+			<xs:documentation>Quantity of product shipped.</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element ref="ProductQuantity"/>
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="ShippedQuantityInformation">
+		<xs:annotation>
+			<xs:documentation>The collection of business properties that describe information regarding the quantity of the product shipped.</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element ref="DateTimeStamp"/>
+				<xs:element ref="shippedQuantity"/>
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="requestedQuantity">
+		<xs:annotation>
+			<xs:documentation>The quantity of product requested.</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element ref="ProductQuantity"/>
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="telephoneNumber">
+		<xs:annotation>
+			<xs:documentation>The numerical schema designed to achieve contact via telephone.</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element ref="CommunicationsNumber" sawsdl:modelReference="Ontology1#TelephoneNumber"/>
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="scheduledShipQuantity">
+		<xs:annotation>
+			<xs:documentation>Quantity of product shipped currently scheduled for shipment.</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element ref="ProductQuantity"/>
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="ContactInformation">
+		<xs:annotation>
+			<xs:documentation>The collection of business properties that provide communication and address information for contacting a person, organization or business.</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element ref="contactName" minOccurs="0"/>
+				<xs:element ref="EmailAddress" minOccurs="0" sawsdl:modelReference="Ontology1#Email"/>
+				<xs:element ref="telephoneNumber" minOccurs="0"/>
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="unitPrice">
+		<xs:annotation>
+			<xs:documentation>Agreed upon sale price for each unit ordered.</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element ref="FinancialAmount"/>
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="fromRole" sawsdl:modelReference="Ontology1#FromRole">
+		<xs:annotation>
+			<xs:documentation>The role initiating a business document exchange.</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element ref="PartnerRoleDescription" sawsdl:liftingSchemaMapping="PartnerRoleDescriptionLifting.xslt" sawsdl:loweringSchemaMapping="PartnerRoleDescriptionLowering.xslt"/>
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+</xs:schema>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/Files/3A4_PurchaseOrder_Dictionary.xsd	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,1031 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- edited with XMLSpy v2006 sp2 U (http://www.altova.com) by michal (jakas) -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:dict="http://www.sws-challenge.org/schemas/rnet/dictionary" xmlns:sawsdl="http://www.w3.org/2002/ws/sawsdl/spec/sawsdl#" 
+  xmlns:Ontology1="http://www.owl-ontologies.com/sws_challenge.owl"
+  targetNamespace="http://www.sws-challenge.org/schemas/rnet/dictionary" elementFormDefault="qualified" attributeFormDefault="unqualified">
+	<xs:annotation>
+		<xs:documentation>Authors: Michal Zaremba, Holger Lausen
+$Revision: 1.2 $
+$Date: 2006/03/06 15:30:27 $
+
+This XML Dictionary has been created on the basis of the RosettaNet specification (http://rosettanet.org/) 
+and is solely intended for the Semantic Web Challenge (http://www.sws-challenge.org/).</xs:documentation>
+	</xs:annotation>
+	<xs:element name="GlobalConfirmationTypeCode">
+		<xs:annotation>
+			<xs:documentation>A code identifying type of exception process in order to enable the back-end integration.</xs:documentation>
+		</xs:annotation>
+		<xs:simpleType>
+			<xs:restriction base="xs:string">
+				<xs:enumeration value="accept with delivery schedule change"/>
+				<xs:enumeration value="accept with multiple changes"/>
+				<xs:enumeration value="accept with no change"/>
+				<xs:enumeration value="accept with price change"/>
+				<xs:enumeration value="accept with product substitution"/>
+			</xs:restriction>
+		</xs:simpleType>
+	</xs:element>
+	<xs:element name="GlobalCountryCode">
+		<xs:annotation>
+			<xs:documentation xml:lang="en">Code identifying the three character currency code specified in ISO 4217-1995.</xs:documentation>
+		</xs:annotation>
+		<xs:simpleType>
+			<xs:restriction base="xs:string">
+				<xs:enumeration value="AD"/>
+				<xs:enumeration value="AE"/>
+				<xs:enumeration value="AF"/>
+				<xs:enumeration value="AG"/>
+				<xs:enumeration value="AI"/>
+				<xs:enumeration value="AL"/>
+				<xs:enumeration value="AM"/>
+				<xs:enumeration value="AN"/>
+				<xs:enumeration value="AO"/>
+				<xs:enumeration value="AQ"/>
+				<xs:enumeration value="AR"/>
+				<xs:enumeration value="AS"/>
+				<xs:enumeration value="AT"/>
+				<xs:enumeration value="AU"/>
+				<xs:enumeration value="AW"/>
+				<xs:enumeration value="AZ"/>
+				<xs:enumeration value="BA"/>
+				<xs:enumeration value="BB"/>
+				<xs:enumeration value="BD"/>
+				<xs:enumeration value="BE"/>
+				<xs:enumeration value="BF"/>
+				<xs:enumeration value="BG"/>
+				<xs:enumeration value="BH"/>
+				<xs:enumeration value="BI"/>
+				<xs:enumeration value="BJ"/>
+				<xs:enumeration value="BM"/>
+				<xs:enumeration value="BN"/>
+				<xs:enumeration value="BO"/>
+				<xs:enumeration value="BR"/>
+				<xs:enumeration value="BS"/>
+				<xs:enumeration value="BT"/>
+				<xs:enumeration value="BV"/>
+				<xs:enumeration value="BW"/>
+				<xs:enumeration value="BY"/>
+				<xs:enumeration value="BZ"/>
+				<xs:enumeration value="CA"/>
+				<xs:enumeration value="CC"/>
+				<xs:enumeration value="CF"/>
+				<xs:enumeration value="CG"/>
+				<xs:enumeration value="CH"/>
+				<xs:enumeration value="CI"/>
+				<xs:enumeration value="CK"/>
+				<xs:enumeration value="CL"/>
+				<xs:enumeration value="CM"/>
+				<xs:enumeration value="CN"/>
+				<xs:enumeration value="CO"/>
+				<xs:enumeration value="CR"/>
+				<xs:enumeration value="CU"/>
+				<xs:enumeration value="CV"/>
+				<xs:enumeration value="CX"/>
+				<xs:enumeration value="CY"/>
+				<xs:enumeration value="CZ"/>
+				<xs:enumeration value="DE"/>
+				<xs:enumeration value="DJ"/>
+				<xs:enumeration value="DK"/>
+				<xs:enumeration value="DM"/>
+				<xs:enumeration value="DO"/>
+				<xs:enumeration value="DZ"/>
+				<xs:enumeration value="EC"/>
+				<xs:enumeration value="EE"/>
+				<xs:enumeration value="EG"/>
+				<xs:enumeration value="EH"/>
+				<xs:enumeration value="ER"/>
+				<xs:enumeration value="ES"/>
+				<xs:enumeration value="ET"/>
+				<xs:enumeration value="FI"/>
+				<xs:enumeration value="FJ"/>
+				<xs:enumeration value="FK"/>
+				<xs:enumeration value="FM"/>
+				<xs:enumeration value="FO"/>
+				<xs:enumeration value="FR"/>
+				<xs:enumeration value="GA"/>
+				<xs:enumeration value="GB"/>
+				<xs:enumeration value="GD"/>
+				<xs:enumeration value="GE"/>
+				<xs:enumeration value="GF"/>
+				<xs:enumeration value="GH"/>
+				<xs:enumeration value="GI"/>
+				<xs:enumeration value="GL"/>
+				<xs:enumeration value="GM"/>
+				<xs:enumeration value="GN"/>
+				<xs:enumeration value="GP"/>
+				<xs:enumeration value="GQ"/>
+				<xs:enumeration value="GR"/>
+				<xs:enumeration value="GS"/>
+				<xs:enumeration value="GT"/>
+				<xs:enumeration value="GU"/>
+				<xs:enumeration value="GW"/>
+				<xs:enumeration value="GY"/>
+				<xs:enumeration value="HK"/>
+				<xs:enumeration value="HM"/>
+				<xs:enumeration value="HN"/>
+				<xs:enumeration value="HR"/>
+				<xs:enumeration value="HT"/>
+				<xs:enumeration value="HU"/>
+				<xs:enumeration value="ID"/>
+				<xs:enumeration value="IE"/>
+				<xs:enumeration value="IL"/>
+				<xs:enumeration value="IN"/>
+				<xs:enumeration value="IO"/>
+				<xs:enumeration value="IQ"/>
+				<xs:enumeration value="IR"/>
+				<xs:enumeration value="IS"/>
+				<xs:enumeration value="IT"/>
+				<xs:enumeration value="JM"/>
+				<xs:enumeration value="JO"/>
+				<xs:enumeration value="JP"/>
+				<xs:enumeration value="KE"/>
+				<xs:enumeration value="KG"/>
+				<xs:enumeration value="KH"/>
+				<xs:enumeration value="KI"/>
+				<xs:enumeration value="KM"/>
+				<xs:enumeration value="KN"/>
+				<xs:enumeration value="KP"/>
+				<xs:enumeration value="KR"/>
+				<xs:enumeration value="KW"/>
+				<xs:enumeration value="KY"/>
+				<xs:enumeration value="KZ"/>
+				<xs:enumeration value="LA"/>
+				<xs:enumeration value="LB"/>
+				<xs:enumeration value="LC"/>
+				<xs:enumeration value="LI"/>
+				<xs:enumeration value="LK"/>
+				<xs:enumeration value="LR"/>
+				<xs:enumeration value="LS"/>
+				<xs:enumeration value="LT"/>
+				<xs:enumeration value="LU"/>
+				<xs:enumeration value="LV"/>
+				<xs:enumeration value="LY"/>
+				<xs:enumeration value="MA"/>
+				<xs:enumeration value="MC"/>
+				<xs:enumeration value="MD"/>
+				<xs:enumeration value="MG"/>
+				<xs:enumeration value="MH"/>
+				<xs:enumeration value="MK"/>
+				<xs:enumeration value="ML"/>
+				<xs:enumeration value="MM"/>
+				<xs:enumeration value="MN"/>
+				<xs:enumeration value="MO"/>
+				<xs:enumeration value="MP"/>
+				<xs:enumeration value="MQ"/>
+				<xs:enumeration value="MR"/>
+				<xs:enumeration value="MS"/>
+				<xs:enumeration value="MT"/>
+				<xs:enumeration value="MU"/>
+				<xs:enumeration value="MV"/>
+				<xs:enumeration value="MW"/>
+				<xs:enumeration value="MX"/>
+				<xs:enumeration value="MY"/>
+				<xs:enumeration value="MZ"/>
+				<xs:enumeration value="NA"/>
+				<xs:enumeration value="NC"/>
+				<xs:enumeration value="NE"/>
+				<xs:enumeration value="NF"/>
+				<xs:enumeration value="NG"/>
+				<xs:enumeration value="NI"/>
+				<xs:enumeration value="NL"/>
+				<xs:enumeration value="NO"/>
+				<xs:enumeration value="NP"/>
+				<xs:enumeration value="NR"/>
+				<xs:enumeration value="NT"/>
+				<xs:enumeration value="NU"/>
+				<xs:enumeration value="NZ"/>
+				<xs:enumeration value="OM"/>
+				<xs:enumeration value="PA"/>
+				<xs:enumeration value="PE"/>
+				<xs:enumeration value="PF"/>
+				<xs:enumeration value="PG"/>
+				<xs:enumeration value="PH"/>
+				<xs:enumeration value="PK"/>
+				<xs:enumeration value="PL"/>
+				<xs:enumeration value="PM"/>
+				<xs:enumeration value="PN"/>
+				<xs:enumeration value="PR"/>
+				<xs:enumeration value="PT"/>
+				<xs:enumeration value="PW"/>
+				<xs:enumeration value="PY"/>
+				<xs:enumeration value="QA"/>
+				<xs:enumeration value="RE"/>
+				<xs:enumeration value="RO"/>
+				<xs:enumeration value="RU"/>
+				<xs:enumeration value="RW"/>
+				<xs:enumeration value="SA"/>
+				<xs:enumeration value="SB"/>
+				<xs:enumeration value="SC"/>
+				<xs:enumeration value="SD"/>
+				<xs:enumeration value="SE"/>
+				<xs:enumeration value="SG"/>
+				<xs:enumeration value="SH"/>
+				<xs:enumeration value="SI"/>
+				<xs:enumeration value="SJ"/>
+				<xs:enumeration value="SK"/>
+				<xs:enumeration value="SL"/>
+				<xs:enumeration value="SM"/>
+				<xs:enumeration value="SN"/>
+				<xs:enumeration value="SO"/>
+				<xs:enumeration value="SR"/>
+				<xs:enumeration value="ST"/>
+				<xs:enumeration value="SV"/>
+				<xs:enumeration value="SY"/>
+				<xs:enumeration value="SZ"/>
+				<xs:enumeration value="TC"/>
+				<xs:enumeration value="TD"/>
+				<xs:enumeration value="TF"/>
+				<xs:enumeration value="TG"/>
+				<xs:enumeration value="TH"/>
+				<xs:enumeration value="TJ"/>
+				<xs:enumeration value="TK"/>
+				<xs:enumeration value="TM"/>
+				<xs:enumeration value="TN"/>
+				<xs:enumeration value="TO"/>
+				<xs:enumeration value="TP"/>
+				<xs:enumeration value="TR"/>
+				<xs:enumeration value="TT"/>
+				<xs:enumeration value="TV"/>
+				<xs:enumeration value="TW"/>
+				<xs:enumeration value="TZ"/>
+				<xs:enumeration value="UA"/>
+				<xs:enumeration value="UG"/>
+				<xs:enumeration value="UM"/>
+				<xs:enumeration value="US"/>
+				<xs:enumeration value="UY"/>
+				<xs:enumeration value="UZ"/>
+				<xs:enumeration value="VA"/>
+				<xs:enumeration value="VC"/>
+				<xs:enumeration value="VE"/>
+				<xs:enumeration value="VG"/>
+				<xs:enumeration value="VI"/>
+				<xs:enumeration value="VN"/>
+				<xs:enumeration value="VU"/>
+				<xs:enumeration value="WF"/>
+				<xs:enumeration value="WS"/>
+				<xs:enumeration value="YE"/>
+				<xs:enumeration value="YT"/>
+				<xs:enumeration value="YU"/>
+				<xs:enumeration value="ZA"/>
+				<xs:enumeration value="ZM"/>
+				<xs:enumeration value="ZR"/>
+				<xs:enumeration value="ZW"/>
+			</xs:restriction>
+		</xs:simpleType>
+	</xs:element>
+	<xs:element name="GlobalPartnerRoleClassificationCode">
+		<xs:annotation>
+			<xs:documentation>Code identifying a party's role in the supply chain.</xs:documentation>
+		</xs:annotation>
+		<xs:simpleType>
+			<xs:restriction base="xs:string">
+				<xs:enumeration value="Account Supplier"/>
+				<xs:enumeration value="Account User"/>
+				<xs:enumeration value="Anonymous Buyer"/>
+				<xs:enumeration value="Appointment Provider"/>
+				<xs:enumeration value="Authorized Service Provider"/>
+				<xs:enumeration value="Authorizer"/>
+				<xs:enumeration value="Buyer"/>
+				<xs:enumeration value="Catalog Distributor"/>
+				<xs:enumeration value="Catalog Producer"/>
+				<xs:enumeration value="Change Requester"/>
+				<xs:enumeration value="Change Review Forum"/>
+				<xs:enumeration value="Claim Requester"/>
+				<xs:enumeration value="Consignee"/>
+				<xs:enumeration value="Consumption Notification Provider"/>
+				<xs:enumeration value="Consumption Notification User"/>
+				<xs:enumeration value="Credit Provider"/>
+				<xs:enumeration value="Credit Reference Requester"/>
+				<xs:enumeration value="Customer"/>
+				<xs:enumeration value="Customer Manager"/>
+				<xs:enumeration value="Decision Stakeholder"/>
+				<xs:enumeration value="Delivery Appointment Provider"/>
+				<xs:enumeration value="Delivery Appointment Requester"/>
+				<xs:enumeration value="Demand Creator"/>
+				<xs:enumeration value="Design Engineering Information Receiver"/>
+				<xs:enumeration value="Design Engineering Information Sender"/>
+				<xs:enumeration value="Exception Identifier"/>
+				<xs:enumeration value="Exception Recipient"/>
+				<xs:enumeration value="Failure Report Administrator"/>
+				<xs:enumeration value="Financing Processor"/>
+				<xs:enumeration value="Forecast Owner"/>
+				<xs:enumeration value="Forecast Recipient"/>
+				<xs:enumeration value="Forecast Reply Recipient"/>
+				<xs:enumeration value="Implementation Plan Creator"/>
+				<xs:enumeration value="Initiator"/>
+				<xs:enumeration value="Integrator"/>
+				<xs:enumeration value="In-transit Information User"/>
+				<xs:enumeration value="Inventory Information Provider"/>
+				<xs:enumeration value="Inventory Information User"/>
+				<xs:enumeration value="Invoice Provider"/>
+				<xs:enumeration value="Invoice Receiver"/>
+				<xs:enumeration value="Invoice Reject Provider"/>
+				<xs:enumeration value="Invoice Reject Receiver"/>
+				<xs:enumeration value="Marketing Activity Information User"/>
+				<xs:enumeration value="Marketing Activity Initiator"/>
+				<xs:enumeration value="Material Release Information Provider"/>
+				<xs:enumeration value="Material Release Information User"/>
+				<xs:enumeration value="Payee"/>
+				<xs:enumeration value="Payer"/>
+				<xs:enumeration value="PIP Failure Notifier"/>
+				<xs:enumeration value="Product Distributor"/>
+				<xs:enumeration value="Product Information Distributor"/>
+				<xs:enumeration value="Product Information Subscriber"/>
+				<xs:enumeration value="Product Information User"/>
+				<xs:enumeration value="Product Provider"/>
+				<xs:enumeration value="Product Supplier"/>
+				<xs:enumeration value="Qualification Owner"/>
+				<xs:enumeration value="Quality Data Provider"/>
+				<xs:enumeration value="Quality Data User"/>
+				<xs:enumeration value="Receiver"/>
+				<xs:enumeration value="Responder"/>
+				<xs:enumeration value="Return Provider"/>
+				<xs:enumeration value="Return Receiver"/>
+				<xs:enumeration value="Return Requester"/>
+				<xs:enumeration value="Sales Facilitator"/>
+				<xs:enumeration value="Sales Lead Originator"/>
+				<xs:enumeration value="Sales Lead Processor"/>
+				<xs:enumeration value="Sales Marketing Claim Processor"/>
+				<xs:enumeration value="Sales Marketing Claimant"/>
+				<xs:enumeration value="Sales Marketing Program Reimbursement Recipient"/>
+				<xs:enumeration value="Sales Marketing Program Reimburser"/>
+				<xs:enumeration value="Self-Billing Invoice Provider"/>
+				<xs:enumeration value="Self-Billing Invoice Receiver"/>
+				<xs:enumeration value="Seller"/>
+				<xs:enumeration value="Service Provider"/>
+				<xs:enumeration value="Shipment Information User"/>
+				<xs:enumeration value="Shipment Requester"/>
+				<xs:enumeration value="ShipmentController"/>
+				<xs:enumeration value="Shipper"/>
+				<xs:enumeration value="Shipping Provider"/>
+				<xs:enumeration value="Solution Provider"/>
+				<xs:enumeration value="Solution Requester"/>
+				<xs:enumeration value="Specification Provider"/>
+				<xs:enumeration value="Specification User"/>
+				<xs:enumeration value="Stakeholder"/>
+				<xs:enumeration value="Status Requester"/>
+				<xs:enumeration value="Status Responder"/>
+				<xs:enumeration value="Supplier"/>
+				<xs:enumeration value="Tender Information User"/>
+				<xs:enumeration value="Transport Service Provider"/>
+				<xs:enumeration value="Warranty Provider"/>
+			</xs:restriction>
+		</xs:simpleType>
+	</xs:element>
+	<xs:element name="GlobalProductUnitOfMeasureCode">
+		<xs:annotation>
+			<xs:documentation xml:lang="en">Code identifying a product unit of measure.</xs:documentation>
+		</xs:annotation>
+		<xs:simpleType>
+			<xs:restriction base="xs:string">
+				<xs:enumeration value="10 Kilogram Drum"/>
+				<xs:enumeration value="10,000 Gallon Tankcar"/>
+				<xs:enumeration value="100 Board Feet"/>
+				<xs:enumeration value="100 Pound Drum"/>
+				<xs:enumeration value="1000-pack"/>
+				<xs:enumeration value="100-Pack"/>
+				<xs:enumeration value="10-pack"/>
+				<xs:enumeration value="115 Kilogram Drum"/>
+				<xs:enumeration value="15 Kilogram Drum"/>
+				<xs:enumeration value="20 Foot Container"/>
+				<xs:enumeration value="20,000 Gallon Tankcar"/>
+				<xs:enumeration value="20-Pack"/>
+				<xs:enumeration value="25 Kilogram Bulk Bag"/>
+				<xs:enumeration value="300 Kilogram Bulk Bag"/>
+				<xs:enumeration value="40 Foot Container"/>
+				<xs:enumeration value="50 Pound Bag"/>
+				<xs:enumeration value="500 Kilogram Bulk Bag"/>
+				<xs:enumeration value="50-pack"/>
+				<xs:enumeration value="55 Gallon Drum"/>
+				<xs:enumeration value="Acre"/>
+				<xs:enumeration value="Actual Pounds"/>
+				<xs:enumeration value="Aluminum Pounds Only"/>
+				<xs:enumeration value="Ampere"/>
+				<xs:enumeration value="Angstrom"/>
+				<xs:enumeration value="Bag"/>
+				<xs:enumeration value="Bale"/>
+				<xs:enumeration value="Ball"/>
+				<xs:enumeration value="Band"/>
+				<xs:enumeration value="Bar"/>
+				<xs:enumeration value="Barrel"/>
+				<xs:enumeration value="Barrel, Imperial"/>
+				<xs:enumeration value="Barrels Per Day"/>
+				<xs:enumeration value="Barrels Per Minute"/>
+				<xs:enumeration value="Base Box"/>
+				<xs:enumeration value="Base Weight"/>
+				<xs:enumeration value="Basket"/>
+				<xs:enumeration value="Batch"/>
+				<xs:enumeration value="Batt"/>
+				<xs:enumeration value="Batting Pound"/>
+				<xs:enumeration value="Beam"/>
+				<xs:enumeration value="Becquerel/kilogram"/>
+				<xs:enumeration value="Belt"/>
+				<xs:enumeration value="Billet"/>
+				<xs:enumeration value="Bin"/>
+				<xs:enumeration value="Bit"/>
+				<xs:enumeration value="Block"/>
+				<xs:enumeration value="Board"/>
+				<xs:enumeration value="Board Feet"/>
+				<xs:enumeration value="Bolt"/>
+				<xs:enumeration value="Bottle"/>
+				<xs:enumeration value="Box"/>
+				<xs:enumeration value="British Thermal Unit (BTU)"/>
+				<xs:enumeration value="British Thermal Units (BTUs) Per Cubic Foot"/>
+				<xs:enumeration value="British Thermal Units (BTUs) Per Pound"/>
+				<xs:enumeration value="Bucket"/>
+				<xs:enumeration value="Bulk"/>
+				<xs:enumeration value="Bulk Car Load"/>
+				<xs:enumeration value="Bulk Pack"/>
+				<xs:enumeration value="Bundle"/>
+				<xs:enumeration value="Bunks"/>
+				<xs:enumeration value="Bushel"/>
+				<xs:enumeration value="Bushel, Dry Imperial"/>
+				<xs:enumeration value="Bytes"/>
+				<xs:enumeration value="Calorie"/>
+				<xs:enumeration value="Can"/>
+				<xs:enumeration value="Candela"/>
+				<xs:enumeration value="Canister"/>
+				<xs:enumeration value="Car"/>
+				<xs:enumeration value="Carat"/>
+				<xs:enumeration value="Carboy"/>
+				<xs:enumeration value="Card"/>
+				<xs:enumeration value="Carload"/>
+				<xs:enumeration value="Carton"/>
+				<xs:enumeration value="Cartridge"/>
+				<xs:enumeration value="Case"/>
+				<xs:enumeration value="Cask"/>
+				<xs:enumeration value="Cassette"/>
+				<xs:enumeration value="Catchweight"/>
+				<xs:enumeration value="Cell"/>
+				<xs:enumeration value="Centigram"/>
+				<xs:enumeration value="Centiliter"/>
+				<xs:enumeration value="Centimeter"/>
+				<xs:enumeration value="Centipoise (CPS)"/>
+				<xs:enumeration value="Chains (Land Survey)"/>
+				<xs:enumeration value="Chest"/>
+				<xs:enumeration value="Coil"/>
+				<xs:enumeration value="Coil Group"/>
+				<xs:enumeration value="Composite Product Pounds (Total Weight)"/>
+				<xs:enumeration value="Cone"/>
+				<xs:enumeration value="Connector"/>
+				<xs:enumeration value="Container"/>
+				<xs:enumeration value="Coulomb"/>
+				<xs:enumeration value="Cover"/>
+				<xs:enumeration value="Crate"/>
+				<xs:enumeration value="Cubic centimeter"/>
+				<xs:enumeration value="Cubic centimeter/second"/>
+				<xs:enumeration value="Cubic Foot"/>
+				<xs:enumeration value="Cubic inch"/>
+				<xs:enumeration value="Cubic yard"/>
+				<xs:enumeration value="Cubicmeter"/>
+				<xs:enumeration value="Cup"/>
+				<xs:enumeration value="Cycles"/>
+				<xs:enumeration value="Cylinder"/>
+				<xs:enumeration value="Day"/>
+				<xs:enumeration value="Deal"/>
+				<xs:enumeration value="Decagram"/>
+				<xs:enumeration value="Decibels"/>
+				<xs:enumeration value="Decigram"/>
+				<xs:enumeration value="Deciliter"/>
+				<xs:enumeration value="Decimeter"/>
+				<xs:enumeration value="Degree Celsius"/>
+				<xs:enumeration value="Degree Fahrenheit"/>
+				<xs:enumeration value="Dep. Factor"/>
+				<xs:enumeration value="Die"/>
+				<xs:enumeration value="Disk (Disc)"/>
+				<xs:enumeration value="Dispenser"/>
+				<xs:enumeration value="Display"/>
+				<xs:enumeration value="Dozen"/>
+				<xs:enumeration value="Dram"/>
+				<xs:enumeration value="Drum"/>
+				<xs:enumeration value="Dry Pounds"/>
+				<xs:enumeration value="Each"/>
+				<xs:enumeration value="Electrical Capacitance"/>
+				<xs:enumeration value="Farad"/>
+				<xs:enumeration value="Fluid Ounce"/>
+				<xs:enumeration value="Fluid Ounce (Imperial)"/>
+				<xs:enumeration value="Fluid Ounce US"/>
+				<xs:enumeration value="Foot"/>
+				<xs:enumeration value="Fuel Usage (Gallons)"/>
+				<xs:enumeration value="Gage Systems"/>
+				<xs:enumeration value="Gallon"/>
+				<xs:enumeration value="Gigajoules"/>
+				<xs:enumeration value="Gill (Imperial)"/>
+				<xs:enumeration value="Grain"/>
+				<xs:enumeration value="Gram"/>
+				<xs:enumeration value="Gram/Cubic Centimeter"/>
+				<xs:enumeration value="Gram/square meter"/>
+				<xs:enumeration value="Grams Per 100 Centimeters"/>
+				<xs:enumeration value="Grams Per 100 Grams"/>
+				<xs:enumeration value="Grams Per Cubic Centimeter"/>
+				<xs:enumeration value="Grams Per Kilogram"/>
+				<xs:enumeration value="Grams Per Liter"/>
+				<xs:enumeration value="Grams Per Milliliter"/>
+				<xs:enumeration value="Grams Per Square Centimeter"/>
+				<xs:enumeration value="Grams Per Square Meter"/>
+				<xs:enumeration value="Great Gross (Dozen Gross)"/>
+				<xs:enumeration value="Gross"/>
+				<xs:enumeration value="Gross Barrels"/>
+				<xs:enumeration value="Gross Gallons"/>
+				<xs:enumeration value="Gross Kilogram"/>
+				<xs:enumeration value="Gross Ton"/>
+				<xs:enumeration value="Gross Yard"/>
+				<xs:enumeration value="Group"/>
+				<xs:enumeration value="Half Gallon"/>
+				<xs:enumeration value="Half Hour"/>
+				<xs:enumeration value="Half Liter"/>
+				<xs:enumeration value="Hank"/>
+				<xs:enumeration value="Heat lots"/>
+				<xs:enumeration value="Hectare"/>
+				<xs:enumeration value="Hectoliter"/>
+				<xs:enumeration value="Hectopascal"/>
+				<xs:enumeration value="Hertz"/>
+				<xs:enumeration value="Hour"/>
+				<xs:enumeration value="Hours"/>
+				<xs:enumeration value="Hundred Boxes"/>
+				<xs:enumeration value="Hundred Count"/>
+				<xs:enumeration value="Hundred Sheets"/>
+				<xs:enumeration value="Hundredth of a Carat"/>
+				<xs:enumeration value="Imperial Gallons"/>
+				<xs:enumeration value="Inch"/>
+				<xs:enumeration value="Jar"/>
+				<xs:enumeration value="Joint"/>
+				<xs:enumeration value="Joule"/>
+				<xs:enumeration value="Keg"/>
+				<xs:enumeration value="Kelvin"/>
+				<xs:enumeration value="Kiloampere"/>
+				<xs:enumeration value="Kilobecquerel/Kilogram"/>
+				<xs:enumeration value="Kilobyte"/>
+				<xs:enumeration value="Kilogram"/>
+				<xs:enumeration value="Kilogram per cubic meter"/>
+				<xs:enumeration value="Kilogram/Kilogram"/>
+				<xs:enumeration value="Kilogram/square meter"/>
+				<xs:enumeration value="Kilogramm pro Sekunde"/>
+				<xs:enumeration value="Kilohertz"/>
+				<xs:enumeration value="Kilojoule"/>
+				<xs:enumeration value="Kilometer"/>
+				<xs:enumeration value="Kilometer/hour"/>
+				<xs:enumeration value="Kiloohm"/>
+				<xs:enumeration value="Kilovolt"/>
+				<xs:enumeration value="Kilowatt"/>
+				<xs:enumeration value="Kilowatt-hour"/>
+				<xs:enumeration value="Kit"/>
+				<xs:enumeration value="Kubikdezimeter"/>
+				<xs:enumeration value="Kubikmeter pro Sekunde"/>
+				<xs:enumeration value="Lifts"/>
+				<xs:enumeration value="Link"/>
+				<xs:enumeration value="Liquid Pounds"/>
+				<xs:enumeration value="Liter"/>
+				<xs:enumeration value="Load"/>
+				<xs:enumeration value="Lot"/>
+				<xs:enumeration value="Lug"/>
+				<xs:enumeration value="Mat"/>
+				<xs:enumeration value="Megabyte"/>
+				<xs:enumeration value="Megagram"/>
+				<xs:enumeration value="Megagrams Per Hour"/>
+				<xs:enumeration value="Megahertz"/>
+				<xs:enumeration value="Megapascal"/>
+				<xs:enumeration value="Megawatt"/>
+				<xs:enumeration value="Meter"/>
+				<xs:enumeration value="Meter pro Quadratsekunde"/>
+				<xs:enumeration value="Meters per second"/>
+				<xs:enumeration value="Microgram"/>
+				<xs:enumeration value="Micrograms Per Cubic Meter"/>
+				<xs:enumeration value="Micrometer"/>
+				<xs:enumeration value="Microsecond"/>
+				<xs:enumeration value="Mikrogram/cubic meter"/>
+				<xs:enumeration value="Mile"/>
+				<xs:enumeration value="Miles"/>
+				<xs:enumeration value="Milliampere"/>
+				<xs:enumeration value="Milliamperes"/>
+				<xs:enumeration value="Millibar"/>
+				<xs:enumeration value="Milligram"/>
+				<xs:enumeration value="Milligram/cubic meter"/>
+				<xs:enumeration value="Milligram/kilogram"/>
+				<xs:enumeration value="Milligram/Liter"/>
+				<xs:enumeration value="Milligrams Per Cubic Meter"/>
+				<xs:enumeration value="Milligrams Per Square Meter"/>
+				<xs:enumeration value="Millijoule"/>
+				<xs:enumeration value="Milliliter"/>
+				<xs:enumeration value="Millimeter"/>
+				<xs:enumeration value="Millimeter H20"/>
+				<xs:enumeration value="Millimol"/>
+				<xs:enumeration value="Millimol/kilogram"/>
+				<xs:enumeration value="Million BTU's"/>
+				<xs:enumeration value="Millipascal seconds"/>
+				<xs:enumeration value="Millisecond"/>
+				<xs:enumeration value="Millitesla"/>
+				<xs:enumeration value="Millivolt"/>
+				<xs:enumeration value="Millivolts"/>
+				<xs:enumeration value="Milliwatt"/>
+				<xs:enumeration value="Minute"/>
+				<xs:enumeration value="Miter"/>
+				<xs:enumeration value="Mol"/>
+				<xs:enumeration value="Mol/kilogram"/>
+				<xs:enumeration value="Month"/>
+				<xs:enumeration value="Multichip"/>
+				<xs:enumeration value="Nanometer"/>
+				<xs:enumeration value="Nanosecond"/>
+				<xs:enumeration value="Net Barrels"/>
+				<xs:enumeration value="Net Gallons"/>
+				<xs:enumeration value="Net Imperial Gallons"/>
+				<xs:enumeration value="Net Liters"/>
+				<xs:enumeration value="Newton"/>
+				<xs:enumeration value="Ohm"/>
+				<xs:enumeration value="One"/>
+				<xs:enumeration value="One Thousand Pieces"/>
+				<xs:enumeration value="Ounce"/>
+				<xs:enumeration value="Pack (PAK)"/>
+				<xs:enumeration value="Package"/>
+				<xs:enumeration value="Packet"/>
+				<xs:enumeration value="Pad"/>
+				<xs:enumeration value="Pail"/>
+				<xs:enumeration value="Pair"/>
+				<xs:enumeration value="Pallet"/>
+				<xs:enumeration value="Pallet (Lift)"/>
+				<xs:enumeration value="Pallet/Unit Load"/>
+				<xs:enumeration value="Pallete"/>
+				<xs:enumeration value="Panel"/>
+				<xs:enumeration value="Parcel"/>
+				<xs:enumeration value="Parts per billion (US)"/>
+				<xs:enumeration value="Parts per million"/>
+				<xs:enumeration value="Pascal"/>
+				<xs:enumeration value="Pascal second"/>
+				<xs:enumeration value="Pennyweight"/>
+				<xs:enumeration value="Per Hundred Pieces"/>
+				<xs:enumeration value="Percent"/>
+				<xs:enumeration value="Percent Per 1000 Hours"/>
+				<xs:enumeration value="Percent Weight"/>
+				<xs:enumeration value="Percentage"/>
+				<xs:enumeration value="Picofarad"/>
+				<xs:enumeration value="Piece"/>
+				<xs:enumeration value="Pint - US liquid"/>
+				<xs:enumeration value="Pint U.S. Dry"/>
+				<xs:enumeration value="Plate"/>
+				<xs:enumeration value="Pound"/>
+				<xs:enumeration value="Pounds Per 1000 Square Feet"/>
+				<xs:enumeration value="Pounds Per Foot"/>
+				<xs:enumeration value="Pounds Per Gallon"/>
+				<xs:enumeration value="Pounds Per Piece of Product"/>
+				<xs:enumeration value="Pounds Per Pound of Product"/>
+				<xs:enumeration value="Pounds Per Thousand"/>
+				<xs:enumeration value="Quart - US liquid"/>
+				<xs:enumeration value="Rack"/>
+				<xs:enumeration value="Ream of 500 Sheets"/>
+				<xs:enumeration value="Reel"/>
+				<xs:enumeration value="Ring"/>
+				<xs:enumeration value="Rod"/>
+				<xs:enumeration value="Roll"/>
+				<xs:enumeration value="Sack"/>
+				<xs:enumeration value="Second"/>
+				<xs:enumeration value="SET"/>
+				<xs:enumeration value="Sheet"/>
+				<xs:enumeration value="Sheet-Metric measure"/>
+				<xs:enumeration value="Shipment"/>
+				<xs:enumeration value="Shot"/>
+				<xs:enumeration value="Skein"/>
+				<xs:enumeration value="Skid"/>
+				<xs:enumeration value="Sleeve"/>
+				<xs:enumeration value="Slip Sheet"/>
+				<xs:enumeration value="Spool"/>
+				<xs:enumeration value="Square"/>
+				<xs:enumeration value="Square foot"/>
+				<xs:enumeration value="Square inch"/>
+				<xs:enumeration value="Square kilometer"/>
+				<xs:enumeration value="Square meter"/>
+				<xs:enumeration value="Square meter/second"/>
+				<xs:enumeration value="Square mile"/>
+				<xs:enumeration value="Square millimeter"/>
+				<xs:enumeration value="Square Yard"/>
+				<xs:enumeration value="Statute Mile"/>
+				<xs:enumeration value="Stick"/>
+				<xs:enumeration value="Strip"/>
+				<xs:enumeration value="Super Bulk Bag"/>
+				<xs:enumeration value="Tablet"/>
+				<xs:enumeration value="Tank"/>
+				<xs:enumeration value="Tank Truck"/>
+				<xs:enumeration value="Tesla"/>
+				<xs:enumeration value="Thousand"/>
+				<xs:enumeration value="Ton"/>
+				<xs:enumeration value="Tonne"/>
+				<xs:enumeration value="Torr"/>
+				<xs:enumeration value="Tote"/>
+				<xs:enumeration value="Track Foot"/>
+				<xs:enumeration value="Trailer"/>
+				<xs:enumeration value="Train"/>
+				<xs:enumeration value="Tray"/>
+				<xs:enumeration value="Troy"/>
+				<xs:enumeration value="Troy OZ"/>
+				<xs:enumeration value="Truckload"/>
+				<xs:enumeration value="Tube"/>
+				<xs:enumeration value="Unit"/>
+				<xs:enumeration value="Unitless Unit of Measure"/>
+				<xs:enumeration value="US gallon"/>
+				<xs:enumeration value="US pound"/>
+				<xs:enumeration value="US ton"/>
+				<xs:enumeration value="Vial"/>
+				<xs:enumeration value="Volt"/>
+				<xs:enumeration value="Volts (Alternating Current)"/>
+				<xs:enumeration value="Volts (Direct Current)"/>
+				<xs:enumeration value="Volts Per Meter"/>
+				<xs:enumeration value="Wafer"/>
+				<xs:enumeration value="Watt"/>
+				<xs:enumeration value="Week"/>
+				<xs:enumeration value="WF"/>
+				<xs:enumeration value="Wrap"/>
+				<xs:enumeration value="Yard"/>
+				<xs:enumeration value="Year"/>
+			</xs:restriction>
+		</xs:simpleType>
+	</xs:element>
+	<xs:element name="GlobalPurchaseOrderTypeCode">
+		<xs:annotation>
+			<xs:documentation xml:lang="en">Code identifying category specification for a purchase order.</xs:documentation>
+		</xs:annotation>
+		<xs:simpleType>
+			<xs:restriction base="xs:string">
+				<xs:enumeration value="Blanket">
+					<xs:annotation>
+						<xs:documentation source="Order quantity for blanket type purchase order is understood to be a blanket quantity maximum." xml:lang="en"/>
+					</xs:annotation>
+				</xs:enumeration>
+				<xs:enumeration value="Consigned order"/>
+				<xs:enumeration value="Do not ship/invoice only"/>
+				<xs:enumeration value="ERS">
+					<xs:annotation>
+						<xs:documentation source="Evaluated Receipt Settlement -Self Billing Invoice (SBI)." xml:lang="en"/>
+					</xs:annotation>
+				</xs:enumeration>
+				<xs:enumeration value="ESD"/>
+				<xs:enumeration value="Evaluation"/>
+				<xs:enumeration value="Exchange Order">
+					<xs:annotation>
+						<xs:documentation xml:lang="en">PO generated to exchange a product that is not related to Warranty Replacement.</xs:documentation>
+					</xs:annotation>
+				</xs:enumeration>
+				<xs:enumeration value="Fulfillment"/>
+				<xs:enumeration value="Government"/>
+				<xs:enumeration value="Non-cancelable/non-returnable"/>
+				<xs:enumeration value="Packaged product"/>
+				<xs:enumeration value="Production">
+					<xs:annotation>
+						<xs:documentation xml:lang="en">for mass production wafer</xs:documentation>
+					</xs:annotation>
+				</xs:enumeration>
+				<xs:enumeration value="Quote to order"/>
+				<xs:enumeration value="Repair"/>
+				<xs:enumeration value="Replenishment">
+					<xs:annotation>
+						<xs:documentation xml:lang="en">PO generated to replenish stock to achieve target levels.</xs:documentation>
+					</xs:annotation>
+				</xs:enumeration>
+				<xs:enumeration value="Rework"/>
+				<xs:enumeration value="Risk Production">
+					<xs:annotation>
+						<xs:documentation xml:lang="en">Before the yield is qualifed, the buyer requests the wafer manufacturer to produce the wafer according to the current spec., however, the manufacturer is not responsible for the yield</xs:documentation>
+					</xs:annotation>
+				</xs:enumeration>
+				<xs:enumeration value="Sample"/>
+				<xs:enumeration value="Service"/>
+				<xs:enumeration value="Site">
+					<xs:annotation>
+						<xs:documentation xml:lang="en">applicable to a single geographical site</xs:documentation>
+					</xs:annotation>
+				</xs:enumeration>
+				<xs:enumeration value="Standard"/>
+				<xs:enumeration value="Warranty repair"/>
+				<xs:enumeration value="Warranty replacement"/>
+				<xs:enumeration value="Worldwide">
+					<xs:annotation>
+						<xs:documentation xml:lang="en">applicable to worldwide</xs:documentation>
+					</xs:annotation>
+				</xs:enumeration>
+			</xs:restriction>
+		</xs:simpleType>
+	</xs:element>
+	<xs:element name="GlobalTransportEventCode">
+		<xs:annotation>
+			<xs:documentation xml:lang="en">Code identifying an event during the transportation of a shipment.</xs:documentation>
+		</xs:annotation>
+		<xs:simpleType>
+			<xs:restriction base="xs:string">
+				<xs:enumeration value="Dock">
+					<xs:annotation>
+						<xs:documentation xml:lang="en">The event representing when the product should arrive on the recipient's dock.</xs:documentation>
+					</xs:annotation>
+				</xs:enumeration>
+				<xs:enumeration value="Pickup">
+					<xs:annotation>
+						<xs:documentation xml:lang="en">The event representing when the product is scheduled to be picked up from the shipper's dock.</xs:documentation>
+					</xs:annotation>
+				</xs:enumeration>
+				<xs:enumeration value="Ship">
+					<xs:annotation>
+						<xs:documentation xml:lang="en">The event representing when the product is requested to ship.</xs:documentation>
+					</xs:annotation>
+				</xs:enumeration>
+			</xs:restriction>
+		</xs:simpleType>
+	</xs:element>
+	<xs:element name="GlobalPurchaseOrderStatusCode">
+		<xs:annotation>
+			<xs:documentation>Code identifying the status of a purchase order.</xs:documentation>
+		</xs:annotation>
+		<xs:simpleType>
+			<xs:restriction base="xs:string">
+				<xs:enumeration value="Accept"/>
+				<xs:enumeration value="Pending"/>
+				<xs:enumeration value="Reject"/>
+			</xs:restriction>
+		</xs:simpleType>
+	</xs:element>
+	<xs:element name="GlobalCurrencyCode">
+		<xs:annotation>
+			<xs:documentation>Code identifying the three character currency code specified in ISO 4217-1995.</xs:documentation>
+		</xs:annotation>
+		<xs:simpleType>
+			<xs:restriction base="xs:string">
+				<xs:enumeration value="ADP"/>
+				<xs:enumeration value="AED"/>
+				<xs:enumeration value="AFA"/>
+				<xs:enumeration value="ALL"/>
+				<xs:enumeration value="AMD"/>
+				<xs:enumeration value="ANG"/>
+				<xs:enumeration value="AON"/>
+				<xs:enumeration value="AOR"/>
+				<xs:enumeration value="ARS"/>
+				<xs:enumeration value="ATS"/>
+				<xs:enumeration value="AUD"/>
+				<xs:enumeration value="AWG"/>
+				<xs:enumeration value="AZM"/>
+				<xs:enumeration value="BAM"/>
+				<xs:enumeration value="BBD"/>
+				<xs:enumeration value="BDT"/>
+				<xs:enumeration value="BEF"/>
+				<xs:enumeration value="BGL"/>
+				<xs:enumeration value="BHD"/>
+				<xs:enumeration value="BIF"/>
+				<xs:enumeration value="BMD"/>
+				<xs:enumeration value="BND"/>
+				<xs:enumeration value="BOB"/>
+				<xs:enumeration value="BOV"/>
+				<xs:enumeration value="BRL"/>
+				<xs:enumeration value="BSD"/>
+				<xs:enumeration value="BTN"/>
+				<xs:enumeration value="BWP"/>
+				<xs:enumeration value="BYB"/>
+				<xs:enumeration value="BZD"/>
+				<xs:enumeration value="CAD"/>
+				<xs:enumeration value="CHF"/>
+				<xs:enumeration value="CLP"/>
+				<xs:enumeration value="CNY"/>
+				<xs:enumeration value="COP"/>
+				<xs:enumeration value="CRC"/>
+				<xs:enumeration value="CUP"/>
+				<xs:enumeration value="CVE"/>
+				<xs:enumeration value="CYP"/>
+				<xs:enumeration value="CZK"/>
+				<xs:enumeration value="DEM"/>
+				<xs:enumeration value="DJF"/>
+				<xs:enumeration value="DKK"/>
+				<xs:enumeration value="DOP"/>
+				<xs:enumeration value="DZD"/>
+				<xs:enumeration value="ECS"/>
+				<xs:enumeration value="EEK"/>
+				<xs:enumeration value="EGP"/>
+				<xs:enumeration value="ERN"/>
+				<xs:enumeration value="ESP"/>
+				<xs:enumeration value="ETB"/>
+				<xs:enumeration value="EUR"/>
+				<xs:enumeration value="FIM"/>
+				<xs:enumeration value="FJD"/>
+				<xs:enumeration value="FKP"/>
+				<xs:enumeration value="FRF"/>
+				<xs:enumeration value="GBP"/>
+				<xs:enumeration value="GEL"/>
+				<xs:enumeration value="GHC"/>
+				<xs:enumeration value="GIP"/>
+				<xs:enumeration value="GMD"/>
+				<xs:enumeration value="GNF"/>
+				<xs:enumeration value="GRD"/>
+				<xs:enumeration value="GTQ"/>
+				<xs:enumeration value="GWP"/>
+				<xs:enumeration value="GYD"/>
+				<xs:enumeration value="HKD"/>
+				<xs:enumeration value="HNL"/>
+				<xs:enumeration value="HRK"/>
+				<xs:enumeration value="HTG"/>
+				<xs:enumeration value="HUF"/>
+				<xs:enumeration value="IDR"/>
+				<xs:enumeration value="IEP"/>
+				<xs:enumeration value="ILS"/>
+				<xs:enumeration value="INR"/>
+				<xs:enumeration value="IQD"/>
+				<xs:enumeration value="IRR"/>
+				<xs:enumeration value="ISK"/>
+				<xs:enumeration value="ITL"/>
+				<xs:enumeration value="JMD"/>
+				<xs:enumeration value="JOD"/>
+				<xs:enumeration value="JPY"/>
+				<xs:enumeration value="KES"/>
+				<xs:enumeration value="KGS"/>
+				<xs:enumeration value="KHR"/>
+				<xs:enumeration value="KMF"/>
+				<xs:enumeration value="KPW"/>
+				<xs:enumeration value="KRW"/>
+				<xs:enumeration value="KWD"/>
+				<xs:enumeration value="KYD"/>
+				<xs:enumeration value="KZT"/>
+				<xs:enumeration value="LAK"/>
+				<xs:enumeration value="LBP"/>
+				<xs:enumeration value="LKR"/>
+				<xs:enumeration value="LRD"/>
+				<xs:enumeration value="LTL"/>
+				<xs:enumeration value="LUF"/>
+				<xs:enumeration value="LVL"/>
+				<xs:enumeration value="LYD"/>
+				<xs:enumeration value="MAD"/>
+				<xs:enumeration value="MDL"/>
+				<xs:enumeration value="MGF"/>
+				<xs:enumeration value="MKD"/>
+				<xs:enumeration value="MMK"/>
+				<xs:enumeration value="MNT"/>
+				<xs:enumeration value="MOP"/>
+				<xs:enumeration value="MRO"/>
+				<xs:enumeration value="MTL"/>
+				<xs:enumeration value="MUR"/>
+				<xs:enumeration value="MVR"/>
+				<xs:enumeration value="MWK"/>
+				<xs:enumeration value="MXN"/>
+				<xs:enumeration value="MYR"/>
+				<xs:enumeration value="MZM"/>
+				<xs:enumeration value="NGN"/>
+				<xs:enumeration value="NIO"/>
+				<xs:enumeration value="NLG"/>
+				<xs:enumeration value="NOK"/>
+				<xs:enumeration value="NPR"/>
+				<xs:enumeration value="NZD"/>
+				<xs:enumeration value="OMR"/>
+				<xs:enumeration value="PAB"/>
+				<xs:enumeration value="PEN"/>
+				<xs:enumeration value="PGK"/>
+				<xs:enumeration value="PHP"/>
+				<xs:enumeration value="PKR"/>
+				<xs:enumeration value="PLN"/>
+				<xs:enumeration value="PTE"/>
+				<xs:enumeration value="PYG"/>
+				<xs:enumeration value="QAR"/>
+				<xs:enumeration value="ROL"/>
+				<xs:enumeration value="RUR"/>
+				<xs:enumeration value="RWF"/>
+				<xs:enumeration value="SAR"/>
+				<xs:enumeration value="SBD"/>
+				<xs:enumeration value="SCR"/>
+				<xs:enumeration value="SDD"/>
+				<xs:enumeration value="SEK"/>
+				<xs:enumeration value="SGD"/>
+				<xs:enumeration value="SHP"/>
+				<xs:enumeration value="SIT"/>
+				<xs:enumeration value="SKK"/>
+				<xs:enumeration value="SLL"/>
+				<xs:enumeration value="SOS"/>
+				<xs:enumeration value="SRG"/>
+				<xs:enumeration value="STD"/>
+				<xs:enumeration value="SVC"/>
+				<xs:enumeration value="SYP"/>
+				<xs:enumeration value="SZL"/>
+				<xs:enumeration value="THB"/>
+				<xs:enumeration value="TJR"/>
+				<xs:enumeration value="TMM"/>
+				<xs:enumeration value="TND"/>
+				<xs:enumeration value="TOP"/>
+				<xs:enumeration value="TPE"/>
+				<xs:enumeration value="TRL"/>
+				<xs:enumeration value="TTD"/>
+				<xs:enumeration value="TWD"/>
+				<xs:enumeration value="TZS"/>
+				<xs:enumeration value="UAH"/>
+				<xs:enumeration value="UGX"/>
+				<xs:enumeration value="USD"/>
+				<xs:enumeration value="UYU"/>
+				<xs:enumeration value="UZS"/>
+				<xs:enumeration value="VEB"/>
+				<xs:enumeration value="VND"/>
+				<xs:enumeration value="VUV"/>
+				<xs:enumeration value="WST"/>
+				<xs:enumeration value="XAF"/>
+				<xs:enumeration value="XCD"/>
+				<xs:enumeration value="XDR"/>
+				<xs:enumeration value="XOF"/>
+				<xs:enumeration value="XPF"/>
+				<xs:enumeration value="XPR"/>
+				<xs:enumeration value="YER"/>
+				<xs:enumeration value="YUM"/>
+				<xs:enumeration value="ZAR"/>
+				<xs:enumeration value="ZMK"/>
+				<xs:enumeration value="ZRN"/>
+				<xs:enumeration value="ZWD"/>
+			</xs:restriction>
+		</xs:simpleType>
+	</xs:element>
+</xs:schema>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/Files/3A4_Simplified_PurchaseOrderRequest.xsd	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- edited with XMLSpy v2006 sp2 U (http://www.altova.com) by michal (jakas) -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+  xmlns="http://www.sws-challenge.org/schemas/rnet/POR" 
+  xmlns:dict="http://www.sws-challenge.org/schemas/rnet/dictionary" 
+  xmlns:core="http://www.sws-challenge.org/schemas/rnet/coreElements" 
+  targetNamespace="http://www.sws-challenge.org/schemas/rnet/POR" 
+  elementFormDefault="qualified" 
+  attributeFormDefault="unqualified"
+  xmlns:sawsdl="http://www.w3.org/2002/ws/sawsdl/spec/sawsdl#" 
+  xmlns:Ontology1="http://www.owl-ontologies.com/sws_challenge.owl">
+	<xs:annotation>
+		<xs:documentation>Authors: Michal Zaremba, Holger Lausen
+$Revision: 1.6 $
+$Date: 2006/04/12 16:32:29 $
+
+This XML Schema has been created on the basis of the RosettaNet specification (http://rosettanet.org/) 
+and is solely intended for the Semantic Web Challenge (http://www.sws-challenge.org/). The Schema has 
+been simplified in several aspect, e.g. all Tax related aspect have been deleted for the saint of simplicity.</xs:documentation>
+	</xs:annotation>
+	<xs:import namespace="http://www.sws-challenge.org/schemas/rnet/dictionary" schemaLocation="3A4_PurchaseOrder_Dictionary.xsd"/>
+	<xs:import namespace="http://www.sws-challenge.org/schemas/rnet/coreElements" schemaLocation="3A4_PurchaseOrder_CoreElements.xsd"/>
+	<xs:element name="Pip3A4PurchaseOrderRequest" sawsdl:modelReference="Ontology1#PurchaseOrderRequest">
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element ref="core:fromRole" />
+				<xs:element ref="PurchaseOrder" sawsdl:modelReference="Ontology1#PurchaseOrder" sawsdl:liftingSchemaMapping="http://localhost:9090/testcase/PurchaseOrderLifting.xq"/>
+				<xs:element ref="core:thisDocumentGenerationDateTime" sawsdl:modelReference="Ontology1#RequestedDateTime" />
+				<xs:element ref="core:thisDocumentIdentifier" sawsdl:modelReference="Ontology1#DocumentIdentifier" />
+				<xs:element ref="core:toRole" />
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="PurchaseOrder">
+		<xs:annotation>
+			<xs:documentation>The collection of business properties that describe a buyer's offer to purchase a quantity of products at an agreed price and schedule.</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element ref="dict:GlobalPurchaseOrderTypeCode" maxOccurs="unbounded"/>
+				<xs:element ref="core:isDropShip"/>
+				<xs:element ref="ProductLineItem" maxOccurs="unbounded"/>
+				<xs:element ref="core:requestedEvent" minOccurs="0"/>
+				<xs:element ref="core:shipTo" minOccurs="0"/>
+				<xs:element ref="core:totalAmount" minOccurs="0"/>
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="ProductLineItem" sawsdl:modelReference="Ontology1#LineItem">
+		<xs:annotation>
+			<xs:documentation>The collection of business properties that describe a business document entry for a product.</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element ref="dict:GlobalProductUnitOfMeasureCode"/>
+				<xs:element ref="core:isDropShip"/>
+				<xs:element ref="core:LineNumber"/>
+				<xs:element ref="OrderQuantity"/>
+				<xs:element ref="core:ProductIdentification"/>
+				<xs:element ref="core:requestedEvent"/>
+				<xs:element ref="core:requestedUnitPrice" minOccurs="0"/>
+				<xs:element ref="core:totalLineItemAmount" minOccurs="0"/>
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="OrderQuantity">
+		<xs:annotation>
+			<xs:documentation>The collection of business properties that describe various types of product quantity used in an ordering process.</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element ref="core:requestedQuantity"/>
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+</xs:schema>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/Files/AcknowledgementOfReceipt.xsd	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.sws-challenge.org/schemas/rnet/ACK" targetNamespace="http://www.sws-challenge.org/schemas/rnet/ACK" elementFormDefault="qualified"
+  xmlns:sawsdl="http://www.w3.org/2002/ws/sawsdl/spec/sawsdl#" 
+  xmlns:Ontology1="http://www.owl-ontologies.com/sws_challenge.owl">
+
+	<xs:annotation>
+		<xs:documentation>Authors: Michal Zaremba, Holger Lausen
+$Revision: 1.1 $
+$Date: 2006/03/06 17:45:10 $
+
+This XML Schema has been created on the basis of the RosettaNet specification (http://rosettanet.org/) 
+and is solely intended for the Semantic Web Challenge (http://www.sws-challenge.org/). </xs:documentation>
+	</xs:annotation>
+	<xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/>
+	<xs:element name="ReceiptAcknowledgment">
+		<xs:annotation>
+			<xs:documentation>Business information returned to a requesting party to verify business document receipt.</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element ref="NonRepudiationInformation" minOccurs="0"/>
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="NonRepudiationInformation">
+		<xs:annotation>
+			<xs:documentation>Information required to support non-repudiation of receipt.</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element ref="OriginalMessageDigest"/>
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="OriginalMessageDigest" sawsdl:modelReference="Ontology1#PurchaseOrderRequest">
+		<xs:annotation>
+			<xs:documentation>The base-64 encoded digest of the entire original mime message received. The digest MUST use the same algorithm as the original signed message.</xs:documentation>
+		</xs:annotation>
+		<xs:complexType mixed="true">
+			<xs:choice minOccurs="0" maxOccurs="unbounded"/>
+		</xs:complexType>
+	</xs:element>
+</xs:schema>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/Files/NewTemplate.sawadl	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,37 @@
+<?xml version="1.0"?> 
+<application targetNamespace="http://wadl.dev.java.net/2009/02" 
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+   xsi:schemaLocation="http://wadl.dev.java.net/2009/02 wadl.xsd" 
+   xmlns:tns="TempforXSD"
+   xmlns:sawadl="http://www.w3.org/2002/ws/sawadl/spec/sawadl#"
+   xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
+   xmlns:Ontology1="http://www.owl-ontologies.com/sws_challenge.owl" 
+   xmlns="http://wadl.dev.java.net/2009/02"> 
+<grammars> 
+     <include 
+       href="3A4_Simplified_PurchaseOrderRequest.xsd" sawadl:modelReference="Ontology1#PurchaseOrderRequest"/> 
+     <include 
+       href="AcknowledgementOfReceipt.xsd" sawadl:modelReference="Ontology1#PurchaseOrderAck"/> 
+</grammars> 
+ 
+<resources base="http://MoonSemanticTemplate.com/"> 
+  <resource path="placeorder" sawadl:modelReference="Ontology1#ResourceCategory"> 
+       <method name="POST" id="order" sawadl:modelReference="Ontology1#PurchaseRequest"> 
+        <sawadl:precondition expression="placeOrder"/>
+         <request sawadl:modelReference="Ontology1#PurchaseOrder"> 
+         	<param name="user" style="query" type="xsd:string" required="true">
+			<doc title="prompt">Min Molecular Weight (Daltons)</doc>
+         	</param>
+         	<param name="cost" style="query" type="xsd:string">
+         	</param>
+         </request> 
+         <sawadl:effect expression="confirmedOrder"/>
+         <response status="200" sawadl:modelReference="Ontology1#PurchaseOrderAck"> 
+           <representation mediaType="application/xml" 
+             element="AcknowledgementofReceipt.xsd"/> 
+ </response> 
+ </method> 
+ </resource> 
+ </resources> 
+ 
+</application>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/Files/NewTemplate.sawadl~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,36 @@
+<?xml version="1.0"?> 
+<application targetNamespace="http://wadl.dev.java.net/2009/02" 
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+   xsi:schemaLocation="http://wadl.dev.java.net/2009/02 wadl.xsd" 
+   xmlns:tns="TempforXSD"
+   xmlns:sawadl="http://www.w3.org/2002/ws/sawadl/spec/sawadl#"
+   xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
+   xmlns:Ontology1="http://www.owl-ontologies.com/sws_challenge.owl" 
+   xmlns="http://wadl.dev.java.net/2009/02"> 
+<grammars> 
+     <include 
+       href="3A4_Simplified_PurchaseOrderRequest.xsd" sawadl:modelReference="Ontology1#PurchaseOrderRequest"/> 
+     <include 
+       href="AcknowledgementOfReceipt.xsd" sawadl:modelReference="Ontology1#PurchaseOrderAck"/> 
+</grammars> 
+ 
+<resources base="http://MoonSemanticTemplate.com/"> 
+  <resource path="placeorder" sawadl:modelReference="Ontology1#ResourceCategory"> 
+       <method name="POST" id="order" sawadl:modelReference="Ontology1#PurchaseRequest"> 
+        <sawadl:precondition expression="placeOrder"/>
+         <request sawadl:modelReference="Ontology1#PurchaseOrder"> 
+         	<param name="user" style="query" type="xsd:string" required="true">
+			<doc title="prompt">Min Molecular Weight (Daltons)</doc>
+         	</param>
+         	<param name="cost" style="query" type="xsd:string">
+         </request> 
+         <sawadl:effect expression="confirmedOrder"/>
+         <response status="200" sawadl:modelReference="Ontology1#PurchaseOrderAck"> 
+           <representation mediaType="application/xml" 
+             element="AcknowledgementofReceipt.xsd"/> 
+ </response> 
+ </method> 
+ </resource> 
+ </resources> 
+ 
+</application>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/Files/NewsSearchResponse.xsd	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+  targetNamespace="urn:yahoo:yn"
+  xmlns="urn:yahoo:yn"
+  elementFormDefault="qualified">
+
+   <xs:element name="ResultSet">
+      <xs:complexType>
+         <xs:sequence>
+            <xs:element name="Result" type="ResultType" minOccurs="0" maxOccurs="50" />
+         </xs:sequence>
+         <xs:attribute name="totalResultsAvailable" type="xs:integer" />
+         <xs:attribute name="totalResultsReturned" type="xs:integer" />
+         <xs:attribute name="firstResultPosition" type="xs:integer" />
+      </xs:complexType>
+   </xs:element>
+
+   <xs:complexType name="ResultType">
+      <xs:sequence>
+         <xs:element name="Title" type="xs:string" />
+         <xs:element name="Summary" type="xs:string" />
+         <xs:element name="Url" type="xs:string" />
+         <xs:element name="ClickUrl" type="xs:string" />
+         <xs:element name="NewsSource" type="xs:string" />
+         <xs:element name="NewsSourceUrl" type="xs:string" />
+         <xs:element name="Language" type="xs:string" />
+         <xs:element name="PublishDate" type="xs:string" />
+         <xs:element name="ModificationDate" type="xs:string" minOccurs="0" />
+         <xs:element name="Thumbnail" type="ImageType" minOccurs="0" />
+      </xs:sequence>
+   </xs:complexType>
+
+   <xs:complexType name="ImageType">
+      <xs:sequence>
+         <xs:element name="Url" type="xs:string" />
+         <xs:element name="Height" type="xs:integer" minOccurs="0" />
+         <xs:element name="Width" type="xs:integer" minOccurs="0" />
+      </xs:sequence>
+   </xs:complexType>
+
+</xs:schema>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/Files/Template.sawadl	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,34 @@
+<?xml version="1.0"?> 
+<application targetNamespace="http://wadl.dev.java.net/2009/02" 
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+   xsi:schemaLocation="http://wadl.dev.java.net/2009/02 wadl.xsd" 
+   xmlns:tns="TempforXSD"
+   xmlns:sawadl="http://www.w3.org/2002/ws/sawadl/spec/sawadl#"
+   xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
+   xmlns:Ontology1="http://www.owl-ontologies.com/sws_challenge.owl" 
+   xmlns="http://wadl.dev.java.net/2009/02"> 
+<grammars> 
+     <include 
+       href="3A4_Simplified_PurchaseOrderRequest.xsd" sawadl:modelReference="Ontology1#PurchaseOrderRequest"/> 
+     <include 
+       href="AcknowledgementOfReceipt.xsd" sawadl:modelReference="Ontology1#PurchaseOrderAck"/> 
+</grammars> 
+ 
+<resources base="http://MoonSemanticTemplate.com/"> 
+  <resource path="placeorder" sawadl:modelReference="Ontology1#ResourceCategory"> 
+       <method name="POST" id="order" sawadl:modelReference="Ontology1#PurchaseRequest"> 
+        <sawadl:precondition expression="placeOrder"/>
+         <request sawadl:modelReference="Ontology1#PurchaseOrder"> 
+         <representation mediaType="application/xml" 
+             element="3A4_Simplified_PurchaseOrderRequest.xsd"/> 
+         </request> 
+         <sawadl:effect expression="confirmedOrder"/>
+         <response status="200" sawadl:modelReference="Ontology1#PurchaseOrderAck"> 
+           <representation mediaType="application/xml" 
+             element="AcknowledgementofReceipt.xsd"/> 
+ </response> 
+ </method> 
+ </resource> 
+ </resources> 
+ 
+</application>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/Files/sample.wadl	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,49 @@
+<?xml version="1.0"?> 
+<application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+ xsi:schemaLocation="http://wadl.dev.java.net/2009/02 wadl.xsd" 
+   xmlns:tns="urn:yahoo:yn" 
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
+   xmlns:yn="urn:yahoo:yn" 
+   xmlns:ya="urn:yahoo:api" 
+   xmlns="http://wadl.dev.java.net/2009/02"> 
+    <grammars> 
+     <include 
+       href="NewsSearchResponse.xsd"/> 
+     <include 
+       href="3A4_Simplified_PurchaseOrderRequest.xsd"/> 
+   </grammars> 
+ 
+   <resources base="http://api.search.yahoo.com/NewsSearchService/V1/"> 
+     <resource path="newsSearch"> 
+       <method name="GET" id="search"> 
+         <request> 
+           <param name="appid" type="xsd:string" 
+             style="query" required="true"/> 
+           <param name="query" type="xsd:string" 
+             style="query" required="true"/> 
+           <param name="type" style="query" default="all"> 
+             <option value="all"/> 
+             <option value="any"/> 
+             <option value="phrase"/> 
+           </param> 
+           <param name="results" style="query" type="xsd:int" default="10"/> 
+           <param name="start" style="query" type="xsd:int" default="1"/> 
+           <param name="sort" style="query" default="rank"> 
+             <option value="rank"/> 
+             <option value="date"/> 
+           </param> 
+           <param name="language" style="query" type="xsd:string"/> 
+         </request> 
+         <response status="200"> 
+           <representation mediaType="application/xml" 
+             element="yn:ResultSet"/> 
+         </response> 
+         <response status="400"> 
+           <representation mediaType="application/xml" 
+             element="3A4_Simplified_PurchaseOrderRequest.xsd"/> 
+         </response> 
+       </method> 
+     </resource> 
+   </resources> 
+ 
+</application>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/Files/xml.xsd	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,146 @@
+<?xml version='1.0'?>
+<xs:schema targetNamespace="http://www.w3.org/XML/1998/namespace" xmlns:xs="http://www.w3.org/2001/XMLSchema" xml:lang="en">
+
+ <xs:annotation>
+  <xs:documentation>
+   See http://www.w3.org/XML/1998/namespace.html and
+   http://www.w3.org/TR/REC-xml for information about this namespace.
+
+    This schema document describes the XML namespace, in a form
+    suitable for import by other schema documents.  
+
+    Note that local names in this namespace are intended to be defined
+    only by the World Wide Web Consortium or its subgroups.  The
+    following names are currently defined in this namespace and should
+    not be used with conflicting semantics by any Working Group,
+    specification, or document instance:
+
+    base (as an attribute name): denotes an attribute whose value
+         provides a URI to be used as the base for interpreting any
+         relative URIs in the scope of the element on which it
+         appears; its value is inherited.  This name is reserved
+         by virtue of its definition in the XML Base specification.
+
+    id   (as an attribute name): denotes an attribute whose value
+         should be interpreted as if declared to be of type ID.
+         The xml:id specification is not yet a W3C Recommendation,
+         but this attribute is included here to facilitate experimentation
+         with the mechanisms it proposes.  Note that it is _not_ included
+         in the specialAttrs attribute group.
+
+    lang (as an attribute name): denotes an attribute whose value
+         is a language code for the natural language of the content of
+         any element; its value is inherited.  This name is reserved
+         by virtue of its definition in the XML specification.
+  
+    space (as an attribute name): denotes an attribute whose
+         value is a keyword indicating what whitespace processing
+         discipline is intended for the content of the element; its
+         value is inherited.  This name is reserved by virtue of its
+         definition in the XML specification.
+
+    Father (in any context at all): denotes Jon Bosak, the chair of 
+         the original XML Working Group.  This name is reserved by 
+         the following decision of the W3C XML Plenary and 
+         XML Coordination groups:
+
+             In appreciation for his vision, leadership and dedication
+             the W3C XML Plenary on this 10th day of February, 2000
+             reserves for Jon Bosak in perpetuity the XML name
+             xml:Father
+  </xs:documentation>
+ </xs:annotation>
+
+ <xs:annotation>
+  <xs:documentation>This schema defines attributes and an attribute group
+        suitable for use by
+        schemas wishing to allow xml:base, xml:lang, xml:space or xml:id
+        attributes on elements they define.
+
+        To enable this, such a schema must import this schema
+        for the XML namespace, e.g. as follows:
+        &lt;schema . . .>
+         . . .
+         &lt;import namespace="http://www.w3.org/XML/1998/namespace"
+                    schemaLocation="http://www.w3.org/2001/xml.xsd"/>
+
+        Subsequently, qualified reference to any of the attributes
+        or the group defined below will have the desired effect, e.g.
+
+        &lt;type . . .>
+         . . .
+         &lt;attributeGroup ref="xml:specialAttrs"/>
+ 
+         will define a type which will schema-validate an instance
+         element with any of those attributes</xs:documentation>
+ </xs:annotation>
+
+ <xs:annotation>
+  <xs:documentation>In keeping with the XML Schema WG's standard versioning
+   policy, this schema document will persist at
+   http://www.w3.org/2005/08/xml.xsd.
+   At the date of issue it can also be found at
+   http://www.w3.org/2001/xml.xsd.
+   The schema document at that URI may however change in the future,
+   in order to remain compatible with the latest version of XML Schema
+   itself, or with the XML namespace itself.  In other words, if the XML
+   Schema or XML namespaces change, the version of this document at
+   http://www.w3.org/2001/xml.xsd will change
+   accordingly; the version at
+   http://www.w3.org/2005/08/xml.xsd will not change.
+  </xs:documentation>
+ </xs:annotation>
+
+ <xs:attribute name="lang">
+  <xs:annotation>
+   <xs:documentation>Attempting to install the relevant ISO 2- and 3-letter
+         codes as the enumerated possible values is probably never
+         going to be a realistic possibility.  See
+         RFC 3066 at http://www.ietf.org/rfc/rfc3066.txt and the IANA registry
+         at http://www.iana.org/assignments/lang-tag-apps.htm for
+         further information.
+
+         The union allows for the 'un-declaration' of xml:lang with
+         the empty string.</xs:documentation>
+  </xs:annotation>
+  <xs:simpleType>
+   <xs:union memberTypes="xs:language">
+    <xs:simpleType>    
+     <xs:restriction base="xs:string">
+      <xs:enumeration value=""/>
+     </xs:restriction>
+    </xs:simpleType>
+   </xs:union>
+  </xs:simpleType>
+ </xs:attribute>
+
+ <xs:attribute name="space">
+  <xs:simpleType>
+   <xs:restriction base="xs:NCName">
+    <xs:enumeration value="default"/>
+    <xs:enumeration value="preserve"/>
+   </xs:restriction>
+  </xs:simpleType>
+ </xs:attribute>
+
+ <xs:attribute name="base" type="xs:anyURI">
+  <xs:annotation>
+   <xs:documentation>See http://www.w3.org/TR/xmlbase/ for
+                     information about this attribute.</xs:documentation>
+  </xs:annotation>
+ </xs:attribute>
+ 
+ <xs:attribute name="id" type="xs:ID">
+  <xs:annotation>
+   <xs:documentation>See http://www.w3.org/TR/xml-id/ for
+                     information about this attribute.</xs:documentation>
+  </xs:annotation>
+ </xs:attribute>
+
+ <xs:attributeGroup name="specialAttrs">
+  <xs:attribute ref="xml:base"/>
+  <xs:attribute ref="xml:lang"/>
+  <xs:attribute ref="xml:space"/>
+ </xs:attributeGroup>
+
+</xs:schema>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/.classpath	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path=""/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="output" path=""/>
+</classpath>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/.project	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>SAWADALParser</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/Parser.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/ApplicationImpl.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/Constants$SemanticExtensionType.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/Constants.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/GrammarsImpl.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/IncludeImpl.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/MethodImpl.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/ModelReferenceImpl.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/OperationAddOnImpl.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/ParamImpl.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/ParamsImpl.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/RequestImpl.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/ResourceImpl.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/ResponseImpl.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/SAWADLParserDriver.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/extensions/schema/SchemaConstants.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/extensions/schema/SchemaDeserializer.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/extensions/schema/SchemaImpl.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/extensions/schema/SchemaImportImpl.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/extensions/schema/SchemaReferenceImpl.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/extensions/schema/SchemaSerializer.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/factory/WADLFactoryImpl.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/util/IOUtils.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/util/ObjectRegistry.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/util/SchemaUtils.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/util/StringUtils.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/util/xml/DOM2Writer.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/util/xml/DOMUtils.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/util/xml/QNameUtils.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/util/xml/XPathUtils.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/xml/WADLReaderImpl.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/edu/uga/cs/lsdis/meteors/wadls/xml/WADLWriterImpl.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/Application.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/Effect.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/Grammars.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/Include.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/Method.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/ModelReference.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/ModelReferenceExtensible.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/Param.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/Params.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/PreCondition.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/Request.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/Resource.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/Response.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/WADLSException.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/extensions/AttributeExtensible.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/extensions/ElementExtensible.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/extensions/ExtensibilityElement.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/extensions/ExtensionDeserializer.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/extensions/ExtensionRegistry.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/extensions/ExtensionSerializer.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/extensions/UnknownExtensibilityElement.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/extensions/UnknownExtensionDeserializer.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/extensions/UnknownExtensionSerializer.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/extensions/schema/Schema.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/extensions/schema/SchemaImport.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/extensions/schema/SchemaReference.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/factory/WADLFactory.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/xml/WADLLocator.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/xml/WADLReader.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/wadls/xml/WADLWriter.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/bin/javax/xml/namespace/QName.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/euPathWADL/GenesByMolecularWeight.sawadl	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,169 @@
+<?xml version="1.0"?> 
+<application targetNamespace="http://wadl.dev.java.net/2009/02" 
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+   xsi:schemaLocation="http://wadl.dev.java.net/2009/02 wadl.xsd"
+   xmlns:sawadl="http://www.w3.org/2002/ws/sawadl/spec/sawadl#"
+   xmlns:euPathOntology="http://www.owl-ontologies.com/sws_euPathOntology.owl"
+   xmlns="http://wadl.dev.java.net/2009/02" >
+<resources base="http://eupathdb.org/webservices/GeneQuestions/">
+		<resource path="GenesByMolecularWeight.xml" sawadl:modelReference="euPathOntology#GeneQuestions">
+<method name="POST" id="genesbymolecularweight" sawadl:modelReference="euPathOntology#Genesbymolecularweight">
+	<doc title="display_name">Molecular Weight</doc>
+	<doc title="summary">
+	Find genes whose unmodified protein product has a molecular weight in a range that you specify.
+	</doc>
+	<doc title="description">
+	Find genes whose unmodified protein product has a molecular weight in a range that you specify.
+	Molecular weights are machine calculated from the raw translation and does not take into account any protein or residue modifications. For translations 	containing ambiguous amino acid codes (B, Z, X) we calculate the average of the upper and lower bound of the molecular weight.
+	</doc>
+
+<request>
+<param name="organism" style="query" type="xsd:string" required="true" sawadl:modelReference="euPathOntology#Organism">
+<doc title="prompt">Organism</doc>
+<doc title="help">Organism</doc>
+<doc title="default">
+Entamoeba dispar,Entamoeba histolytica,Entamoeba invadens,Cryptosporidium parvum,Cryptosporidium hominis,Cryptosporidium muris,Giardia Assemblage A 		isolate WB,Giardia Assemblage B isolate GS,Giardia Assemblage E isolate P15,Encephalitozoon cuniculi,Encephalitozoon intestinalis,Plasmodium 		falciparum,Plasmodium vivax,Plasmodium yoelii,Plasmodium berghei,Plasmodium chabaudi,Plasmodium knowlesi,Toxoplasma gondii,Neospora 		caninum,Trichomonas vaginalis,Trypanosoma cruzi,Leishmania braziliensis,Leishmania infantum,Leishmania major,Leishmania mexicana,Trypanosoma brucei,Trypanosoma congolense,Trypanosoma vivax
+p	</doc>
+<doc title="MultiValued">
+Provide one or more values. Use comma as a delimter.
+</doc>
+<option value="Entamoeba dispar">
+<doc title="description">Entamoeba dispar</doc>
+</option>
+
+<option value="Entamoeba histolytica">
+<doc title="description">Entamoeba histolytica</doc>
+</option>
+
+<option value="Entamoeba invadens">
+<doc title="description">Entamoeba invadens</doc>
+</option>
+
+<option value="Cryptosporidium parvum">
+<doc title="description">Cryptosporidium parvum</doc>
+</option>
+
+<option value="Cryptosporidium hominis">
+<doc title="description">Cryptosporidium hominis</doc>
+</option>
+
+<option value="Cryptosporidium muris">
+<doc title="description">Cryptosporidium muris</doc>
+</option>
+
+<option value="Giardia Assemblage A isolate WB">
+<doc title="description">Giardia Assemblage A isolate WB</doc>
+</option>
+
+<option value="Giardia Assemblage B isolate GS">
+<doc title="description">Giardia Assemblage B isolate GS</doc>
+</option>
+
+<option value="Giardia Assemblage E isolate P15">
+<doc title="description">Giardia Assemblage E isolate P15</doc>
+</option>
+
+<option value="Encephalitozoon cuniculi">
+<doc title="description">Encephalitozoon cuniculi</doc>
+</option>
+
+<option value="Encephalitozoon intestinalis">
+<doc title="description">Encephalitozoon intestinalis</doc>
+</option>
+
+<option value="Plasmodium falciparum">
+<doc title="description">Plasmodium falciparum</doc>
+</option>
+
+<option value="Plasmodium vivax">
+<doc title="description">Plasmodium vivax</doc>
+</option>
+
+<option value="Plasmodium yoelii">
+<doc title="description">Plasmodium yoelii</doc>
+</option>
+
+<option value="Plasmodium berghei">
+<doc title="description">Plasmodium berghei</doc>
+</option>
+
+<option value="Plasmodium chabaudi">
+<doc title="description">Plasmodium chabaudi</doc>
+</option>
+
+<option value="Plasmodium knowlesi">
+<doc title="description">Plasmodium knowlesi</doc>
+</option>
+
+<option value="Toxoplasma gondii">
+<doc title="description">Toxoplasma gondii</doc>
+</option>
+
+<option value="Neospora caninum">
+<doc title="description">Neospora caninum</doc>
+</option>
+
+<option value="Trichomonas vaginalis">
+<doc title="description">Trichomonas vaginalis</doc>
+</option>
+
+<option value="Trypanosoma cruzi">
+<doc title="description">Trypanosoma cruzi</doc>
+</option>
+
+<option value="Leishmania braziliensis">
+<doc title="description">Leishmania braziliensis</doc>
+</option>
+
+<option value="Leishmania infantum">
+<doc title="description">Leishmania infantum</doc>
+</option>
+
+<option value="Leishmania major">
+<doc title="description">Leishmania major</doc>
+</option>
+
+<option value="Leishmania mexicana">
+<doc title="description">Leishmania mexicana</doc>
+</option>
+
+<option value="Trypanosoma brucei">
+<doc title="description">Trypanosoma brucei</doc>
+</option>
+
+<option value="Trypanosoma congolense">
+<doc title="description">Trypanosoma congolense</doc>
+</option>
+
+<option value="Trypanosoma vivax">
+<doc title="description">Trypanosoma vivax</doc>
+</option>
+</param>
+
+<param name="min_molecular_weight" style="query" type="xsd:string" required="true" sawadl:modelReference="euPathOntology#MolecularWeight">
+<doc title="prompt">Min Molecular Weight (Daltons)</doc>
+<doc title="help">Lower bound for the protein molecular weight</doc>
+<doc title="default">10000</doc>
+</param>
+
+<param name="max_molecular_weight" style="query" type="xsd:string" required="true" sawadl:modelReference="euPathOntology#MolecularWeight">
+<doc title="prompt">Max Molecular Weight (Daltons)</doc>
+<doc title="help">Upper bound for the protein molecular weight</doc>
+<doc title="default">50000</doc>
+</param>
+<param name="o-fields" style="query" type="xsd:string" required="false" default="none" sawadl:modelReference="euPathOntology#OFields">
+</param>
+<param name="o-tables" style="query" type="xsd:string" required="false" default="none" sawadl:modelReference="euPathOntology#OTables">
+</param>
+
+
+</request>
+
+<response>
+<representation mediaType="text/xml" sawadl:modelReference="euPathOntology#ListOfGenes"/>
+<representation mediaType="text/plain" sawadl:modelReference="euPathOntology#ListOfGenes"/>
+</response>
+</method>
+</resource>
+</resources>
+</application>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/euPathWADL/GenesByMolecularWeight.sawadl~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,169 @@
+<?xml version="1.0"?> 
+<application targetNamespace="http://wadl.dev.java.net/2009/02" 
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+   xsi:schemaLocation="http://wadl.dev.java.net/2009/02 wadl.xsd"
+   xmlns:sawadl="http://www.w3.org/2002/ws/sawadl/spec/sawadl#"
+   xmlns:euPathOntology="http://www.owl-ontologies.com/sws_euPathOntology.owl"
+   xmlns="http://wadl.dev.java.net/2009/02" >
+<resources base="http://eupathdb.org/webservices/GeneQuestions/">
+		<resource path="GenesByMolecularWeight.xml" sawadl:modelReference="euPathOntology#GeneQuestions">
+<method name="POST" id="genesbymolecularweight" sawadl:modelReference="euPathOntology#Genesbymolecularweight">
+	<doc title="display_name">Molecular Weight</doc>
+	<doc title="summary">
+	Find genes whose unmodified protein product has a molecular weight in a range that you specify.
+	</doc>
+	<doc title="description">
+	Find genes whose unmodified protein product has a molecular weight in a range that you specify.
+	Molecular weights are machine calculated from the raw translation and does not take into account any protein or residue modifications. For translations 	containing ambiguous amino acid codes (B, Z, X) we calculate the average of the upper and lower bound of the molecular weight.
+	</doc>
+
+<request>
+<param name="organism" style="query" type="xsd:string" required="true" sawadl:modelReference="euPathOntology#Organism">
+<doc title="prompt">Organism</doc>
+<doc title="help">Organism</doc>
+<doc title="default">
+Entamoeba dispar,Entamoeba histolytica,Entamoeba invadens,Cryptosporidium parvum,Cryptosporidium hominis,Cryptosporidium muris,Giardia Assemblage A 		isolate WB,Giardia Assemblage B isolate GS,Giardia Assemblage E isolate P15,Encephalitozoon cuniculi,Encephalitozoon intestinalis,Plasmodium 		falciparum,Plasmodium vivax,Plasmodium yoelii,Plasmodium berghei,Plasmodium chabaudi,Plasmodium knowlesi,Toxoplasma gondii,Neospora 		caninum,Trichomonas vaginalis,Trypanosoma cruzi,Leishmania braziliensis,Leishmania infantum,Leishmania major,Leishmania mexicana,Trypanosoma brucei,Trypanosoma congolense,Trypanosoma vivax
+p	</doc>
+<doc title="MultiValued">
+Provide one or more values. Use comma as a delimter.
+</doc>
+<option value="Entamoeba dispar">
+<doc title="description">Entamoeba dispar</doc>
+</option>
+
+<option value="Entamoeba histolytica">
+<doc title="description">Entamoeba histolytica</doc>
+</option>
+
+<option value="Entamoeba invadens">
+<doc title="description">Entamoeba invadens</doc>
+</option>
+
+<option value="Cryptosporidium parvum">
+<doc title="description">Cryptosporidium parvum</doc>
+</option>
+
+<option value="Cryptosporidium hominis">
+<doc title="description">Cryptosporidium hominis</doc>
+</option>
+
+<option value="Cryptosporidium muris">
+<doc title="description">Cryptosporidium muris</doc>
+</option>
+
+<option value="Giardia Assemblage A isolate WB">
+<doc title="description">Giardia Assemblage A isolate WB</doc>
+</option>
+
+<option value="Giardia Assemblage B isolate GS">
+<doc title="description">Giardia Assemblage B isolate GS</doc>
+</option>
+
+<option value="Giardia Assemblage E isolate P15">
+<doc title="description">Giardia Assemblage E isolate P15</doc>
+</option>
+
+<option value="Encephalitozoon cuniculi">
+<doc title="description">Encephalitozoon cuniculi</doc>
+</option>
+
+<option value="Encephalitozoon intestinalis">
+<doc title="description">Encephalitozoon intestinalis</doc>
+</option>
+
+<option value="Plasmodium falciparum">
+<doc title="description">Plasmodium falciparum</doc>
+</option>
+
+<option value="Plasmodium vivax">
+<doc title="description">Plasmodium vivax</doc>
+</option>
+
+<option value="Plasmodium yoelii">
+<doc title="description">Plasmodium yoelii</doc>
+</option>
+
+<option value="Plasmodium berghei">
+<doc title="description">Plasmodium berghei</doc>
+</option>
+
+<option value="Plasmodium chabaudi">
+<doc title="description">Plasmodium chabaudi</doc>
+</option>
+
+<option value="Plasmodium knowlesi">
+<doc title="description">Plasmodium knowlesi</doc>
+</option>
+
+<option value="Toxoplasma gondii">
+<doc title="description">Toxoplasma gondii</doc>
+</option>
+
+<option value="Neospora caninum">
+<doc title="description">Neospora caninum</doc>
+</option>
+
+<option value="Trichomonas vaginalis">
+<doc title="description">Trichomonas vaginalis</doc>
+</option>
+
+<option value="Trypanosoma cruzi">
+<doc title="description">Trypanosoma cruzi</doc>
+</option>
+
+<option value="Leishmania braziliensis">
+<doc title="description">Leishmania braziliensis</doc>
+</option>
+
+<option value="Leishmania infantum">
+<doc title="description">Leishmania infantum</doc>
+</option>
+
+<option value="Leishmania major">
+<doc title="description">Leishmania major</doc>
+</option>
+
+<option value="Leishmania mexicana">
+<doc title="description">Leishmania mexicana</doc>
+</option>
+
+<option value="Trypanosoma brucei">
+<doc title="description">Trypanosoma brucei</doc>
+</option>
+
+<option value="Trypanosoma congolense">
+<doc title="description">Trypanosoma congolense</doc>
+</option>
+
+<option value="Trypanosoma vivax">
+<doc title="description">Trypanosoma vivax</doc>
+</option>
+</param>
+
+<param name="min_molecular_weight" style="query" type="xsd:string" required="true" sawadl:modelReference="euPathOntology#MolecularWeight">
+<doc title="prompt">Min Molecular Weight (Daltons)</doc>
+<doc title="help">Lower bound for the protein molecular weight</doc>
+<doc title="default">10000</doc>
+</param>
+
+<param name="max_molecular_weight" style="query" type="xsd:string" required="true" sawadl:modelReference="euPathOntology#MolecularWeight">
+<doc title="prompt">Max Molecular Weight (Daltons)</doc>
+<doc title="help">Upper bound for the protein molecular weight</doc>
+<doc title="default">50000</doc>
+</param>
+<param name="o-fields" style="query" type="xsd:string" required="false" default="none" sawadl:modelReference="euPathOntology#MolecularWeight">
+</param>
+<param name="o-tables" style="query" type="xsd:string" required="false" default="none">
+</param>
+
+
+</request>
+
+<response>
+<representation mediaType="text/xml" sawadl:modelReference="euPathOntology#ListOfGenes"/>
+<representation mediaType="text/plain" sawadl:modelReference="euPathOntology#ListOfGenes"/>
+</response>
+</method>
+</resource>
+</resources>
+</application>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/.classpath	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path=""/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="output" path=""/>
+</classpath>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/.project	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>SAWADALParser</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/Parser.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/Parser.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,47 @@
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Vector;
+
+import javax.wadls.Application;
+import javax.wadls.Method;
+import javax.wadls.Param;
+import javax.wadls.Request;
+import javax.wadls.Resource;
+import javax.wadls.WADLSException;
+import javax.wadls.factory.WADLFactory;
+import javax.wadls.xml.WADLReader;
+import javax.xml.namespace.QName;
+
+import edu.uga.cs.lsdis.meteors.wadls.Constants;
+import edu.uga.cs.lsdis.meteors.wadls.ParamImpl;
+import edu.uga.cs.lsdis.meteors.wadls.SAWADLParserDriver;
+
+
+public class Parser {
+
+	
+	public static void main(String[] args){
+		
+//		//String consumerWADLS="http://localhost:9090/testcase2/Template.sawadl";
+//		String consumerWADLS="/home/ganjoo/parser/SAWADLParser/Files/Template.sawadl";
+//		WADLReader wadlReader;
+//		try {
+//			wadlReader = WADLFactory.newInstance().newWADLReader();
+//			wadlReader.setFeature(Constants.FEATURE_PARSE_SAWADL,true);
+//			//wadlReader.setExtensionRegistry(new PopulatedExtensionRegistry());
+//			Application app  = wadlReader.readWADL(consumerWADLS);
+//			
+			SAWADLParserDriver spd = new SAWADLParserDriver();
+			//String fileURL = "/home/ganjoo/parser/SAWADLParser/Files/sample.wadl";
+			String fileURL = "/home/ganjoo/parser/SAWADLParser/euPathWADL/GenesByMolecularWeight.sawadl";
+			try {
+				spd.parse(fileURL);
+			} catch (Exception e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			}
+			
+			
+		}
+	}
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/ApplicationImpl.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/ApplicationImpl.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,606 @@
+/*
+ * (c) Copyright IBM Corp 2001, 2005 
+ */
+
+package edu.uga.cs.lsdis.meteors.wadls;
+
+import java.net.URI;
+import java.util.*;
+
+import javax.wadls.*;
+import javax.wadls.extensions.*;
+import javax.wadls.extensions.ExtensionRegistry;
+import javax.xml.namespace.*;
+import org.w3c.dom.*;
+
+/**
+ * This class represents a WSDLS definition.
+ *
+ * @author Zixin Wu (wuzixin@uga.edu)
+ * @author Paul Fremantle
+ * @author Nirmal Mukhi
+ * @author Matthew J. Duftler
+ * @author namelessNerd
+ */
+public class ApplicationImpl implements Application
+{
+  protected String documentBaseURI = null;
+  protected QName name = null;
+  protected String targetNamespace = null;
+  protected Map namespaces = new HashMap();
+  protected Map includes = new HashMap();
+  protected Params params = null;
+  protected Grammars grammars = null;
+  protected Map resources = new HashMap();
+  protected Element docEl = null;
+  protected String resourcespath=null;
+  protected List extElements = new Vector();
+  
+  // added by namelessNerd
+  protected List modelReferenceList= new ArrayList();
+  protected List ontologyNamespaces= new ArrayList();
+  // end namelessNerd additions
+  
+  protected ExtensionRegistry extReg = null;
+
+  public static final long serialVersionUID = 1;
+
+  	/**
+  	 * Get all the Parts which has a modelReference with the specified namespace and concept.
+  	 * @param namespace The namespace of the modelReference
+  	 * @param concept The concept of the modelReference
+  	 * @return All the Parts which has a modelReference with the specified namespace and concept.
+  	 */
+
+  	/**
+  	 * Get all the Operations which has a modelReference with the specified namespace and concept.
+  	 * @param namespace The namespace of the modelReference
+  	 * @param concept The concept of the modelReference
+  	 * @return All the Operations which has a modelReference with the specified namespace and concept.
+  	 */
+  	public List getMethodsByModelReference(URI namespace, String concept){
+		//TODO not implemented yet.
+		return null;
+	}
+  	
+
+  	/**
+  	 * Get all the XSD Elements which has a modelReference with the specified namespace and concept.
+  	 * @param namespace The namespace of the modelReference
+  	 * @param concept The concept of the modelReference
+  	 * @return All the XSD Elements which has a modelReference with the specified namespace and concept.
+  	 */
+  	public List getXSDElementsByModelReference(URI namespace, String concept){
+		//TODO not implemented yet.
+		return null;
+	}
+
+  	/**
+  	 * Get all the XSD ComplexTypes which has a modelReference with the specified namespace and concept.
+  	 * @param namespace The namespace of the modelReference
+  	 * @param concept The concept of the modelReference
+  	 * @return All the XSD ComplexTypes which has a modelReference with the specified namespace and concept.
+  	 */
+  	public List getXSDComplexTypeByModelReference(URI namespace, String concept){
+		//TODO not implemented yet.
+		return null;
+	}
+
+
+  /**
+   * Set the document base URI of this definition. Can be used to
+   * represent the origin of the Definition, and can be exploited
+   * when resolving relative URIs (e.g. in &lt;import&gt;s).
+   *
+   * @param documentBaseURI the document base URI of this definition
+   */
+  
+  /**
+   * Create a new modelReference.
+   *
+   * @return the newly created modelReference.
+   */
+  public ModelReference createModelReference(){
+	  return new ModelReferenceImpl();
+  }
+
+
+
+  /**
+   * Create a new precondition.
+   *
+   * @return the newly created precondition
+   */
+  public PreCondition createPreCondition(){
+  	return new OperationAddOnImpl();
+  }
+
+  /**
+   * Create a new effect.
+   *
+   * @return the newly created effect
+   */
+  public Effect createEffect(){
+  	return new OperationAddOnImpl();
+  }
+  
+  public void setDocumentBaseURI(String documentBaseURI)
+  {
+    this.documentBaseURI = documentBaseURI;
+  }
+
+  
+  /**
+   * Get the document base URI of this definition.
+   *
+   * @return the document base URI
+   */
+  public String getDocumentBaseURI()
+  {
+    return documentBaseURI;
+  }
+  
+  public void setResourcesPath(String resourcespath)
+  {
+     this.resourcespath = resourcespath;
+  }
+
+  
+  /**
+   * Get the document base URI of this definition.
+   *
+   * @return the document base URI
+   */
+  public String getResourcesPath()
+  {
+    return resourcespath;
+  }
+
+  /**
+   * Set the name of this definition.
+   *
+   * @param name the desired name
+   */
+  public void setQName(QName name)
+  {
+    this.name = name;
+  }
+
+  /**
+   * Get the name of this definition.
+   *
+   * @return the definition name
+   */
+  public QName getQName()
+  {
+    return name;
+  }
+
+  /**
+   * Set the target namespace in which WSDL elements are defined.
+   *
+   * @param targetNamespace the target namespace
+   */
+  public void setTargetNamespace(String targetNamespace)
+  {
+    this.targetNamespace = targetNamespace;
+  }
+
+  /**
+   * Get the target namespace in which the WSDL elements
+   * are defined.
+   *
+   * @return the target namespace
+   */
+  public String getTargetNamespace()
+  {
+    return targetNamespace;
+  }
+  
+  /**
+   * Get the target namespace in which the WSDL elements
+   * are defined.
+   *
+   * @return the target namespace
+   */
+  public List getAllModelReference()
+  {
+	// grabModel
+    return modelReferenceList;
+  }
+
+  /**
+   * This is a way to add a namespace association to a definition.
+   * It is similar to adding a namespace prefix declaration to the
+   * top of a &lt;wsdl:definition&gt; element. This has nothing to do
+   * with the &lt;wsdl:import&gt; element; there are separate methods for
+   * dealing with information described by &lt;wsdl:import&gt; elements.
+   *
+   * @param prefix the prefix to use for this namespace (when
+   * rendering this information as XML). Use null or an empty string
+   * to describe the default namespace (i.e. xmlns="...").
+   * @param namespaceURI the namespace URI to associate the prefix
+   * with. If you use null, the namespace association will be removed.
+   */
+   public void addNamespace(String prefix, String namespaceURI)
+   {
+     if (prefix == null)
+     {
+       prefix = "";
+     }
+
+     if (namespaceURI != null)
+     {
+       namespaces.put(prefix, namespaceURI);
+     }
+     else
+     {
+       namespaces.remove(prefix);
+     }
+   }
+
+   /**
+    * Get the namespace URI associated with this prefix. Or null if
+    * there is no namespace URI associated with this prefix. This is
+    * unrelated to the &lt;wsdl:import&gt; element.
+    *
+    * @see #addNamespace(String, String)
+    * @see #getPrefix(String)
+    */
+   public String getNamespace(String prefix)
+   {
+     if (prefix == null)
+     {
+       prefix = "";
+     }
+
+     return (String)namespaces.get(prefix);
+   }
+
+   /**
+    * Get a prefix associated with this namespace URI. Or null if
+    * there are no prefixes associated with this namespace URI. This is
+    * unrelated to the &lt;wsdl:import&gt; element.
+    *
+    * @see #addNamespace(String, String)
+    * @see #getNamespace(String)
+    */
+   public String getPrefix(String namespaceURI)
+   {
+     if (namespaceURI == null)
+     {
+       return null;
+     }
+
+     Iterator entryIterator = namespaces.entrySet().iterator();
+
+     while (entryIterator.hasNext())
+     {
+       Map.Entry entry = (Map.Entry)entryIterator.next();
+       String prefix = (String)entry.getKey();
+       String assocNamespaceURI = (String)entry.getValue();
+
+       if (namespaceURI.equals(assocNamespaceURI))
+       {
+         return prefix;
+       }
+     }
+
+     return null;
+   }
+
+   /**
+    * Get all namespace associations in this definition. The keys are
+    * the prefixes, and the namespace URIs are the values. This is
+    * unrelated to the &lt;wsdl:import&gt; element.
+    *
+    * @see #addNamespace(String, String)
+    */
+   public Map getNamespaces()
+   {
+     return namespaces;
+   }
+
+  /**
+   * Set the types section.
+   */
+  public void setParams(Params params)
+  {
+    this.params = params;
+  }
+
+  public void setGrammars(Grammars grammars)
+  {
+    this.grammars = grammars;
+  }
+  /**
+   * Get the types section.
+   *
+   * @return the types section
+   */
+  public Params getParams()
+  {
+    return params;
+  }
+  
+  public Grammars getGrammars()
+  {
+    return grammars;
+  }
+
+  /**
+   * Add an import to this WADL description.
+   *
+   * @param importDef the import to be added
+   */
+  public void addInclude(Include includeApp)
+  {
+    String namespaceURI = includeApp.getNamespaceURI();
+    List includeList = (List)includes.get(namespaceURI);
+
+    if (includeList == null)
+    {
+      includeList = new Vector();
+
+      includes.put(namespaceURI, includeList);
+    }
+
+    includeList.add(includeApp);
+  }
+
+  /**
+   * Get the list of imports for the specified namespaceURI.
+   *
+   * @param namespaceURI the namespaceURI associated with the
+   * desired imports.
+   * @return a list of the corresponding imports, or null if
+   * there weren't any matching imports
+   */
+  public List getIncludes(String namespaceURI)
+  {
+    return (List)includes.get(namespaceURI);
+  }
+
+  /**
+   * Get a map of lists containing all the imports defined here.
+   * The map's keys are the namespaceURIs, and the map's values
+   * are lists. There is one list for each namespaceURI for which
+   * imports have been defined.
+   */
+  public Map getIncludes()
+  {
+    return includes;
+  }
+
+
+  /**
+   * Add a portType to this WSDL description.
+   *
+   * @param portType the portType to be added
+   */
+  public void addResource(Resource portType)
+  {
+    resources.put(portType.getQName(), portType);
+    
+  }
+
+  /**
+   * Get the specified portType. Also checks imported documents.
+   *
+   * @param name the name of the desired portType.
+   * @return the corresponding portType, or null if there wasn't
+   * any matching portType
+   */
+  public Resource getResource(QName name)
+  {
+	  Resource resource = (Resource)resources.get(name);
+
+    if (resource == null && name != null)
+    {
+    	resource = (Resource)getFromIncludes(Constants.ELEM_RESOURCE, name);
+    }
+
+    return resource;
+  }
+
+  /**
+   * Remove the specified portType from this definition.
+   *
+   * @param name the name of the portType to remove
+   * @return the portType previously associated with this qname, if there
+   * was one; may return null
+   */
+  public Resource removeResource(QName name)
+  {
+    return (Resource)resources.remove(name);
+  }
+
+  /**
+   * Get all the portTypes defined here.
+   */
+  public Map getResources()
+  {
+    return resources;
+  }
+
+
+  /**
+   * Set the documentation element for this document. This dependency
+   * on org.w3c.dom.Element should eventually be removed when a more
+   * appropriate way of representing this information is employed.
+   *
+   * @param docEl the documentation element
+   */
+  public void setDocumentationElement(Element docEl)
+  {
+    this.docEl = docEl;
+  }
+
+  /**
+   * Get the documentation element. This dependency on org.w3c.dom.Element
+   * should eventually be removed when a more appropriate way of
+   * representing this information is employed.
+   *
+   * @return the documentation element
+   */
+  public Element getDocumentationElement()
+  {
+    return docEl;
+  }
+
+  /**
+   * Get all the extensibility elements defined here.
+   */
+  public List getExtensibilityElements()
+  {
+    return extElements;
+  }
+
+
+  /**
+   * Create a new import.
+   *
+   * @return the newly created import
+   */
+  public Include createInclude()
+  {
+    return new IncludeImpl();
+  }
+
+  /**
+   * Create a new input.
+   *
+   * @return the newly created input
+   */
+  public Request createRequest()
+  {
+    return new RequestImpl();
+  }
+
+  
+  /**
+   * Create a new operation.
+   *
+   * @return the newly created operation
+   */
+  public Method createMethod()
+  {
+    return new MethodImpl();
+  }
+
+  /**
+   * Create a new output.
+   *
+   * @return the newly created output
+   */
+  public Response createResponse()
+  {
+    return new ResponseImpl();
+  }
+
+  /**
+   * Create a new port type.
+   *
+   * @return the newly created port type
+   */
+  public Resource createResource()
+  {
+    return new ResourceImpl();
+  }
+
+  /**
+  * Create a new types section.
+   *
+   * @return the newly created types section
+   */
+  public Params createParams()
+  {
+    return new ParamsImpl(this);
+  }
+  public Grammars createGrammars()
+  {
+    return new GrammarsImpl(this);
+  }
+
+  private Object getFromIncludes(String typeOfApplication, QName name)
+  {
+    Object ret = null;
+    List includeList = getIncludes(name.getNamespaceURI());
+
+    if (includeList != null)
+    {
+      Iterator includeIterator = includeList.iterator();
+
+      while (includeIterator.hasNext())
+      {
+        Include includeApp = (Include)includeIterator.next();
+
+        if (includeApp != null)
+        {
+          Application includedApp = includeApp.getApplication();
+    
+          if (includedApp != null)
+          {
+            /*
+              These object comparisons will work fine because
+              this private method is only called from within
+              this class, using only the pre-defined constants
+              from the Constants class as the typeOfDefinition
+              argument.
+            */
+           if (typeOfApplication == Constants.ELEM_RESOURCE)
+            {
+              ret = includedApp.getResource(name);
+            }
+
+            if (ret != null)
+            {
+              return ret;
+            }
+          }
+        }
+      }
+    }
+
+    return ret;
+  }
+
+  public String toString()
+  {
+    StringBuffer strBuf = new StringBuffer();
+
+    strBuf.append("Definition: name=" + name +
+                  " targetNamespace=" + targetNamespace);
+
+    if (includes != null)
+    {
+      Iterator includeIterator = includes.values().iterator();
+
+      while (includeIterator.hasNext())
+      {
+        strBuf.append("\n" + includeIterator.next());
+      }
+    }
+
+    if (params != null)
+    {
+      strBuf.append("\n" + params);
+    }
+
+
+
+    if (resources != null)
+    {
+      Iterator resourceIterator = resources.values().iterator();
+
+      while (resourceIterator.hasNext())
+      {
+        strBuf.append("\n" + resourceIterator.next());
+      }
+    }
+
+
+    return strBuf.toString();
+  }
+  
+}
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/Constants$SemanticExtensionType.class has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/Constants.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/Constants.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,191 @@
+/*
+ * (c) Copyright IBM Corp 2001, 2005 
+ */
+
+package edu.uga.cs.lsdis.meteors.wadls;
+
+import javax.xml.namespace.*;
+
+/**
+ * This class contains the constatns of WSDLS
+ * @author Zixin Wu (wuzixin@uga.edu)
+ * @author Matthew J. Duftler (duftler@us.ibm.com)
+ */
+public class Constants
+{
+  // Namespace URIs.
+  public static final String NS_URI_WADL =
+    "http://wadl.dev.java.net/2009/02";
+ 
+  public static final String NS_URI_WADLS =
+  	"http://lsdis.cs.uga.edu/projects/meteor-s/wadl-s/examples/WSSemantics.xsd";
+  public static final String NS_URI_SAWADL =
+	  "http://www.w3.org/2002/ws/sawadl/spec/sawadl#";
+  public static final String NS_URI_XMLNS =
+    "http://www.w3.org/2000/xmlns/";
+
+  //Prefix
+  public static final String PREFIX_WSDLS =
+  	"wssem";
+  
+  // Top-level element names.
+  public static final String ELEM_DEFINITIONS = "application";
+  public static final String ELEM_GRAMMARS = "grammars";
+  public static final String ELEM_PARAM = "param";
+  public static final String ELEM_TYPES = "types";
+  public static final String ELEM_RESOURCE = "resource";
+  // Non top-level element names.
+  public static final String ELEM_OPERATION = "method";
+  public static final String ELEM_PRECON = "precondition";
+  public static final String ELEM_EFFECT = "effect";
+  public static final String ELEM_INPUT = "request";
+  public static final String ELEM_OUTPUT = "response";
+  public static final String ELEM_HREF = "href";
+  public static final String ELEM_RESOURCES = "resources";
+  public static final String ELEM_INCLUDE = "include";
+  public static final String ELEM_IMPORT = "import";
+  public static final String ELEM_DOCUMENTATION = "doc";
+  public static final String ELEM_REPRESENTATION = "representation";
+
+
+  // Top-level qualified element names.
+  public static final QName Q_ELEM_DEFINITIONS =
+    new QName(NS_URI_WADL, ELEM_DEFINITIONS);
+  public static final QName Q_ELEM_TYPES =
+    new QName(NS_URI_WADL, ELEM_TYPES);
+  public static final QName Q_ELEM_GRAMMARS =
+	    new QName(NS_URI_WADL, ELEM_GRAMMARS);
+  public static final QName Q_ELEM_PARAM =
+	    new QName(NS_URI_WADL, ELEM_PARAM);
+  public static final QName Q_ELEM_RESOURCE =
+    new QName(NS_URI_WADL, ELEM_RESOURCE);
+  public static final QName Q_ELEM_RESOURCES =
+	    new QName(NS_URI_WADL, ELEM_RESOURCES);
+
+  // Non top-level qualified element names.
+  public static final QName Q_ELEM_OPERATION =
+    new QName(NS_URI_WADL, ELEM_OPERATION);
+  public static QName Q_ELEM_PRECON;
+  public static QName Q_ELEM_EFFECT;
+  public static QName Q_ELEM_CATEGORY;
+  public static final QName Q_ELEM_INPUT =
+    new QName(NS_URI_WADL, ELEM_INPUT);
+  public static final QName Q_ELEM_OUTPUT =
+    new QName(NS_URI_WADL, ELEM_OUTPUT);
+  public static final QName Q_ELEM_DOCUMENTATION =
+    new QName(NS_URI_WADL, ELEM_DOCUMENTATION);
+  public static final QName Q_ELEM_REPRESENTATION =
+	    new QName(NS_URI_WADL, ELEM_REPRESENTATION);
+  public static final QName Q_ELEM_INCLUDE =
+	    new QName(NS_URI_WADL, ELEM_INCLUDE);
+
+  // Attribute names.
+  public static final String ATTR_NAME = "name";
+  public static final String PARAM_STYLE = "style";
+  public static final String PARAM_NAME = "name";
+  public static final String PARAM_TYPE = "type";
+  public static final String PARAM_REQUIRED = "required";
+  public static final String PARAM_DEFAULT = "default";
+  public static final String OPTION_VALUE = "value";
+  public static final String ATTR_BASE = "base";
+  public static final String REQUEST_ELEMENT_NAME ="element";
+  public static final String ATTR_PRE = "precondition";
+  public static final String ID_NAME = "id";
+  public static final String RESOURCE_ATTR_NAME = "path";
+  public static final String ATTR_TARGET_NAMESPACE = "targetNamespace";
+  public static final String ATTR_ELEMENT = "element";
+  public static final String ATTR_TYPE = "type";
+  public static final String ATTR_MESSAGE = "message";
+  public static final String ATTR_MODELREF = "modelReference";
+  public static final String ATTR_LIFTINGSCHEMAMAPPING = "liftingSchemaMapping";
+  public static final String ATTR_LOWERINGSCHEMAMAPPING = "loweringSchemaMapping";
+  public static final String ATTR_PARAMETER_ORDER = "parameterOrder";
+  public static final String ATTR_EXPRESSION = "expression";
+  public static final String ATTR_BINDING = "binding";
+  public static final String ATTR_XMLNS = "xmlns";
+  public static final String ATTR_NAMESPACE = "namespace";
+  public static final String ATTR_LOCATION = "location";
+  public static final String ATTR_REQUIRED = "required";
+  public static final String ATTR_TAXONOMYURI = "taxonomyURI";
+  public static final String ATTR_TAXONOMYCODE = "taxonomyCode";
+
+  // Lists of native attribute names.
+  public static final String[] PART_ATTR_NAMES =
+    new String[]{ATTR_NAME, ATTR_TYPE, ATTR_ELEMENT, ATTR_MODELREF};
+  public static final String[] BINDING_ATTR_NAMES =
+    new String[]{ATTR_NAME, ATTR_TYPE};
+  public static final String[] BINDING_FAULT_ATTR_NAMES =
+    new String[]{ATTR_NAME};
+  public static final String[] BINDING_INPUT_ATTR_NAMES =
+    new String[]{ATTR_NAME};
+  public static final String[] BINDING_OPERATION_ATTR_NAMES =
+    new String[]{ATTR_NAME};
+  public static final String[] BINDING_OUTPUT_ATTR_NAMES =
+    new String[]{ATTR_NAME};
+  public static final String[] FAULT_ATTR_NAMES =
+    new String[]{ATTR_NAME, ATTR_MESSAGE};
+  public static final String[] IMPORT_ATTR_NAMES =
+    new String[]{ATTR_NAMESPACE, ATTR_LOCATION};
+  public static final String[] INPUT_ATTR_NAMES =
+    new String[]{ATTR_NAME, ATTR_MESSAGE};
+  public static final String[] CATEGORY_ATTR_NAMES =
+	    new String[]{ATTR_NAME, ATTR_TAXONOMYURI, ATTR_TAXONOMYCODE};
+  public static final String[] OPADDON_ATTR_NAMES =
+    new String[]{ATTR_NAME, ATTR_EXPRESSION};
+  public static final String[] MESSAGE_ATTR_NAMES =
+    new String[]{ATTR_NAME};
+  public static final String[] OPERATION_ATTR_NAMES =
+    new String[]{ATTR_NAME, ATTR_PARAMETER_ORDER};
+  public static final String[] OUTPUT_ATTR_NAMES =
+    new String[]{ATTR_NAME, ATTR_MESSAGE};
+  public static final String[] PORT_ATTR_NAMES =
+    new String[]{ATTR_NAME, ATTR_BINDING};
+  public static final String[] PORT_TYPE_ATTR_NAMES =
+    new String[]{RESOURCE_ATTR_NAME};
+  public static final String[] SERVICE_ATTR_NAMES =
+    new String[]{ATTR_NAME};
+  public static final String[] TYPES_ATTR_NAMES =
+    new String[]{};
+
+  // Qualified attribute names.
+  public static final QName Q_ATTR_REQUIRED =
+    new QName(NS_URI_WADL, ATTR_REQUIRED);
+  public static QName Q_ATTR_MODELREF;
+  public static QName Q_ATTR_LIFTINGSCHEMAMAPPING;
+  public static QName Q_ATTR_LOWERINGSCHEMAMAPPING;
+
+  // XML Declaration string.
+  public static final String XML_DECL_DEFAULT = "UTF-8";
+  public static final String XML_DECL_START =
+    "<?xml version=\"1.0\" encoding=\"";
+  public static final String XML_DECL_END = "\"?>";
+
+  // Feature names.
+  public static final String FEATURE_VERBOSE = "javax.wsdl.verbose";
+  public static final String FEATURE_IMPORT_DOCUMENTS =
+    "javax.wsdl.importDocuments";
+  public static final String FEATURE_PARSE_SAWSDL = "urn:w3.org:sawsdl";
+  public static final String FEATURE_PARSE_SAWADL = "urn:w3.org:sawadl";
+  
+  public static enum SemanticExtensionType {
+	  WADLS, SAWADL;
+  }
+  
+  public static final void setSemanticExtensionURI(SemanticExtensionType type) {
+	  String uri = NS_URI_WADLS;
+	  if(type == SemanticExtensionType.SAWADL)
+		  uri = NS_URI_SAWADL;
+		  
+	  Q_ELEM_PRECON =
+		  new QName(uri, ELEM_PRECON);
+	  Q_ELEM_EFFECT =
+		  new QName(uri, ELEM_EFFECT);
+	  Q_ATTR_MODELREF =
+		  new QName(uri, ATTR_MODELREF);
+	  Q_ATTR_LIFTINGSCHEMAMAPPING =
+		  new QName(uri, ATTR_LIFTINGSCHEMAMAPPING);
+	  Q_ATTR_LOWERINGSCHEMAMAPPING =
+		  new QName(uri, ATTR_LOWERINGSCHEMAMAPPING);
+  }
+
+}
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/GrammarsImpl.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/GrammarsImpl.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,272 @@
+/*
+ * (c) Copyright IBM Corp 2001, 2005 
+ */
+
+package edu.uga.cs.lsdis.meteors.wadls;
+
+import java.net.URISyntaxException;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Vector;
+
+import javax.wadls.Application;
+import javax.wadls.ModelReference;
+import javax.wadls.Grammars;
+import javax.wadls.WADLSException;
+import javax.wadls.extensions.schema.Schema;
+import javax.wadls.extensions.ExtensibilityElement;
+import javax.xml.namespace.QName;
+
+import org.w3c.dom.Attr;
+import org.w3c.dom.Element;
+
+import edu.uga.cs.lsdis.meteors.wadls.util.SchemaUtils;
+
+/**
+ * This class represents the &lt;types&gt; section of a WSDL document.
+ *
+ * @author Zixin Wu (wuzixin@uga.edu)
+ * @author Matthew J. Duftler (duftler@us.ibm.com)
+ */
+public class GrammarsImpl implements Grammars
+{
+	protected Application app = null;		//WADLS Definition
+	protected List<ModelReference> modelReferences = null;
+	protected Element docEl = null;
+	protected List extElements = new Vector();
+	protected Map allSchemas = null;
+	
+	
+	public static final long serialVersionUID = 1;
+	
+	public GrammarsImpl(Application app){
+		this.app = app;
+	}
+	
+	public List getTopLevelSchemas(){
+		return SchemaUtils.getSchemas(this.extElements);		
+	}
+	
+	/**
+	 * Get the DOM elements of all the schemas in this Types.
+	 * @return A list of DOM elements of all the schemas in this Types.
+	 */
+	public Map getSchemas(){
+		return this.allSchemas;
+	}
+	
+	public void setSchemas(Map allSchemas){
+		this.allSchemas = allSchemas;
+	}
+	
+	
+	/**
+	 * Get the DOM element of the first schema in this Types.
+	 * @return The DOM element of the first schema in this Types.
+	 */
+	public Schema getFirstSchema(){
+		return SchemaUtils.getFirstSchema(this.extElements);
+	}
+	public ModelReference getModelReference(){
+		if(modelReferences == null)
+			return null;
+		return modelReferences.get(0);
+	}
+	
+	public List<ModelReference> getModelReferences(Element startElement, String path, Application app) throws WADLSException, URISyntaxException {
+		Element el = getXSDEle(startElement, path);
+		if (el == null)
+			return null;
+		String attrModelReference = el.getAttributeNS(Constants.NS_URI_WADLS, Constants.ATTR_MODELREF);
+		if (attrModelReference.equals(""))
+			return null;
+		List<ModelReference> mrefs = ModelReferenceImpl.getModelReferences(attrModelReference, app);
+		if(mrefs.size() == 0)
+			return null;
+		return mrefs;
+	}
+	public ModelReference getModelReference(Element startElement, String path, Application app) throws WADLSException, URISyntaxException{
+		List<ModelReference> mrefs = getModelReferences(startElement, path, app);
+		return mrefs.get(0);
+	}
+	
+	
+	private Element getXSDEle(Element startElement, String path) throws WADLSException{
+		if (path == null || path == "")
+			return startElement;
+		String eleName = startElement.getLocalName();
+		if (eleName.equals("element")){					//search the target from <element ...
+			return SchemaUtils.findXSDEleOnEle(startElement, path, this);
+		}
+		else if (eleName.equals("complexType")){			//search the target from <complexType ...
+			return SchemaUtils.findXSDEleOnComplexType(startElement, path, this);
+		}
+		else{												//error
+			WADLSException wsdlsExc = new WADLSException(WADLSException.PATH_ERROR, 
+			"simpleType cannot has path");
+			throw wsdlsExc;
+		}
+	}
+	
+
+	
+	/**
+	 * Get all the extensibility elements defined here.
+	 */
+
+	/**
+	 * Set the modelReference.
+	 *
+	 * @param modelReference The desired modelReference.
+	 */
+	public void addModelReference(ModelReference modelReference){
+		if(modelReferences == null)
+			modelReferences = new ArrayList<ModelReference>();
+		modelReferences.add(0, modelReference);
+	}
+	
+	public List<ModelReference> getModelReferences() {
+		return modelReferences;
+	}
+	
+	public void setModelReferences(List<ModelReference> refs) {
+		modelReferences = refs;		
+	}
+	
+	/**
+	 * Set the documentation element for this document. This dependency
+	 * on org.w3c.dom.Element should eventually be removed when a more
+	 * appropriate way of representing this information is employed.
+	 *
+	 * @param docEl the documentation element
+	 */
+	public void setDocumentationElement(Element docEl)
+	{
+		this.docEl = docEl;
+	}
+	
+	public void setModelReferences(Element startElement, String path, List<ModelReference> refs) throws WADLSException {
+		for(ModelReference ref : refs) {
+			addModelReference(startElement, path, ref);
+		}
+	}
+	
+	public void addModelReference(Element startElement, String path, ModelReference modelReference) throws WADLSException{
+		Element el = getXSDEle(startElement, path);
+		
+		if (modelReference != null){
+			String strModelReference = modelReference.value();
+			Attr attr = el.getAttributeNodeNS(
+					Constants.NS_URI_WADLS, Constants.ATTR_MODELREF);
+			if(attr == null) {
+				attr = el.getOwnerDocument().createAttributeNS(Constants.NS_URI_WADLS, Constants.ATTR_MODELREF);
+				attr.setPrefix(Constants.PREFIX_WSDLS);
+				el.setAttributeNodeNS(attr);
+			}
+			String value = attr.getValue();
+			if(value != null) {
+				value += " " + strModelReference;
+			} else {
+				value = strModelReference;
+			}
+			attr.setValue(value);
+			modelReference.setParent(el);
+		}
+		else
+			el.removeAttributeNS(Constants.NS_URI_WADLS, Constants.ATTR_MODELREF);
+	}
+	
+	
+	/**
+	 * Get the documentation element. This dependency on org.w3c.dom.Element
+	 * should eventually be removed when a more appropriate way of
+	 * representing this information is employed.
+	 *
+	 * @return the documentation element
+	 */
+	public Element getDocumentationElement()
+	{
+		return docEl;
+	}
+	
+	public void setLoweringSchemaMapping(Element startElement, String path, String schemaMapping) throws WADLSException{
+		Element el = getXSDEle(startElement, path);
+		if (schemaMapping != null){
+			Attr attr = el.getOwnerDocument().createAttributeNS(Constants.NS_URI_WADLS, Constants.ATTR_LOWERINGSCHEMAMAPPING);
+			attr.setPrefix(Constants.PREFIX_WSDLS);
+			attr.setValue(schemaMapping);
+			el.setAttributeNodeNS(attr);
+		}
+		else
+			el.removeAttributeNS(Constants.NS_URI_WADLS, Constants.ATTR_LOWERINGSCHEMAMAPPING);
+	}
+	
+	public void setLiftingSchemaMapping(Element startElement, String path, String schemaMapping) throws WADLSException{
+		Element el = getXSDEle(startElement, path);
+		if (schemaMapping != null){
+			Attr attr = el.getOwnerDocument().createAttributeNS(Constants.NS_URI_WADLS, Constants.ATTR_LIFTINGSCHEMAMAPPING);
+			attr.setPrefix(Constants.PREFIX_WSDLS);
+			attr.setValue(schemaMapping);
+			el.setAttributeNodeNS(attr);
+		}
+		else
+			el.removeAttributeNS(Constants.NS_URI_WADLS, Constants.ATTR_LIFTINGSCHEMAMAPPING);
+	}
+	public String getLoweringSchemaMapping(Element startElement, String path) throws WADLSException{
+		Element el = getXSDEle(startElement, path);
+		if (el == null)
+			return null;
+		String attrSchemaMapping = el.getAttributeNS(Constants.NS_URI_WADLS, Constants.ATTR_LOWERINGSCHEMAMAPPING);
+		if (attrSchemaMapping == "")
+			return null;
+		return attrSchemaMapping;
+		
+	}
+	
+	public String getLiftingSchemaMapping(Element startElement, String path) throws WADLSException{
+		Element el = getXSDEle(startElement, path);
+		if (el == null)
+			return null;
+		String attrSchemaMapping = el.getAttributeNS(Constants.NS_URI_WADLS, Constants.ATTR_LIFTINGSCHEMAMAPPING);
+		if (attrSchemaMapping == "")
+			return null;
+		return attrSchemaMapping;
+		
+	}
+	
+
+	/**
+	 * Add an extensibility element.
+	 *
+	 * @param extElement the extensibility element to be added
+	 */
+	
+	
+	/**
+	 * Get all the extensibility elements defined here.
+	 */
+
+	
+	public String toString()
+	{
+		StringBuffer strBuf = new StringBuffer();
+		
+		strBuf.append("Types:");
+		
+		if (extElements != null)
+		{
+			Iterator extIterator = extElements.iterator();
+			
+			while (extIterator.hasNext())
+			{
+				strBuf.append("\n" + extIterator.next());
+			}
+		}
+		
+		return strBuf.toString();
+	}
+	
+	
+}
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/IncludeImpl.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/IncludeImpl.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,207 @@
+/*
+ * (c) Copyright IBM Corp 2001, 2005 
+ */
+
+package edu.uga.cs.lsdis.meteors.wadls;
+
+import java.util.*;
+
+import javax.wadls.*;
+import javax.xml.namespace.*;
+import org.w3c.dom.*;
+
+/**
+ * This class represents an import, and may contain a reference
+ * to the imported definition.
+ *
+ * @author Matthew J. Duftler (duftler@us.ibm.com)
+ */
+public class IncludeImpl implements Include
+{
+  protected String namespaceURI = null;
+  protected String locationURI = null;
+  /*
+    This would need to be made into a generic reference to handle other
+    types of referenced documents.
+  */
+  protected Application application = null;
+  protected Element docEl = null;
+  protected Map extensionAttributes = new HashMap();
+  protected List nativeAttributeNames =
+    Arrays.asList(Constants.IMPORT_ATTR_NAMES);
+
+  public static final long serialVersionUID = 1;
+
+  public void setNamespaceURI(String namespaceURI)
+  {
+    this.namespaceURI = namespaceURI;
+  }
+
+  public String getNamespaceURI()
+  {
+    return namespaceURI;
+  }
+
+  public void setLocationURI(String locationURI)
+  {
+    this.locationURI = locationURI;
+  }
+
+  public String getLocationURI()
+  {
+    return locationURI;
+  }
+
+  /**
+   * This property can be used to hang a referenced Definition,
+   * and the top-level Definition (i.e. the one with the &lt;import&gt;)
+   * will use this Definition when resolving referenced WSDL parts.
+   * This would need to be made into a generic reference to handle
+   * other types of referenced documents.
+   */
+  public void setApplication(Application application)
+  {
+    this.application = application;
+  }
+
+  /**
+   * This property can be used to hang a referenced Definition,
+   * and the top-level Definition (i.e. the one with the &lt;import&gt;)
+   * will use this Definition when resolving referenced WSDL parts.
+   * This would need to be made into a generic reference to handle
+   * other types of referenced documents.
+   */
+  public Application getApplication()
+  {
+    return application;
+  }
+
+  /**
+   * Set the documentation element for this document. This dependency
+   * on org.w3c.dom.Element should eventually be removed when a more
+   * appropriate way of representing this information is employed.
+   *
+   * @param docEl the documentation element
+   */
+  public void setDocumentationElement(Element docEl)
+  {
+    this.docEl = docEl;
+  }
+
+  /**
+   * Get the documentation element. This dependency on org.w3c.dom.Element
+   * should eventually be removed when a more appropriate way of
+   * representing this information is employed.
+   *
+   * @return the documentation element
+   */
+  public Element getDocumentationElement()
+  {
+    return docEl;
+  }
+
+  /**
+   * Set an extension attribute on this element. Pass in a null value to remove
+   * an extension attribute.
+   *
+   * @param name the extension attribute name
+   * @param value the extension attribute value. Can be a String, a QName, a
+   * List of Strings, or a List of QNames.
+   *
+   * @see #getExtensionAttribute
+   * @see #getExtensionAttributes
+   * @see ExtensionRegistry#registerExtensionAttributeType
+   * @see ExtensionRegistry#queryExtensionAttributeType
+   */
+  public void setExtensionAttribute(QName name, Object value)
+  {
+    if (value != null)
+    {
+      extensionAttributes.put(name, value);
+    }
+    else
+    {
+      extensionAttributes.remove(name);
+    }
+  }
+
+  /**
+   * Retrieve an extension attribute from this element. If the extension
+   * attribute is not defined, null is returned.
+   *
+   * @param name the extension attribute name
+   *
+   * @return the value of the extension attribute, or null if
+   * it is not defined. Can be a String, a QName, a List of Strings, or a List
+   * of QNames.
+   *
+   * @see #setExtensionAttribute
+   * @see #getExtensionAttributes
+   * @see ExtensionRegistry#registerExtensionAttributeType
+   * @see ExtensionRegistry#queryExtensionAttributeType
+   */
+  public Object getExtensionAttribute(QName name)
+  {
+    return extensionAttributes.get(name);
+  }
+
+  /**
+   * Get the map containing all the extension attributes defined
+   * on this element. The keys are the qnames of the attributes.
+   *
+   * @return a map containing all the extension attributes defined
+   * on this element
+   *
+   * @see #setExtensionAttribute
+   * @see #getExtensionAttribute
+   */
+  public Map getExtensionAttributes()
+  {
+    return extensionAttributes;
+  }
+
+  /**
+   * Get the list of local attribute names defined for this element in
+   * the WSDL specification.
+   *
+   * @return a List of Strings, one for each local attribute name
+   */
+  public List getNativeAttributeNames()
+  {
+    return nativeAttributeNames;
+  }
+
+  public String toString()
+  {
+    StringBuffer strBuf = new StringBuffer();
+
+    strBuf.append("Import:");
+
+    if (namespaceURI != null)
+    {
+      strBuf.append("\nnamespaceURI=" + namespaceURI);
+    }
+
+    if (locationURI != null)
+    {
+      strBuf.append("\nlocationURI=" + locationURI);
+    }
+
+    if (application != null)
+    {
+      strBuf.append("\napplication=" + application);
+    }
+
+    Iterator keys = extensionAttributes.keySet().iterator();
+
+    while (keys.hasNext())
+    {
+      QName name = (QName)keys.next();
+
+      strBuf.append("\nextension attribute: " + name + "=" +
+                    extensionAttributes.get(name));
+    }
+
+    return strBuf.toString();
+  }
+}
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/MethodImpl.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/MethodImpl.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,274 @@
+/*
+ * (c) Copyright IBM Corp 2001, 2005 
+ */
+
+package edu.uga.cs.lsdis.meteors.wadls;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Vector;
+import javax.wadls.Effect;
+import javax.wadls.Request;
+import javax.wadls.ModelReference;
+import javax.wadls.Method;
+import javax.wadls.Response;
+import javax.wadls.PreCondition;
+import org.w3c.dom.Element;
+
+/**
+ * This class represents a WSDL operation.
+ * It includes information on input, output and fault
+ * messages associated with usage of the operation.
+ *
+ * @author Zixin Wu (wuzixin@uga.edu)
+ * @author Paul Fremantle (pzf@us.ibm.com)
+ * @author Nirmal Mukhi (nmukhi@us.ibm.com)
+ * @author Matthew J. Duftler (duftler@us.ibm.com)
+ */
+public class MethodImpl implements Method
+{
+	protected String name = null;
+	protected Request request = null;
+	protected Response response = null;
+	protected List<ModelReference> modelRefs = null;
+	protected PreCondition preCondition = null;
+	protected Effect effect = null;
+	protected List parameterOrder = null;
+	protected Element docEl = null;
+	protected List extElements = new Vector();
+	protected boolean isUndefined = true;
+	
+	public static final long serialVersionUID = 1;
+	
+
+	public void addModelReference (ModelReference modelReference){
+		if (this.modelRefs == null)
+			modelRefs= new ArrayList<ModelReference> ();
+		modelRefs.add(modelReference);
+	}
+	
+	
+	/**
+	 * Get the modelReference of this operation.
+	 *
+	 * @return the modelReference value
+	 */
+	
+	public ModelReference getModelReference(){
+		if(modelRefs == null)
+			return null;
+		return modelRefs.get(0);
+	}
+	
+	/**
+	 * Set the precondition of this operation.
+	 *
+	 * @param preCondition the desired precondition
+	 */
+	public void setPreCondition(PreCondition preCondition){
+		this.preCondition = preCondition;
+	}
+	
+	/**
+	 * Get the precondition of this operation.
+	 *
+	 * @return the precondition
+	 */
+	public PreCondition getPreCondition(){
+		return this.preCondition;
+	}
+	
+	/**
+	 * Set the effect of this operation.
+	 *
+	 * @param effect the desired effect
+	 */
+	public void setEffect(Effect effect){
+		this.effect = effect;
+	}
+	
+	/**
+	 * Get the effect of this operation.
+	 *
+	 * @return The effect
+	 */
+	public Effect getEffect(){
+		return this.effect;
+	}
+	
+	/**
+	 * Set the name of this operation.
+	 *
+	 * @param name the desired name
+	 */
+	public void setName(String name)
+	{
+		this.name = name;
+	}
+	
+	/**
+	 * Get the name of this operation.
+	 *
+	 * @return the operation name
+	 */
+	public String getName()
+	{
+		return name;
+	}
+	
+	/**
+	 * Set the input message specification for this operation.
+	 *
+	 * @param input the new input message
+	 */
+	public void setRequest(Request request)
+	{
+		this.request = request;
+	}
+	
+	/**
+	 * Get the input message specification for this operation.
+	 *
+	 * @return the input message
+	 */
+	public Request getRequest()
+	{
+		return request;
+	}
+	
+	/**
+	 * Set the output message specification for this operation.
+	 *
+	 * @param output the new output message
+	 */
+	public void setResponse(Response response)
+	{
+		this.response = response;
+	}
+	
+	/**
+	 * Get the output message specification for this operation.
+	 *
+	 * @return the output message specification for the operation
+	 */
+	public Response getResponse()
+	{
+		return response;
+	}
+	
+	
+	
+	/**
+	 * Set the parameter ordering for a request-response,
+	 * or solicit-response operation.
+	 *
+	 * @param parameterOrder a list of named parameters
+	 * containing the part names to reflect the desired
+	 * order of parameters for RPC-style operations
+	 */
+	public void setParameterOrdering(List parameterOrder)
+	{
+		this.parameterOrder = parameterOrder;
+	}
+	
+	/**
+	 * Get the parameter ordering for this operation.
+	 *
+	 * @return the parameter ordering, a list consisting
+	 * of message part names
+	 */
+	public List getParameterOrdering()
+	{
+		return parameterOrder;
+	}
+	
+	/**
+	 * Set the documentation element for this document. This dependency
+	 * on org.w3c.dom.Element should eventually be removed when a more
+	 * appropriate way of representing this information is employed.
+	 *
+	 * @param docEl the documentation element
+	 */
+	public void setDocumentationElement(Element docEl)
+	{
+		this.docEl = docEl;
+	}
+	
+	/**
+	 * Get the documentation element. This dependency on org.w3c.dom.Element
+	 * should eventually be removed when a more appropriate way of
+	 * representing this information is employed.
+	 *
+	 * @return the documentation element
+	 */
+	public Element getDocumentationElement()
+	{
+		return docEl;
+	}
+	
+	public void setUndefined(boolean isUndefined)
+	{
+		this.isUndefined = isUndefined;
+	}
+	
+	public boolean isUndefined()
+	{
+		return isUndefined;
+	}
+	
+	public String toString()
+	{
+		StringBuffer strBuf = new StringBuffer();
+		
+		strBuf.append("Operation: name=" + name);
+		
+		if (parameterOrder != null)
+		{
+			strBuf.append("\nparameterOrder=" + parameterOrder);
+		}
+		
+	
+		if (request != null)
+		{
+			strBuf.append("\n" + request);
+		}
+		
+		if (response != null)
+		{
+			strBuf.append("\n" + response);
+		}
+		
+		if (modelRefs != null)
+			for(ModelReference ref : modelRefs) {
+				strBuf.append('\n');
+				strBuf.append(ref);
+			}
+		/*    if (modelRef != null)
+		 {
+		 strBuf.append("\n" + modelRef);
+		 }*/
+		
+		if (preCondition != null)
+		{
+			strBuf.append("\n" + preCondition);
+		}
+		
+		if (effect != null)
+		{
+			strBuf.append("\n" + effect);
+		}
+		
+		return strBuf.toString();
+	}
+	
+	public List<ModelReference> getModelReferences() {
+		return modelRefs;
+	}
+	
+	public void setModelReferences(List<ModelReference> refs) {
+		modelRefs = refs;		
+	}
+}
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/ModelReferenceImpl.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/ModelReferenceImpl.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,217 @@
+package edu.uga.cs.lsdis.meteors.wadls;
+
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.wadls.Application;
+import javax.wadls.ModelReference;
+import javax.wadls.WADLSException;
+
+/**
+ * This class represents a ModelReference.
+ * 
+ * @author Zixin Wu (wuzixin@uga.edu)
+ *
+ */
+public class ModelReferenceImpl implements ModelReference {
+
+	/**
+	 * The URI of the ontology used in the model reference
+	 */
+	protected URI namespace;
+	
+	/**
+	 * The parent WSDL-S element of this model reference
+	 */
+	protected Object parent;
+	
+	/**
+	 * The NS Prefix of the model reference
+	 */
+	protected String prefix;
+	
+	/**
+	 * The ontology concept of this model reference
+	 */
+	protected String concept;
+	
+	/**
+	 * Get the concept of this modelReference.
+	 * @return The concept of this modelReference.
+	 */
+	public String getConcept(){
+		return this.concept;
+	}
+
+	/**
+	 * Set the concept of this modelReference
+	 * @param concept The desired concept of this modelReference
+	 */
+	public void setConcept(String concept){
+		this.concept = concept;
+	}
+
+	/**
+	 * Get the prefix of this modelReference
+	 * @return The prefix  of this modelReference
+	 */
+	public String getPrefix(){
+		return this.prefix;
+	}
+
+	/**
+	 * Set the prefix of the ontology used in this modelReference
+	 * @param prefix The desired prefix of the ontology used in this modelReference
+	 */
+	public void setPrefix(String prefix){
+		this.prefix = prefix;
+	}
+
+	/**
+	 * Get the namespace of the ontology used in this modelReference
+	 * @return The namespace of the ontology used in this modelReference
+	 */
+	public URI getNamespace(){
+		return this.namespace;
+	}
+
+	/**
+	 * Set the namespace of the ontology used in this modelReference
+	 * @param nameSpace The desired namespace of the ontology used in this modelReference
+	 */
+	public void setNamespace(String nameSpace)
+			throws URISyntaxException{
+		//System.out.println("namespace is "+nameSpace);
+		this.namespace = new URI(nameSpace);
+	}
+
+	/**
+	 * Get the parent object of this modelReference
+	 * @return The parent object of this modelReference
+	 */
+	public Object getParent(){
+		return this.parent;
+	}
+
+	/**
+	 * Set the parent object of this modelReference
+	 * @param parent The desired parent object of this modelReference
+	 */
+	public void setParent(Object parent){
+		this.parent = parent;
+	}
+
+	/**
+	 * Return a formatted string representing this modelReference.
+	 * @return A formatted string representing this modelReference.
+	 */
+	public String value(){
+		if (this.concept == null || this.namespace == null)
+			return null;
+		return (this.namespace + "#" + this.concept);
+	}
+	
+	public String toString(){
+		if (this.concept == null)
+			return null;
+		if (this.prefix != null){		//use the prefix
+			return (this.prefix + "#" + this.concept);
+		}
+		else if (this.namespace != null){		//use the namespace
+			return (this.namespace + "#" + this.concept);
+		}
+		else
+			return null;
+	}
+	
+	public static List<ModelReference> getModelReferences(String mrefs, Application app) throws URISyntaxException, WADLSException {
+		String[] refs = mrefs.split(" ");
+		List<ModelReference> list = new ArrayList<ModelReference>(refs.length);
+		for(String ref : refs) {
+			ModelReference mr = app.createModelReference();
+			mr.valueOf(ref, app);
+			list.add(mr);
+		}
+		return list;
+	}
+	
+	public void valueOf(String modelReferenceAsString, Application app) throws URISyntaxException, WADLSException{
+		int    index        = modelReferenceAsString.indexOf('#');
+		String prefix       = (index != -1)
+									? modelReferenceAsString.substring(0, index)
+									: null;
+		String namespaceURI = prefix;
+		String localPart    = null;
+
+		//System.out.println("Namespace URI:"+namespaceURI);
+		//assume the user give prefix#localName
+		if (prefix != null){
+			//try to find a namespaceURI for that prefix
+			String tmpNamespaceURI = app.getNamespace(prefix);
+			//System.out.println("Temp Namespace URI:"+tmpNamespaceURI);
+			if(tmpNamespaceURI != null) {	//the user did give prefix
+				namespaceURI = tmpNamespaceURI.substring(0, tmpNamespaceURI.length());
+			}
+			else{							//the user gave namespaceURI instead of prefix
+				//try to find a prefix for that namespaceURI
+				prefix = app.getPrefix(namespaceURI);
+				if (prefix == null)
+					prefix = app.getPrefix(namespaceURI+"#");
+			}
+			localPart = modelReferenceAsString.substring(index + 1);
+		}
+		else if (!prefix.equals("")){		//no prefix or namespaceURI is given, but '#' is included
+			//use target namespace
+			namespaceURI = app.getTargetNamespace();
+			prefix = app.getPrefix(namespaceURI);
+			localPart = modelReferenceAsString.substring(1);
+		}
+		else{
+            throw new IllegalArgumentException(
+		                "No Namespace URI is provided for this modelReference: " +
+		                modelReferenceAsString
+		                + ".");
+		}
+
+		if (namespaceURI != null){
+			System.out.println("namespaceURI is "+namespaceURI);
+			this.setNamespace(namespaceURI);
+		    //System.out.println("Concept:"+localPart);
+			this.setConcept(localPart);
+			this.setPrefix(prefix);
+		}
+		else{
+			String faultCode = (prefix == null)
+			  ? WADLSException.NO_PREFIX_SPECIFIED
+			  : WADLSException.UNBOUND_PREFIX;
+
+			WADLSException wadlExc = new WADLSException(faultCode,
+		                         "Unable to determine " +
+		                         "namespace of '" +
+		                         modelReferenceAsString + "'.");
+
+			throw wadlExc;
+		}
+	}
+
+    /**
+     * Equals method  overriden to compare two modelreferences.
+     * We campare the namespace and the concept name (literally)
+     * @param obj
+     */
+    public boolean equals(Object obj) {
+        if (!(obj instanceof ModelReference)){
+            return false;
+        }else{
+            ModelReference ref = (ModelReference)obj;
+            return (concept.equals(ref.getConcept()) &&
+                    namespace.equals(ref.getNamespace()));
+        }
+    }
+    
+    public int hashCode(){
+    	return this.value().hashCode();
+    }
+}
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/OperationAddOnImpl.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/OperationAddOnImpl.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,223 @@
+/*
+ * Created on Apr 4, 2005
+ *
+ */
+package edu.uga.cs.lsdis.meteors.wadls;
+
+import java.util.*;
+
+import javax.wadls.*;
+import javax.xml.namespace.*;
+
+import org.w3c.dom.*;
+
+/**
+ * This class represents an instance of PreCondition or Effect,
+ *
+ * @author Zixin Wu
+ */
+public class OperationAddOnImpl implements PreCondition, Effect
+{
+	protected String name = null;
+	protected List<ModelReference> modelReferences = null;
+	protected String expression = null;
+	protected Element docEl = null;
+	protected Map extensionAttributes = new HashMap();
+	protected List nativeAttributeNames =
+		Arrays.asList(Constants.OPADDON_ATTR_NAMES);
+	
+	public static final long serialVersionUID = 1;
+	
+	/**
+	 * Set the name.
+	 *
+	 * @param name the desired name
+	 */
+	public void setName(String name)
+	{
+		this.name = name;
+	}
+	
+	/**
+	 * Get the name.
+	 *
+	 * @return the name
+	 */
+	public String getName()
+	{
+		return name;
+	}
+	
+	/**
+	 * Get the modelReference.
+	 *
+	 * @return The modelReference
+	 */
+	public ModelReference getModelReference(){
+		if(modelReferences == null)
+			return null;
+		return modelReferences.get(0);
+	}
+	
+	/**
+	 * Set the modelReference.
+	 *
+	 * @param modelReference The desired modelReference.
+	 */
+	public void addModelReference(ModelReference modelReference){
+		if(modelReferences == null)
+			modelReferences = new ArrayList<ModelReference>();
+		modelReferences.add(0, modelReference);
+	}
+	
+	/**
+	 * Set the expression.
+	 *
+	 * @param expression The desired expression.
+	 */
+	public void setExpression(String expression){
+		this.expression = expression;
+	}
+	
+	/**
+	 * Get the expression.
+	 *
+	 * @return The expression.
+	 */
+	public String getExpression(){
+		return this.expression;
+	}
+	
+	/**
+	 * Set the documentation element for this document. This dependency
+	 * on org.w3c.dom.Element should eventually be removed when a more
+	 * appropriate way of representing this information is employed.
+	 *
+	 * @param docEl the documentation element
+	 */
+	public void setDocumentationElement(Element docEl)
+	{
+		this.docEl = docEl;
+	}
+	
+	/**
+	 * Get the documentation element. This dependency on org.w3c.dom.Element
+	 * should eventually be removed when a more appropriate way of
+	 * representing this information is employed.
+	 *
+	 * @return the documentation element
+	 */
+	public Element getDocumentationElement()
+	{
+		return docEl;
+	}
+	
+	/**
+	 * Set an extension attribute on this element. Pass in a null value to remove
+	 * an extension attribute.
+	 *
+	 * @param name the extension attribute name
+	 * @param value the extension attribute value. Can be a String, a QName, a
+	 * List of Strings, or a List of QNames.
+	 *
+	 * @see #getExtensionAttribute
+	 * @see #getExtensionAttributes
+	 * @see ExtensionRegistry#registerExtensionAttributeType
+	 * @see ExtensionRegistry#queryExtensionAttributeType
+	 */
+	public void setExtensionAttribute(QName name, Object value)
+	{
+		if (value != null)
+		{
+			extensionAttributes.put(name, value);
+		}
+		else
+		{
+			extensionAttributes.remove(name);
+		}
+	}
+	
+	/**
+	 * Retrieve an extension attribute from this element. If the extension
+	 * attribute is not defined, null is returned.
+	 *
+	 * @param name the extension attribute name
+	 *
+	 * @return the value of the extension attribute, or null if
+	 * it is not defined. Can be a String, a QName, a List of Strings, or a List
+	 * of QNames.
+	 *
+	 * @see #setExtensionAttribute
+	 * @see #getExtensionAttributes
+	 * @see ExtensionRegistry#registerExtensionAttributeType
+	 * @see ExtensionRegistry#queryExtensionAttributeType
+	 */
+	public Object getExtensionAttribute(QName name)
+	{
+		return extensionAttributes.get(name);
+	}
+	
+	/**
+	 * Get the map containing all the extension attributes defined
+	 * on this element. The keys are the qnames of the attributes.
+	 *
+	 * @return a map containing all the extension attributes defined
+	 * on this element
+	 *
+	 * @see #setExtensionAttribute
+	 * @see #getExtensionAttribute
+	 */
+	public Map getExtensionAttributes()
+	{
+		return extensionAttributes;
+	}
+	
+	/**
+	 * Get the list of local attribute names defined for this element in
+	 * the WSDLS specification.
+	 *
+	 * @return a List of Strings, one for each local attribute name
+	 */
+	public List getNativeAttributeNames()
+	{
+		return nativeAttributeNames;
+	}
+	
+	public String toString()
+	{
+		StringBuffer strBuf = new StringBuffer();
+		
+		strBuf.append("name=" + name);
+		
+		strBuf.append("\nmodelReference=");
+		for(ModelReference ref : modelReferences) {
+			strBuf.append(ref.toString());
+			strBuf.append('\n');
+		}
+		
+		if (expression != null)
+		{
+			strBuf.append("\nexpression=" + expression);
+		}
+		
+//		Iterator keys = extensionAttributes.keySet().iterator();
+//		
+//		while (keys.hasNext())
+//		{
+//		QName name = (QName)keys.next();
+//		
+//		strBuf.append("\nextension attribute: " + name + "=" +
+//		extensionAttributes.get(name));
+//		}
+		
+		return strBuf.toString();
+	}
+	
+	public List<ModelReference> getModelReferences() {
+		return modelReferences;
+	}
+	
+	public void setModelReferences(List<ModelReference> refs) {
+		modelReferences = refs;		
+	}
+}
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/ParamImpl.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/ParamImpl.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,212 @@
+/*
+ * Copyright (c) 2009 Srikalyan Swayampakula.. All rights reserved.
+ * 
+ *   Author : Srikalyan Swayampakula. .
+ *   Name of the File : Param.java .
+ *   Created on : Nov 22, 2009 at 4:03:57 PM .
+ * 
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ * 
+ *  1. Redistributions of source code must retain the above
+ *     copyright notice, this list of conditions and the following
+ *     disclaimer.
+ *  2. Redistributions in binary form must reproduce the above
+ *     copyright notice, this list of conditions and the following
+ *     disclaimer in the documentation and/or other materials
+ *     provided with the distribution.
+ *  3. Neither the name of the University of Georgia nor the names
+ *     of its contributors may be used to endorse or promote
+ *     products derived from this software without specific prior
+ *     written permission.
+ * 
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ *  CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ *  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ *  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ *  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ *  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ *  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package edu.uga.cs.lsdis.meteors.wadls;
+
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Vector;
+
+import javax.wadls.Param;
+
+/**
+ *
+ * @author Srikalyan Swayampakula.
+ */
+public class ParamImpl implements Param
+{
+	
+	List<String> optionvalue = new Vector();
+    protected String name;
+    protected String style;
+    protected String id;
+    protected String type;
+    protected String default1;
+    protected String required = "false";
+    protected boolean repeation = false;
+    protected String fixed;
+    protected String path;
+    protected String modelreference =null;
+    protected String liftingschemamapping=null;
+    protected String loweringschemamapping=null;
+    
+        
+    
+    public String getModelreference() {
+		return modelreference;
+	}
+    
+  	public void setModelreference(String modelreference) {
+		this.modelreference = modelreference;
+	}
+
+	public String getLiftingschemamapping() {
+		return liftingschemamapping;
+	}
+
+	public void setLiftingschemamapping(String liftingschemamapping) {
+		this.liftingschemamapping = liftingschemamapping;
+	}
+
+	public String getLoweringschemamapping() {
+		return loweringschemamapping;
+	}
+
+	public void setLoweringschemamapping(String loweringschemamapping) {
+		this.loweringschemamapping = loweringschemamapping;
+	}
+
+	public List<String> getOptionvalue() {
+		return optionvalue;
+	}
+
+	public void setOptionvalue(List<String> optionvalue) {
+		this.optionvalue = optionvalue;
+	}
+
+	public ParamImpl()
+    {
+    }
+
+    public ParamImpl(URI href, String name, String style, String id, String type, String default1, String fixed, String path)
+    {
+ 
+      
+        this.name = name;
+        this.style = style;
+        this.id = id;
+        this.type = type;
+        this.default1 = default1;
+        this.fixed = fixed;
+        this.path = path;
+    }
+
+    public String getDefault1()
+    {
+        return default1;
+    }
+
+    public void setDefault1(String default1)
+    {
+        this.default1 = default1;
+    }
+
+
+
+    public String getFixed()
+    {
+        return fixed;
+    }
+
+    public void setFixed(String fixed)
+    {
+        this.fixed = fixed;
+    }
+
+
+    public String getId()
+    {
+        return id;
+    }
+
+    public void setId(String id)
+    {
+        this.id = id;
+    }
+
+    public String getName()
+    {
+        return name;
+    }
+
+    public void setName(String name)
+    {
+        this.name = name;
+    }
+
+   
+    public String getPath()
+    {
+        return path;
+    }
+
+    public void setPath(String path)
+    {
+        this.path = path;
+    }
+
+    public boolean isRepeation()
+    {
+        return repeation;
+    }
+
+    public void setRepeation(boolean repeation)
+    {
+        this.repeation = repeation;
+    }
+
+    public String getRequired()
+    {
+        return required;
+    }
+
+    public void setRequired(String required)
+    {
+        this.required = required;
+    }
+
+    public String getStyle()
+    {
+        return style;
+    }
+
+    public void setStyle(String style)
+    {
+        this.style = style;
+    }
+
+    public String getType()
+    {
+        return type;
+    }
+
+    public void setType(String type)
+    {
+        this.type = type;
+    }
+}
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/ParamsImpl.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/ParamsImpl.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,347 @@
+package edu.uga.cs.lsdis.meteors.wadls;
+
+import java.net.URISyntaxException;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Vector;
+
+import javax.wadls.Application;
+import javax.wadls.ModelReference;
+import javax.wadls.Params;
+import javax.wadls.WADLSException;
+import javax.wadls.extensions.schema.Schema;
+import javax.xml.namespace.QName;
+
+import org.w3c.dom.Attr;
+import org.w3c.dom.Element;
+
+import edu.uga.cs.lsdis.meteors.wadls.util.SchemaUtils;
+
+/**
+ * This class represents the &lt;types&gt; section of a WSDL document.
+ *
+ * @author Zixin Wu (wuzixin@uga.edu)
+ * @author Matthew J. Duftler (duftler@us.ibm.com)
+ */
+public class ParamsImpl implements Params
+{
+	protected List<ModelReference> modelRefs = null;
+	protected Application app = null;		//WSDLS Definition
+	protected Element docEl = null;
+	protected List extElements = new Vector();
+	protected Map allSchemas = null;
+	
+	public static final long serialVersionUID = 1;
+	
+	public ParamsImpl(Application app){
+		this.app = app;
+	}
+	
+	public List getTopLevelSchemas(){
+		return SchemaUtils.getSchemas(this.extElements);		
+	}
+	
+	/**
+	 * Get the DOM elements of all the schemas in this Types.
+	 * @return A list of DOM elements of all the schemas in this Types.
+	 */
+	public Map getSchemas(){
+		return this.allSchemas;
+	}
+	
+	public void setSchemas(Map allSchemas){
+		this.allSchemas = allSchemas;
+	}
+	
+	
+
+	public void addModelReference (ModelReference modelReference){
+		if (this.modelRefs == null)
+			modelRefs= new ArrayList<ModelReference> ();
+		modelRefs.add(modelReference);
+	}
+	
+	
+	/**
+	 * Get the modelReference of this operation.
+	 *
+	 * @return the modelReference value
+	 */
+	
+	public ModelReference getModelReference(){
+		if(modelRefs == null)
+			return null;
+		return modelRefs.get(0);
+	}
+	/**
+	 * Get the DOM element of the first schema in this Types.
+	 * @return The DOM element of the first schema in this Types.
+	 */
+	public Schema getFirstSchema(){
+		return SchemaUtils.getFirstSchema(this.extElements);
+	}
+	public List<ModelReference> getModelReferences() {
+		return modelRefs;
+	}
+	public void setModelReferences(List<ModelReference> refs) {
+		modelRefs = refs;		
+	}
+	/**
+	 * Get the XSD simpleType with the given name.
+	 * @param name The QName of the type
+	 * @return A DOM Element representing the simpleType
+	 * @throws WADLSException 
+	 */
+	
+	public Element getXSDElement(String xpath) throws WADLSException{
+		Element returnElt = null;
+		Map schemas = this.getSchemas();
+		Iterator it = schemas.values().iterator();
+		while(it.hasNext()){
+			Schema schema = (Schema)(it.next());
+			Element schemaEle = schema.getElement();
+			returnElt = this.getXSDElement(schemaEle, xpath);
+			if (returnElt != null)
+				return returnElt;
+		}
+		return null;
+	}
+	
+	/**
+	 * Get the modelReference on the element located by the given path.
+	 * @param startElement The starting element of the path
+	 * @param path
+	 * @return The modelReference
+	 */
+	public ModelReference getModelReference(Element startElement, String path, Application app) throws WADLSException, URISyntaxException{
+		List<ModelReference> mrefs = getModelReferences(startElement, path, app);
+		return mrefs.get(0);
+	}
+	
+	/**
+	 * Set the modelReference on the element located by the given path.
+	 * @param startElement The starting element of the path
+	 * @param path
+	 * @param modelReference The desired modelReference
+	 */
+	public void addModelReference(Element startElement, String path, ModelReference modelReference) throws WADLSException{
+		Element el = getXSDEle(startElement, path);
+		
+		if (modelReference != null){
+			String strModelReference = modelReference.value();
+			Attr attr = el.getAttributeNodeNS(
+					Constants.NS_URI_WADLS, Constants.ATTR_MODELREF);
+			if(attr == null) {
+				attr = el.getOwnerDocument().createAttributeNS(Constants.NS_URI_WADLS, Constants.ATTR_MODELREF);
+				attr.setPrefix(Constants.PREFIX_WSDLS);
+				el.setAttributeNodeNS(attr);
+			}
+			String value = attr.getValue();
+			if(value != null) {
+				value += " " + strModelReference;
+			} else {
+				value = strModelReference;
+			}
+			attr.setValue(value);
+			modelReference.setParent(el);
+		}
+		else
+			el.removeAttributeNS(Constants.NS_URI_WADLS, Constants.ATTR_MODELREF);
+	}
+	
+	/**
+	 * Get the liftingSchemaMapping on the element located by the given path.
+	 * @param startElement The starting element of the path
+	 * @param path
+	 * @return The schemaMapping value
+	 */
+	public String getLiftingSchemaMapping(Element startElement, String path) throws WADLSException{
+		Element el = getXSDEle(startElement, path);
+		if (el == null)
+			return null;
+		String attrSchemaMapping = el.getAttributeNS(Constants.NS_URI_WADLS, Constants.ATTR_LIFTINGSCHEMAMAPPING);
+		if (attrSchemaMapping == "")
+			return null;
+		return attrSchemaMapping;
+	}
+	
+	/**
+	 * Get the loweringSchemaMapping on the element located by the given path.
+	 * @param startElement The starting element of the path
+	 * @param path
+	 * @return The schemaMapping value
+	 */
+	public String getLoweringSchemaMapping(Element startElement, String path) throws WADLSException{
+		Element el = getXSDEle(startElement, path);
+		if (el == null)
+			return null;
+		String attrSchemaMapping = el.getAttributeNS(Constants.NS_URI_WADLS, Constants.ATTR_LOWERINGSCHEMAMAPPING);
+		if (attrSchemaMapping == "")
+			return null;
+		return attrSchemaMapping;
+	}
+	
+	/**
+	 * Set the liftingSchemaMapping on the element located by the given path.
+	 * @param startElement The starting element of the path
+	 * @param path
+	 * @param schemaMapping The desired schemaMapping
+	 */
+	public void setLiftingSchemaMapping(Element startElement, String path, String schemaMapping) throws WADLSException{
+		Element el = getXSDEle(startElement, path);
+		if (schemaMapping != null){
+			Attr attr = el.getOwnerDocument().createAttributeNS(Constants.NS_URI_WADLS, Constants.ATTR_LIFTINGSCHEMAMAPPING);
+			attr.setPrefix(Constants.PREFIX_WSDLS);
+			attr.setValue(schemaMapping);
+			el.setAttributeNodeNS(attr);
+		}
+		else
+			el.removeAttributeNS(Constants.NS_URI_WADLS, Constants.ATTR_LIFTINGSCHEMAMAPPING);
+	}
+	
+	/**
+	 * Set the loweringSchemaMapping on the element located by the given path.
+	 * @param startElement The starting element of the path
+	 * @param path
+	 * @param schemaMapping The desired schemaMapping
+	 */
+	public void setLoweringSchemaMapping(Element startElement, String path, String schemaMapping) throws WADLSException{
+		Element el = getXSDEle(startElement, path);
+		if (schemaMapping != null){
+			Attr attr = el.getOwnerDocument().createAttributeNS(Constants.NS_URI_WADLS, Constants.ATTR_LOWERINGSCHEMAMAPPING);
+			attr.setPrefix(Constants.PREFIX_WSDLS);
+			attr.setValue(schemaMapping);
+			el.setAttributeNodeNS(attr);
+		}
+		else
+			el.removeAttributeNS(Constants.NS_URI_WADLS, Constants.ATTR_LOWERINGSCHEMAMAPPING);
+	}
+	
+	private Element getXSDEle(Element startElement, String path) throws WADLSException{
+		if (path == null || path == "")
+			return startElement;
+		String eleName = startElement.getLocalName();
+		if (eleName.equals("element")){					//search the target from <element ...
+			return SchemaUtils.findXSDEleOnEle(startElement, path, this);
+		}
+		else if (eleName.equals("complexType")){			//search the target from <complexType ...
+			return SchemaUtils.findXSDEleOnComplexType(startElement, path, this);
+		}
+		else{												//error
+			WADLSException wsdlsExc = new WADLSException(WADLSException.PATH_ERROR, 
+			"simpleType cannot has path");
+			throw wsdlsExc;
+		}
+	}
+	
+	/**
+	 * Return an XML Schema Element by locating it from the XSD Element startElement and using the path.
+	 * @param startElement
+	 * @param path
+	 * @return an XML Schema Element 
+	 * @throws WADLSException
+	 */
+	public Element getXSDElement(Element startElement, String path) throws WADLSException{
+		return SchemaUtils.findXSDEleOnEle(startElement, path, this);
+	}
+	
+	/**
+	 * Return a list of XSD elements contained in the ComplexType startElement, search in only 1 level depth. 
+	 * @param startXSDElement
+	 * @return A list of XSD elements contained in the startElement. If no XSD element is contained, the list has 0 element.
+	 * @throws WADLSException
+	 */
+	public List getXSDElementsInComplexType(Element startXSDElement) throws WADLSException{
+		return SchemaUtils.listXSDElesInComplexType(startXSDElement);
+	}
+	
+	/**
+	 * Return a list of XSD elements contained in the startElement, search in only 1 level depth. 
+	 * @param startXSDComplexType
+	 * @return A list of XSD elements contained in the startElement. If no XSD element is contained, the list has 0 element.
+	 * @throws WADLSException
+	 */
+	public List getXSDElementsInElement(Element startXSDComplexType) throws WADLSException{
+		return SchemaUtils.listXSDElesInEle(startXSDComplexType, this);
+	}
+	
+	
+
+	/**
+	 * Set the documentation element for this document. This dependency
+	 * on org.w3c.dom.Element should eventually be removed when a more
+	 * appropriate way of representing this information is employed.
+	 *
+	 * @param docEl the documentation element
+	 */
+	public void setDocumentationElement(Element docEl)
+	{
+		this.docEl = docEl;
+	}
+	
+	/**
+	 * Get the documentation element. This dependency on org.w3c.dom.Element
+	 * should eventually be removed when a more appropriate way of
+	 * representing this information is employed.
+	 *
+	 * @return the documentation element
+	 */
+	public Element getDocumentationElement()
+	{
+		return docEl;
+	}
+	
+	/**
+	 * Add an extensibility element.
+	 *
+	 * @param extElement the extensibility element to be added
+	 */
+	
+	
+	/**
+	 * Get all the extensibility elements defined here.
+	 */
+	public List getExtensibilityElements()
+	{
+		return extElements;
+	}
+	
+	public String toString()
+	{
+		StringBuffer strBuf = new StringBuffer();
+		
+		strBuf.append("Types:");
+		
+		if (extElements != null)
+		{
+			Iterator extIterator = extElements.iterator();
+			
+			while (extIterator.hasNext())
+			{
+				strBuf.append("\n" + extIterator.next());
+			}
+		}
+		
+		return strBuf.toString();
+	}
+	
+	public List<ModelReference> getModelReferences(Element startElement, String path, Application app) throws WADLSException, URISyntaxException {
+		Element el = getXSDEle(startElement, path);
+		if (el == null)
+			return null;
+		String attrModelReference = el.getAttributeNS(Constants.NS_URI_WADLS, Constants.ATTR_MODELREF);
+		if (attrModelReference.equals(""))
+			return null;
+		List<ModelReference> mrefs = ModelReferenceImpl.getModelReferences(attrModelReference, app);
+		if(mrefs.size() == 0)
+			return null;
+		return mrefs;
+	}
+	public void setModelReferences(Element startElement, String path, List<ModelReference> refs) throws WADLSException {
+		for(ModelReference ref : refs) {
+			addModelReference(startElement, path, ref);
+		}
+	}
+}
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/RequestImpl.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/RequestImpl.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,205 @@
+/*
+ * (c) Copyright IBM Corp 2001, 2005 
+ */
+
+package edu.uga.cs.lsdis.meteors.wadls;
+
+import java.util.*;
+
+import javax.wadls.*;
+import javax.wadls.ModelReference;
+import javax.xml.namespace.*;
+import org.w3c.dom.*;
+
+/**
+ * This class represents an input message, and contains the name
+ * of the input and the message itself.
+ *
+ * @author Matthew J. Duftler
+ */
+public class RequestImpl implements Request
+{
+  protected String name = null;
+  List<String> inputXSDList = new Vector();
+  List<ParamImpl> paramList = new Vector();
+  protected List<ModelReference> modelReferences = null;
+  protected Element docEl = null;
+  protected Map extensionAttributes = new HashMap();
+  protected List nativeAttributeNames =
+    Arrays.asList(Constants.INPUT_ATTR_NAMES);
+
+  public static final long serialVersionUID = 1;
+
+  /**
+   * Set the name of this input message.
+   *
+   * @param name the desired name
+   */
+  public void setName(String name)
+  {
+    this.name = name;
+  }
+	public List<ModelReference> getModelReferences() {
+		return modelReferences;
+	}
+	
+	public void setModelReferences(List<ModelReference> refs) {
+		modelReferences = refs;		
+	}
+	public ModelReference getModelReference(){
+		if(modelReferences == null)
+			return null;
+		return modelReferences.get(0);
+	}
+	
+	/**
+	 * Set the modelReference.
+	 *
+	 * @param modelReference The desired modelReference.
+	 */
+	public void addModelReference(ModelReference modelReference){
+		if(modelReferences == null)
+			modelReferences = new ArrayList<ModelReference>();
+		modelReferences.add(0, modelReference);
+	}
+  /**
+   * Get the name of this input message.
+   *
+   * @return the input message name
+   */
+  public String getName()
+  {
+    return name;
+  }
+
+  public void setInputXSDList(List inputXSDList){
+	  this.inputXSDList=inputXSDList;
+  }
+  public List getInputXSDList(){
+	  
+	  return this.inputXSDList;
+  }
+  
+  
+  public void setParamList(List paramList){
+	  this.paramList=paramList;
+  }
+  public List getParamList(){
+	  
+	  return this.paramList;
+  }
+  
+  /**
+   * Set the documentation element for this document. This dependency
+   * on org.w3c.dom.Element should eventually be removed when a more
+   * appropriate way of representing this information is employed.
+   *
+   * @param docEl the documentation element
+   */
+  public void setDocumentationElement(Element docEl)
+  {
+    this.docEl = docEl;
+  }
+
+  /**
+   * Get the documentation element. This dependency on org.w3c.dom.Element
+   * should eventually be removed when a more appropriate way of
+   * representing this information is employed.
+   *
+   * @return the documentation element
+   */
+  public Element getDocumentationElement()
+  {
+    return docEl;
+  }
+
+  /**
+   * Set an extension attribute on this element. Pass in a null value to remove
+   * an extension attribute.
+   *
+   * @param name the extension attribute name
+   * @param value the extension attribute value. Can be a String, a QName, a
+   * List of Strings, or a List of QNames.
+   *
+   * @see #getExtensionAttribute
+   * @see #getExtensionAttributes
+   * @see ExtensionRegistry#registerExtensionAttributeType
+   * @see ExtensionRegistry#queryExtensionAttributeType
+   */
+  public void setExtensionAttribute(QName name, Object value)
+  {
+    if (value != null)
+    {
+      extensionAttributes.put(name, value);
+    }
+    else
+    {
+      extensionAttributes.remove(name);
+    }
+  }
+
+  /**
+   * Retrieve an extension attribute from this element. If the extension
+   * attribute is not defined, null is returned.
+   *
+   * @param name the extension attribute name
+   *
+   * @return the value of the extension attribute, or null if
+   * it is not defined. Can be a String, a QName, a List of Strings, or a List
+   * of QNames.
+   *
+   * @see #setExtensionAttribute
+   * @see #getExtensionAttributes
+   * @see ExtensionRegistry#registerExtensionAttributeType
+   * @see ExtensionRegistry#queryExtensionAttributeType
+   */
+  public Object getExtensionAttribute(QName name)
+  {
+    return extensionAttributes.get(name);
+  }
+
+  /**
+   * Get the map containing all the extension attributes defined
+   * on this element. The keys are the qnames of the attributes.
+   *
+   * @return a map containing all the extension attributes defined
+   * on this element
+   *
+   * @see #setExtensionAttribute
+   * @see #getExtensionAttribute
+   */
+  public Map getExtensionAttributes()
+  {
+    return extensionAttributes;
+  }
+
+  /**
+   * Get the list of local attribute names defined for this element in
+   * the WSDL specification.
+   *
+   * @return a List of Strings, one for each local attribute name
+   */
+  public List getNativeAttributeNames()
+  {
+    return nativeAttributeNames;
+  }
+
+  public String toString()
+  {
+    StringBuffer strBuf = new StringBuffer();
+
+    strBuf.append("Input: name=" + name);
+
+   Iterator keys = extensionAttributes.keySet().iterator();
+
+    while (keys.hasNext())
+    {
+      QName name = (QName)keys.next();
+
+      strBuf.append("\nextension attribute: " + name + "=" +
+                    extensionAttributes.get(name));
+    }
+
+    return strBuf.toString();
+  }
+}
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/ResourceImpl.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/ResourceImpl.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,364 @@
+/*
+ * (c) Copyright IBM Corp 2001, 2005 
+ */
+
+package edu.uga.cs.lsdis.meteors.wadls;
+
+import java.util.*;
+
+import javax.wadls.*;
+import javax.wadls.ModelReference;
+import javax.xml.namespace.*;
+import org.w3c.dom.*;
+
+/**
+ * This class represents a port type. It contains information about
+ * operations associated with this port type.
+ *
+ * @author Paul Fremantle
+ * @author Nirmal Mukhi
+ * @author Matthew J. Duftler
+ * @author Zixin Wu
+ */
+public class ResourceImpl implements Resource
+{
+  protected QName name = null;
+  protected List<ModelReference> modelReferences = null;
+  protected List methods = new Vector();
+  protected List categories = new Vector();
+  protected Element docEl = null;
+  protected Map extensionAttributes = new HashMap();
+  protected List nativeAttributeNames =
+    Arrays.asList(Constants.PORT_TYPE_ATTR_NAMES);
+  protected boolean isUndefined = true;
+
+  public static final long serialVersionUID = 1;
+
+
+  /**
+   * Get the category specifications in this portType.
+   * @return All the categories in this portType.
+   */
+  public List getCategories()
+  {
+    return this.categories;
+  }
+  
+  /**
+   * Set the name of this port type.
+   *
+   * @param name the desired name
+   */
+  public void setQName(QName name)
+  {
+    this.name = name;
+  }
+
+  /**
+   * Get the name of this port type.
+   *
+   * @return the port type name
+   */
+  public QName getQName()
+  {
+    return name;
+  }
+
+  /**
+   * Add an operation to this port type.
+   *
+   * @param operation the operation to be added
+   */
+  public void addMethod(Method operation)
+  {
+    methods.add(operation);
+  }
+
+  /**
+   * Get the specified operation. Note that operation names can
+   * be overloaded within a PortType. In case of overloading, the
+   * names of the input and output messages can be used to further
+   * refine the search.
+   *
+   * @param name the name of the desired operation.
+   * @param inputName the name of the input message; if this is null
+   * it will be ignored.
+   * @param outputName the name of the output message; if this is null
+   * it will be ignored.
+   * @return the corresponding operation, or null if there wasn't
+   * any matching operation
+   */
+  public Method getMethod(String name,
+                                String inputName,
+                                String outputName)
+  {
+    boolean found = false;
+    Method ret = null;
+    Iterator opIterator = methods.iterator();
+
+    while (opIterator.hasNext())
+    {
+      Method op = (Method)opIterator.next();
+      String opName = op.getName();
+
+      if (name != null && opName != null)
+      {
+        if (!name.equals(opName))
+        {
+          op = null;
+        }
+      }
+      else if (name != null || opName != null)
+      {
+        op = null;
+      }
+
+      if (op != null && inputName != null)
+      {
+        
+        String defaultInputName = opName;
+        defaultInputName = opName + "Request";
+        boolean specifiedDefault = inputName.equals(defaultInputName);
+        Request input = op.getRequest();
+
+        if (input != null)
+        {
+          String opInputName = input.getName();
+
+          if (opInputName == null)
+          {
+            if (!specifiedDefault)
+            {
+              op = null;
+            }
+          }
+          else if (!opInputName.equals(inputName))
+          {
+            op = null;
+          }
+        }
+        else
+        {
+          op = null;
+        }
+      }
+
+      if (op != null && outputName != null)
+      {
+        String defaultOutputName = opName;
+        defaultOutputName = opName + "Response";        
+        boolean specifiedDefault = outputName.equals(defaultOutputName);
+        Response output = op.getResponse();
+
+        if (output != null)
+        {
+          String opOutputName = output.getName();
+
+          if (opOutputName == null)
+          {
+            if (!specifiedDefault)
+            {
+              op = null;
+            }
+          }
+          else if (!opOutputName.equals(outputName))
+          {
+            op = null;
+          }
+        }
+        else
+        {
+          op = null;
+        }
+      }
+
+      if (op != null)
+      {
+        if (found)
+        {
+          throw new IllegalArgumentException("Duplicate operation with " +
+                                             "name=" + name +
+                                             (inputName != null
+                                              ? ", inputName=" + inputName
+                                              : "") +
+                                             (outputName != null
+                                              ? ", outputName=" + outputName
+                                              : "") +
+                                             ", found in portType '" +
+                                             getQName() + "'.");
+        }
+        else
+        {
+          found = true;
+          ret = op;
+        }
+      }
+    }
+
+    return ret;
+  }
+  public ModelReference getModelReference(){
+		if(modelReferences == null)
+			return null;
+		return modelReferences.get(0);
+	}
+	
+	/**
+	 * Set the modelReference.
+	 *
+	 * @param modelReference The desired modelReference.
+	 */
+	public void addModelReference(ModelReference modelReference){
+		if(modelReferences == null)
+			modelReferences = new ArrayList<ModelReference>();
+		modelReferences.add(0, modelReference);
+	}
+	public List<ModelReference> getModelReferences() {
+		return modelReferences;
+	}
+	
+	public void setModelReferences(List<ModelReference> refs) {
+		modelReferences = refs;		
+	}
+  /**
+   * Get all the operations defined here.
+   */
+  public List getMethods()
+  {
+    return methods;
+  }
+
+  /**
+   * Set the documentation element for this document. This dependency
+   * on org.w3c.dom.Element should eventually be removed when a more
+   * appropriate way of representing this information is employed.
+   *
+   * @param docEl the documentation element
+   */
+  public void setDocumentationElement(Element docEl)
+  {
+    this.docEl = docEl;
+  }
+
+  /**
+   * Get the documentation element. This dependency on org.w3c.dom.Element
+   * should eventually be removed when a more appropriate way of
+   * representing this information is employed.
+   *
+   * @return the documentation element
+   */
+  public Element getDocumentationElement()
+  {
+    return docEl;
+  }
+
+  public void setUndefined(boolean isUndefined)
+  {
+    this.isUndefined = isUndefined;
+  }
+
+  public boolean isUndefined()
+  {
+    return isUndefined;
+  }
+
+  /**
+   * Set an extension attribute on this element. Pass in a null value to remove
+   * an extension attribute.
+   *
+   * @param name the extension attribute name
+   * @param value the extension attribute value. Can be a String, a QName, a
+   * List of Strings, or a List of QNames.
+   *
+   * @see #getExtensionAttribute
+   * @see #getExtensionAttributes
+   * @see ExtensionRegistry#registerExtensionAttributeType
+   * @see ExtensionRegistry#queryExtensionAttributeType
+   */
+  public void setExtensionAttribute(QName name, Object value)
+  {
+    if (value != null)
+    {
+      extensionAttributes.put(name, value);
+    }
+    else
+    {
+      extensionAttributes.remove(name);
+    }
+  }
+
+  /**
+   * Retrieve an extension attribute from this element. If the extension
+   * attribute is not defined, null is returned.
+   *
+   * @param name the extension attribute name
+   *
+   * @return the value of the extension attribute, or null if
+   * it is not defined. Can be a String, a QName, a List of Strings, or a List
+   * of QNames.
+   *
+   * @see #setExtensionAttribute
+   * @see #getExtensionAttributes
+   * @see ExtensionRegistry#registerExtensionAttributeType
+   * @see ExtensionRegistry#queryExtensionAttributeType
+   */
+  public Object getExtensionAttribute(QName name)
+  {
+    return extensionAttributes.get(name);
+  }
+
+  /**
+   * Get the map containing all the extension attributes defined
+   * on this element. The keys are the qnames of the attributes.
+   *
+   * @return a map containing all the extension attributes defined
+   * on this element
+   *
+   * @see #setExtensionAttribute
+   * @see #getExtensionAttribute
+   */
+  public Map getExtensionAttributes()
+  {
+    return extensionAttributes;
+  }
+
+  /**
+   * Get the list of local attribute names defined for this element in
+   * the WSDL specification.
+   *
+   * @return a List of Strings, one for each local attribute name
+   */
+  public List getNativeAttributeNames()
+  {
+    return nativeAttributeNames;
+  }
+
+  public String toString()
+  {
+    StringBuffer strBuf = new StringBuffer();
+
+    strBuf.append("PortType: name=" + name);
+
+    if (methods != null)
+    {
+      Iterator opIterator = methods.iterator();
+
+      while (opIterator.hasNext())
+      {
+        strBuf.append("\n" + opIterator.next());
+      }
+    }
+
+    Iterator keys = extensionAttributes.keySet().iterator();
+
+    while (keys.hasNext())
+    {
+      QName name = (QName)keys.next();
+
+      strBuf.append("\nextension attribute: " + name + "=" +
+                    extensionAttributes.get(name));
+    }
+
+    return strBuf.toString();
+  }
+}
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/ResponseImpl.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/ResponseImpl.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,205 @@
+/*
+ * (c) Copyright IBM Corp 2001, 2005 
+ */
+
+package edu.uga.cs.lsdis.meteors.wadls;
+
+import java.util.*;
+
+import javax.wadls.*;
+import javax.xml.namespace.*;
+import org.w3c.dom.*;
+
+/**
+ * This class represents an output message, and contains the name
+ * of the output and the message itself.
+ *
+ * @author Matthew J. Duftler
+ */
+public class ResponseImpl implements Response
+{
+  protected String name = null;
+  List<String> inputXSDList = new Vector();
+  List<ParamImpl> paramList = new Vector();
+  protected List<ModelReference> modelReferences = null;  
+  protected Element docEl = null;
+  protected Map extensionAttributes = new HashMap();
+  protected List nativeAttributeNames =
+    Arrays.asList(Constants.OUTPUT_ATTR_NAMES);
+
+  public static final long serialVersionUID = 1;
+
+  /**
+   * Set the name of this output message.
+   *
+   * @param name the desired name
+   */
+  public void setName(String name)
+  {
+    this.name = name;
+  }
+
+  public void setInputXSDList(List inputXSDList){
+	  this.inputXSDList=inputXSDList;
+  }
+  public List getInputXSDList(){
+	  
+	  return this.inputXSDList;
+  }
+  
+  
+  public void setParamList(List paramList){
+	  this.paramList=paramList;
+  }
+  public List getParamList(){
+	  
+	  return this.paramList;
+  }
+  /**
+   * Get the name of this output message.
+   *
+   * @return the output message name
+   */
+  public String getName()
+  {
+    return name;
+  }
+
+  
+  /**
+   * Set the documentation element for this document. This dependency
+   * on org.w3c.dom.Element should eventually be removed when a more
+   * appropriate way of representing this information is employed.
+   *
+   * @param docEl the documentation element
+   */
+  public void setDocumentationElement(Element docEl)
+  {
+    this.docEl = docEl;
+  }
+  public ModelReference getModelReference(){
+		if(modelReferences == null)
+			return null;
+		return modelReferences.get(0);
+	}
+	
+	/**
+	 * Set the modelReference.
+	 *
+	 * @param modelReference The desired modelReference.
+	 */
+	public void addModelReference(ModelReference modelReference){
+		if(modelReferences == null)
+			modelReferences = new ArrayList<ModelReference>();
+		modelReferences.add(0, modelReference);
+	}
+	public List<ModelReference> getModelReferences() {
+		return modelReferences;
+	}
+	
+	public void setModelReferences(List<ModelReference> refs) {
+		modelReferences = refs;		
+	}
+  /**
+   * Get the documentation element. This dependency on org.w3c.dom.Element
+   * should eventually be removed when a more appropriate way of
+   * representing this information is employed.
+   *
+   * @return the documentation element
+   */
+  public Element getDocumentationElement()
+  {
+    return docEl;
+  }
+
+  /**
+   * Set an extension attribute on this element. Pass in a null value to remove
+   * an extension attribute.
+   *
+   * @param name the extension attribute name
+   * @param value the extension attribute value. Can be a String, a QName, a
+   * List of Strings, or a List of QNames.
+   *
+   * @see #getExtensionAttribute
+   * @see #getExtensionAttributes
+   * @see ExtensionRegistry#registerExtensionAttributeType
+   * @see ExtensionRegistry#queryExtensionAttributeType
+   */
+  public void setExtensionAttribute(QName name, Object value)
+  {
+    if (value != null)
+    {
+      extensionAttributes.put(name, value);
+    }
+    else
+    {
+      extensionAttributes.remove(name);
+    }
+  }
+
+  /**
+   * Retrieve an extension attribute from this element. If the extension
+   * attribute is not defined, null is returned.
+   *
+   * @param name the extension attribute name
+   *
+   * @return the value of the extension attribute, or null if
+   * it is not defined. Can be a String, a QName, a List of Strings, or a List
+   * of QNames.
+   *
+   * @see #setExtensionAttribute
+   * @see #getExtensionAttributes
+   * @see ExtensionRegistry#registerExtensionAttributeType
+   * @see ExtensionRegistry#queryExtensionAttributeType
+   */
+  public Object getExtensionAttribute(QName name)
+  {
+    return extensionAttributes.get(name);
+  }
+
+  /**
+   * Get the map containing all the extension attributes defined
+   * on this element. The keys are the qnames of the attributes.
+   *
+   * @return a map containing all the extension attributes defined
+   * on this element
+   *
+   * @see #setExtensionAttribute
+   * @see #getExtensionAttribute
+   */
+  public Map getExtensionAttributes()
+  {
+    return extensionAttributes;
+  }
+
+  /**
+   * Get the list of local attribute names defined for this element in
+   * the WSDL specification.
+   *
+   * @return a List of Strings, one for each local attribute name
+   */
+  public List getNativeAttributeNames()
+  {
+    return nativeAttributeNames;
+  }
+
+  public String toString()
+  {
+    StringBuffer strBuf = new StringBuffer();
+
+    strBuf.append("Output: name=" + name);
+
+    
+    Iterator keys = extensionAttributes.keySet().iterator();
+
+    while (keys.hasNext())
+    {
+      QName name = (QName)keys.next();
+
+      strBuf.append("\nextension attribute: " + name + "=" +
+                    extensionAttributes.get(name));
+    }
+
+    return strBuf.toString();
+  }
+}
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/SAWADLParserDriver.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/SAWADLParserDriver.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,153 @@
+package edu.uga.cs.lsdis.meteors.wadls;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Vector;
+
+import javax.wadls.Application;
+import javax.wadls.Method;
+import javax.wadls.Param;
+import javax.wadls.Request;
+import javax.wadls.Resource;
+import javax.wadls.WADLSException;
+import javax.wadls.factory.WADLFactory;
+import javax.wadls.xml.WADLReader;
+import javax.xml.namespace.QName;
+
+
+public class SAWADLParserDriver {
+		 
+		
+		 private List<Method> completeMethodList = new ArrayList<Method>();
+		 private  List<String> url = new ArrayList<String>();
+		 private List<String> paramList = new ArrayList<String>();
+		 private List<String> paramTypeList = new ArrayList<String>();
+		 private List<String> paramModelRef = new ArrayList<String>();
+		 private Application application;
+			 
+		 
+		 public List<Method> getCompleteMethodList() {
+			return completeMethodList;
+		 }
+
+		public List<String> getUrl() {
+			return url;
+		 }
+				
+		public List<String> getParamList() {
+			return paramList;
+		 }
+		public List<String> getParamTypeList() {
+			return paramTypeList;
+		 }
+
+
+		
+		 
+		public static void main(String[] args) throws Exception {
+
+		//WADLParserDriver mpw = new WADLParserDriver();
+		//mpw.parse(new URL(args[0]));
+		SAWADLParserDriver spd = new SAWADLParserDriver();
+		//String fileURL = "/home/ganjoo/parser/SAWADLParser/Files/sample.wadl";
+		String fileURL = "/home/ganjoo/parser/SAWADLParser/euPathWADL/GenesByTextSearch.sawadl";
+		//String fileURL = "http://cs.uga.edu/~ganjoo/galaxy/GenesByTextSearch.sawadl";
+		spd.parse(fileURL);
+		}
+		
+		public void parse(String fileURL) throws Exception {
+			int i=0;
+			Map resources = new HashMap();
+			List methods = new Vector();
+			List<ParamImpl> paramList = new Vector();
+			
+			//URL fileURL = new URL("http://www.eupathdb.org/webservices/GeneQuestions/GenesByMolecularWeight.wadl");
+			WADLReader wadlReader;
+			try {
+				wadlReader = WADLFactory.newInstance().newWADLReader();
+				wadlReader.setFeature(Constants.FEATURE_PARSE_SAWADL,true);
+				//wadlReader.setExtensionRegistry(new PopulatedExtensionRegistry());
+				Application app  = wadlReader.readWADL(fileURL);
+				this.application = app;
+			
+			
+			String temp = "";
+		    String tempHref="";
+		    int count =0;
+		    Map<QName, Resource> resourceMap = app.getResources();
+		    for(Map.Entry entry : resourceMap.entrySet() ){
+		    	count++;
+		    	Resource resource = (Resource) entry.getValue();
+		   //   System.out.println("Resource " + count + "is " + resource.getQName().getNamespaceURI());
+		    
+		    	methods = resource.getMethods();
+		   
+		    	for(int j =0;j<methods.size();j++){
+		    
+		    		Method method = (Method) methods.get(j);
+		    		completeMethodList.add(method);
+		    		url.add(app.getResourcesPath()+resource.getQName().getLocalPart());
+		    		
+		    		System.out.println("-------------------------------\n");
+		    		System.out.println("Resources path : " + app.getResourcesPath());
+		    		System.out.println("Method name is : " + method.getName());
+		    		System.out.println("Qname uri : " + resource.getQName().getNamespaceURI());
+		    		System.out.println("Qname local part : " + resource.getQName().getLocalPart());
+		    		System.out.println("Qname prefix : " + resource.getQName().getPrefix());
+		    		System.out.println("\n-------------------------------\n");
+		           
+		    		Request request = method.getRequest();
+		    		paramList = request.getParamList();
+		    		
+//		    		Map namespaces = new HashMap();
+//		    		namespaces = app.getNamespaces();
+//		    		System.out.println(	namespaces.get("euPathOntology"));
+		    		
+		    		for(Param param : paramList){
+		    			System.out.println("Parameter : ");
+		    			System.out.println("\t name: "+ param.getName());
+		    			System.out.println("\t type: "+param.getType());
+		    			System.out.println("\t ontology reference: "+ param.getModelreference());
+		    			System.out.println("\t required: " + param.getRequired());
+		    			System.out.println("\t option size: "+param.getOptionvalue().size());
+		    			
+		    			
+		    		}
+		    		
+		    	    
+		    	}
+		    
+		    
+		    
+		    }
+		    
+
+		    
+		  		    
+		    
+		   
+		    
+			} catch (WADLSException e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			
+			}  
+	}
+		
+		public String getCompleteModelReference(Param param){
+			String prefix = null;
+			String namespace = null;
+			if(param.getModelreference() != null){
+				prefix = param.getModelreference().split("#")[0];
+			    namespace = application.getNamespace(prefix);
+			}
+			
+			return namespace+"#"+param.getModelreference().split("#")[1];
+		}
+		
+		
+}
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/extensions/schema/SchemaConstants.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/extensions/schema/SchemaConstants.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,106 @@
+/*
+ * (c) Copyright IBM Corp 2004, 2005 
+ */
+
+package edu.uga.cs.lsdis.meteors.wadls.extensions.schema;
+
+import java.util.Arrays;
+import java.util.List;
+import javax.xml.namespace.QName;
+
+import edu.uga.cs.lsdis.meteors.wadls.Constants;
+
+/**
+ * Constants used for handling XML Schemas
+ * 
+ * @author Zixin Wu (wuzixin@uga.edu)
+ * @author John Kaputin <kaputin@uk.ibm.com>
+ */
+public class SchemaConstants {
+
+    //Schema attribute names
+    public static final String ATTR_ID = "id";
+    public static final String ATTR_SCHEMA_LOCATION = "schemaLocation";
+    public static final String ATTR_HREF = "href";
+    public static final String ATTR_NAME = "name";
+    public static final String ATTR_TYPE = "type";
+    public static final String ATTR_REF = "ref";
+    public static final String ATTR_BASE = "base";
+    public static final String ATTR_MAXOCCURS = "maxOccurs";
+    public static final String ATTR_MINOCCURS = "minOccurs";
+    
+    //Schema element names
+    public static final String ELEM_SCHEMA = "schema";
+    public static final String ELEM_INCLUDE = "include";
+    public static final String ELEM_REDEFINE = "redefine";
+    public static final String ELEM_ELEMENT = "element";
+    public static final String ELEM_SIMPLETYPE = "simpleType";
+    public static final String ELEM_COMPLEXTYPE = "complexType";
+    public static final String ELEM_ALL = "all";
+    public static final String ELEM_SEQUENCE = "sequence";
+    public static final String ELEM_CHOICE = "choice";
+    public static final String ELEM_COMPLEXCONTENT = "complexContent";
+    public static final String ELEM_RESTRICTION = "restriction";
+    public static final String ELEM_EXTENSION = "extension";
+    public static final String ELEM_GROUP = "group";
+    
+    //Schema uri
+    public static final String NS_URI_XSD_1998 =
+        "http://www.w3.org/XML/1998/namespace";
+    public static final String NS_URI_WADL =
+        "http://wadl.dev.java.net/2009/02";
+    public static final String NS_URI_XSD_1999 =
+        "http://www.w3.org/1999/XMLSchema";
+    public static final String NS_URI_XSD_2000 =
+        "http://www.w3.org/2000/10/XMLSchema";
+    public static final String NS_URI_XSD_2001 =
+        "http://www.w3.org/2001/XMLSchema";
+    public static final List XSD_STR_LIST = Arrays.asList(new String[]
+		{NS_URI_XSD_1998, NS_URI_XSD_1999, NS_URI_XSD_2000, NS_URI_XSD_2001});
+    
+    //Schema qnames
+    public static final QName Q_ELEM_XSD_1999 =
+        new QName(NS_URI_XSD_1999, ELEM_SCHEMA);
+    public static final QName Q_ELEM_XSD_2000 =
+        new QName(NS_URI_XSD_2000, ELEM_SCHEMA);
+    public static final QName Q_ELEM_XSD_2001 =
+        new QName(NS_URI_XSD_2001, ELEM_SCHEMA);
+    public static final List XSD_QNAME_LIST = Arrays.asList(new QName[]
+        {Q_ELEM_XSD_1999, Q_ELEM_XSD_2000, Q_ELEM_XSD_2001});
+    
+    //Schema import qnames
+    public static final QName Q_ELEM_IMPORT_XSD_1999 = new QName(
+        NS_URI_XSD_1999, Constants.ELEM_IMPORT);
+    public static final QName Q_ELEM_IMPORT_XSD_2000 = new QName(
+        NS_URI_XSD_2000, Constants.ELEM_IMPORT);
+    public static final QName Q_ELEM_IMPORT_XSD_2001 = new QName(
+        NS_URI_XSD_2001, Constants.ELEM_IMPORT);
+    public static final List XSD_IMPORT_QNAME_LIST = Arrays.asList(new QName[] 
+        { Q_ELEM_IMPORT_XSD_1999, Q_ELEM_IMPORT_XSD_2000, Q_ELEM_IMPORT_XSD_2001 });
+
+
+    //Schema include qnames
+    public static final QName Q_ELEM_INCLUDE_XSD_1999 = new QName(
+        NS_URI_XSD_1999, ELEM_INCLUDE);
+    public static final QName Q_ELEM_INCLUDE_XSD_2000 = new QName(
+        NS_URI_XSD_2000, ELEM_INCLUDE);
+    public static final QName Q_ELEM_INCLUDE_XSD_2001 = new QName(
+        NS_URI_XSD_2001, ELEM_INCLUDE);
+    public static final QName Q_ELEM_INCLUDE_WADL = new QName(
+            NS_URI_WADL, ELEM_INCLUDE);
+    
+    public static final List XSD_INCLUDE_QNAME_LIST = Arrays.asList(new QName[]
+        { Q_ELEM_INCLUDE_XSD_1999, Q_ELEM_INCLUDE_XSD_2000, Q_ELEM_INCLUDE_XSD_2001,Q_ELEM_INCLUDE_WADL });
+
+    //Schema redefine qnames
+    public static final QName Q_ELEM_REDEFINE_XSD_1999 = new QName(
+        NS_URI_XSD_1999, ELEM_REDEFINE);
+    public static final QName Q_ELEM_REDEFINE_XSD_2000 = new QName(
+        NS_URI_XSD_2000, ELEM_REDEFINE);
+    public static final QName Q_ELEM_REDEFINE_XSD_2001 = new QName(
+	    NS_URI_XSD_2001, ELEM_REDEFINE);
+    public static final List XSD_REDEFINE_QNAME_LIST = Arrays.asList(new QName[]
+	    { Q_ELEM_REDEFINE_XSD_1999, Q_ELEM_REDEFINE_XSD_2000, Q_ELEM_REDEFINE_XSD_2001 });
+
+
+}
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/extensions/schema/SchemaDeserializer.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/extensions/schema/SchemaDeserializer.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,196 @@
+/*
+ * (c) Copyright IBM Corp 2004, 2005 
+ */
+
+package edu.uga.cs.lsdis.meteors.wadls.extensions.schema;
+
+import java.io.Serializable;
+import java.util.Hashtable;
+import java.util.Map;
+
+import javax.wadls.Application;
+import javax.wadls.WADLSException;
+import javax.wadls.extensions.ExtensionDeserializer;
+import javax.wadls.extensions.schema.Schema;
+import javax.wadls.extensions.schema.SchemaImport;
+import javax.wadls.extensions.schema.SchemaReference;
+import javax.wadls.xml.WADLLocator;
+import javax.wadls.WADLSException;
+import javax.wadls.extensions.ExtensibilityElement;
+import javax.wadls.extensions.ExtensionRegistry;
+import javax.xml.namespace.QName;
+
+import org.w3c.dom.Element;
+
+
+import edu.uga.cs.lsdis.meteors.wadls.extensions.schema.SchemaConstants;
+import edu.uga.cs.lsdis.meteors.wadls.Constants;
+import edu.uga.cs.lsdis.meteors.wadls.util.xml.DOMUtils;
+import edu.uga.cs.lsdis.meteors.wadls.util.xml.QNameUtils;
+
+/**
+ * This class is used to deserialize <code>&lt;schema&gt;</code> elements into
+ * Schema instances.
+ * 
+ * @see SchemaImpl
+ * @see SchemaSerializer
+ * 
+ * @author Jeremy Hughes <hughesj@uk.ibm.com>
+ */
+public class SchemaDeserializer implements Serializable
+{
+
+  // Need to set this since a Definition is serializable and it contains an
+  // extension registry which contains one of these
+  public static final long serialVersionUID = 1;
+
+  private final Map allReferencedSchemas = new Hashtable();
+
+  private static ThreadLocal wsdlLocator = new ThreadLocal();
+
+  /**
+   * Set the WSDLLocator to be used by the deserializer on this thread.
+   * 
+   * @param loc The WSDLLocator to be used.
+   * 
+   * @see WSDLLocator
+   */
+  public static void setLocator(WADLLocator loc)
+  {
+    wsdlLocator.set(loc);
+  }
+  public Schema unmarshall(QName elementType,
+          Element el,
+          Application def)
+throws WADLSException
+{
+
+Schema schema = new SchemaImpl();
+
+schema.setElementType(elementType);
+schema.setElement(el);
+schema.setDocumentBaseURI(def.getDocumentBaseURI());
+
+//TODO: check if the 'required' attribute needs to be set
+
+// Go through the schema Element looking for child schemas
+if(elementType.getLocalPart().equalsIgnoreCase("include")){
+	
+	Element tempEl = el;
+	
+	QName tempElType = QNameUtils.newQName(tempEl);
+
+	// Create the appropriate SchemaReference subclass to represent
+	// an <import>, an <include> or a <redefine>
+
+	SchemaReference sr = null;
+	String locationURI = null;
+
+	
+	if (SchemaConstants.XSD_INCLUDE_QNAME_LIST.contains(tempElType))
+	{
+	
+	// Create a new include. Don't use the
+	// ExtensionRegistry.createExtension()
+	// method as a Schema include is not a WSDL import.
+	sr = schema.createInclude();
+
+	sr.setId(DOMUtils.getAttribute(tempEl, SchemaConstants.ATTR_ID));
+
+	locationURI = DOMUtils.getAttribute(tempEl, SchemaConstants.ATTR_HREF);
+
+	sr.setSchemaLocationURI(locationURI);
+
+	// Now the include is set up except for the pointer to the
+	// referenced LWS, add the include to the LightWeightSchema.
+	schema.addInclude(sr);
+	}
+	
+}
+else{
+Element tempEl = DOMUtils.getFirstChildElement(el);
+
+
+for (; tempEl != null; tempEl = DOMUtils.getNextSiblingElement(tempEl))
+{
+
+QName tempElType = QNameUtils.newQName(tempEl);
+
+// Create the appropriate SchemaReference subclass to represent
+// an <import>, an <include> or a <redefine>
+
+SchemaReference sr = null;
+String locationURI = null;
+
+if (SchemaConstants.XSD_IMPORT_QNAME_LIST.contains(tempElType))
+{
+
+
+// Create a new import. Don't use the
+// ExtensionRegistry.createExtension()
+// method as a Schema import is not a WSDL import.
+SchemaImport im = schema.createImport();
+
+
+im.setId(DOMUtils.getAttribute(tempEl, SchemaConstants.ATTR_ID));
+im.setNamespaceURI(DOMUtils.getAttribute(tempEl, Constants.ATTR_NAMESPACE));
+
+locationURI = DOMUtils.getAttribute(tempEl, SchemaConstants.ATTR_SCHEMA_LOCATION);
+im.setSchemaLocationURI(locationURI);
+
+// Now the import is set up except for the point to the
+// referenced LWS, add the import to the LightWeightSchema.
+schema.addImport(im);
+}
+else
+if (SchemaConstants.XSD_INCLUDE_QNAME_LIST.contains(tempElType))
+{
+
+// Create a new include. Don't use the
+// ExtensionRegistry.createExtension()
+// method as a Schema include is not a WSDL import.
+sr = schema.createInclude();
+
+sr.setId(DOMUtils.getAttribute(tempEl, SchemaConstants.ATTR_ID));
+
+locationURI = DOMUtils.getAttribute(tempEl, SchemaConstants.ATTR_SCHEMA_LOCATION);
+
+sr.setSchemaLocationURI(locationURI);
+
+// Now the include is set up except for the pointer to the
+// referenced LWS, add the include to the LightWeightSchema.
+schema.addInclude(sr);
+}
+else
+if (SchemaConstants.XSD_REDEFINE_QNAME_LIST.contains(tempElType))
+{
+// Create a new redefine. Don't use the
+// ExtensionRegistry.createExtension() method as a Schema redefine
+// is not a WSDL import.
+sr = schema.createRedefine();
+
+sr.setId(DOMUtils.getAttribute(tempEl, SchemaConstants.ATTR_ID));
+
+locationURI = DOMUtils.getAttribute(tempEl, SchemaConstants.ATTR_SCHEMA_LOCATION);
+
+sr.setSchemaLocationURI(locationURI);
+
+// Now the redefine is set up except for the pointer to the
+// referenced LWS, add the redefine to the LightWeightSchema.
+schema.addRedefine(sr);
+}
+else
+{
+// The element isn't one we're interested in so look at the next
+// one
+continue;
+}
+
+} //end for
+} 
+
+return schema;
+}
+
+
+}
\ No newline at end of file
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/extensions/schema/SchemaImpl.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/extensions/schema/SchemaImpl.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,235 @@
+/*
+ * (c) Copyright IBM Corp 2004, 2005 
+ */
+
+package edu.uga.cs.lsdis.meteors.wadls.extensions.schema;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Vector;
+
+import javax.wadls.extensions.schema.Schema;
+import javax.wadls.extensions.schema.SchemaImport;
+import javax.wadls.extensions.schema.SchemaReference;
+import javax.xml.namespace.QName;
+
+import org.w3c.dom.Element;
+
+/**
+ * This class is used to wrap schema elements. It holds the DOM Element to the
+ * <code>&lt;schema&gt;</code> element.
+ * 
+ * @see SchemaSerializer
+ * @see SchemaDeserializer
+ * 
+ * @author Jeremy Hughes <hughesj@uk.ibm.com>
+ */
+public class SchemaImpl implements Schema
+{
+  protected QName elementType = null;
+  // Uses the wrapper type so we can tell if it was set or not.
+  protected Boolean required = null;
+  protected Element element = null;
+
+  public static final long serialVersionUID = 1;
+
+  /*
+   * imports is a Map of Lists with key of the import's namespace URI. Each List
+   * contains the SchemaImport objects for that namespace. There can be more
+   * than one SchemaImport in a List - one for each schemaLocation attribute
+   * setting.
+   */
+  private Map imports = new HashMap();
+
+  /*
+   * includes is a List of Include objects for the targetNamespace of the
+   * enclosing schema. There is one Include in the List for each <include>
+   * element in the XML Schema.
+   */
+  private List includes = new Vector();
+
+  /*
+   * redefines is a list of Redefine obejcts for the targetNamespace of the
+   * enclosing schema. There is one Redefine in the List for each <redefine>
+   * element in the XML Schema.
+   */
+  private List redefines = new Vector();
+
+  private String documentBaseURI = null;
+
+  /**
+   * Get a map of lists containing all the imports defined here. The map's keys
+   * are Strings representing the namespace URIs, and the map's values are
+   * lists. There is one list for each namespace URI for which imports have been
+   * defined.
+   * 
+   * @return a Map of Lists of Import instances keyed off the import's namespace
+   */
+  public Map getImports()
+  {
+    return this.imports;
+  }
+
+  /**
+   * Create a new schema import.
+   * 
+   * @return the newly created schema import
+   */
+  public SchemaImport createImport()
+  {
+    return new SchemaImportImpl();
+  }
+
+  /**
+   * Add an import to this LightWeightSchema
+   * 
+   * @param importSchema the import to be added
+   */
+  public void addImport(SchemaImport importSchema)
+  {
+    String namespaceURI = importSchema.getNamespaceURI();
+    List importList = (List) this.imports.get(namespaceURI);
+
+    if (importList == null)
+    {
+      importList = new Vector();
+
+      this.imports.put(namespaceURI, importList);
+    }
+
+    importList.add(importSchema);
+  }
+
+  /**
+   * Get list of includes defined here.
+   * 
+   * @return a List of SchemaReference instances representing the schema
+   *         includes.
+   */
+
+  public List getIncludes()
+  {
+    return this.includes;
+  }
+
+  public SchemaReference createInclude()
+  {
+    return new SchemaReferenceImpl();
+  }
+
+  public void addInclude(SchemaReference includeSchema)
+  {
+    this.includes.add(includeSchema);
+  }
+
+  public List getRedefines()
+  {
+    return this.redefines;
+  }
+
+  public SchemaReference createRedefine()
+  {
+    return new SchemaReferenceImpl();
+  }
+
+  public void addRedefine(SchemaReference redefineSchema)
+  {
+    this.redefines.add(redefineSchema);
+  }
+
+  public String toString()
+  {
+    StringBuffer strBuf = new StringBuffer();
+
+    strBuf.append("SchemaExtensibilityElement (" + this.elementType + "):");
+    strBuf.append("\nrequired=" + this.required);
+
+    if (this.element != null)
+    {
+      strBuf.append("\nelement=" + this.element);
+    }
+
+    return strBuf.toString();
+  }
+
+  /**
+   * Set the type of this extensibility element.
+   *
+   * @param elementType the type
+   */
+  public void setElementType(QName elementType)
+  {
+    this.elementType = elementType;
+  }
+
+  /**
+   * Get the type of this extensibility element.
+   *
+   * @return the extensibility element's type
+   */
+  public QName getElementType()
+  {
+    return elementType;
+  }
+
+  /**
+   * Set whether or not the semantics of this extension
+   * are required. Relates to the wsdl:required attribute.
+   */
+  public void setRequired(Boolean required)
+  {
+    this.required = required;
+  }
+
+  /**
+   * Get whether or not the semantics of this extension
+   * are required. Relates to the wsdl:required attribute.
+   */
+  public Boolean getRequired()
+  {
+    return required;
+  }
+
+  /**
+   * Set the DOM Element that represents this schema element.
+   *
+   * @param element the DOM element representing this schema
+   */
+  public void setElement(Element element)
+  {
+    this.element = element;
+  }
+
+  /**
+   * Get the DOM Element that represents this schema element.
+   *
+   * @return the DOM element representing this schema
+   */
+  public Element getElement()
+  {
+    return element;
+  }
+
+  /**
+   * Set the document base URI of this schema definition. Can be used to
+   * represent the origin of the schema, and can be exploited when resolving
+   * relative URIs (e.g. in &lt;import&gt;s).
+   * 
+   * @param documentBaseURI the document base URI of this schema
+   */
+  public void setDocumentBaseURI(String documentBaseURI)
+  {
+    this.documentBaseURI = documentBaseURI;
+  }
+
+  /**
+   * Get the document base URI of this schema
+   * 
+   * @return the document base URI
+   */
+  public String getDocumentBaseURI()
+  {
+    return this.documentBaseURI;
+  }
+}
\ No newline at end of file
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/extensions/schema/SchemaImportImpl.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/extensions/schema/SchemaImportImpl.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,33 @@
+/*
+ * (c) Copyright IBM Corp 2004, 2005
+ */
+
+package edu.uga.cs.lsdis.meteors.wadls.extensions.schema;
+
+import javax.wadls.extensions.schema.SchemaImport;
+
+/**
+ * @author Jeremy Hughes <hughesj@uk.ibm.com>
+ */
+public class SchemaImportImpl extends SchemaReferenceImpl implements SchemaImport
+{
+  public static final long serialVersionUID = 1;
+
+  private String namespace = null;
+
+  /**
+   * @return Returns the namespace.
+   */
+  public String getNamespaceURI()
+  {
+    return this.namespace;
+  }
+
+  /**
+   * @param namespace The namespace to set.
+   */
+  public void setNamespaceURI(String namespace)
+  {
+    this.namespace = namespace;
+  }
+}
\ No newline at end of file
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/extensions/schema/SchemaReferenceImpl.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/extensions/schema/SchemaReferenceImpl.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,71 @@
+/*
+ * (c) Copyright IBM Corp 2004, 2005
+ */
+
+package edu.uga.cs.lsdis.meteors.wadls.extensions.schema;
+
+import javax.wadls.extensions.schema.Schema;
+import javax.wadls.extensions.schema.SchemaReference;
+
+/**
+ * @author Jeremy Hughes <hughesj@uk.ibm.com>
+ */
+public class SchemaReferenceImpl implements SchemaReference
+{
+
+  public static final long serialVersionUID = 1;
+
+  private String id = null;
+
+  private String schemaLocation = null;
+
+  private Schema referencedSchema = null;
+
+  /**
+   * @return Returns the id.
+   */
+  public String getId()
+  {
+    return this.id;
+  }
+
+  /**
+   * @param id The id to set.
+   */
+  public void setId(String id)
+  {
+    this.id = id;
+  }
+
+  /**
+   * @return Returns the schemaLocation.
+   */
+  public String getSchemaLocationURI()
+  {
+    return this.schemaLocation;
+  }
+
+  /**
+   * @param schemaLocation The schemaLocation to set.
+   */
+  public void setSchemaLocationURI(String schemaLocation)
+  {
+    this.schemaLocation = schemaLocation;
+  }
+
+  /**
+   * @return Returns the importedSchema.
+   */
+  public Schema getReferencedSchema()
+  {
+    return this.referencedSchema;
+  }
+
+  /**
+   * @param referencedSchema The importedSchema to set.
+   */
+  public void setReferencedSchema(Schema referencedSchema)
+  {
+    this.referencedSchema = referencedSchema;
+  }
+}
\ No newline at end of file
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/extensions/schema/SchemaSerializer.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/extensions/schema/SchemaSerializer.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,50 @@
+/*
+ * (c) Copyright IBM Corp 2004, 2005 
+ */
+
+package edu.uga.cs.lsdis.meteors.wadls.extensions.schema;
+
+import java.io.PrintWriter;
+import java.io.Serializable;
+
+import javax.wadls.Application;
+import javax.wadls.WADLSException;
+import javax.wadls.extensions.ExtensionDeserializer;
+import javax.wadls.extensions.schema.Schema;
+import javax.wadls.extensions.ExtensionSerializer;
+import javax.wadls.WADLSException;
+import javax.wadls.extensions.ExtensibilityElement;
+import javax.wadls.extensions.ExtensionRegistry;
+import javax.xml.namespace.QName;
+
+import edu.uga.cs.lsdis.meteors.wadls.util.xml.DOM2Writer;
+
+/**
+ * This class is used to serialize Schema instances
+ * into the PrintWriter.
+ *
+ * @see SchemaImpl
+ * @see SchemaDeserializer
+ *
+ * @author Jeremy Hughes <hughesj@uk.ibm.com>
+ */
+public class SchemaSerializer implements ExtensionSerializer,Serializable
+{
+  public static final long serialVersionUID = 1;
+  public void marshall(Class parentType,
+          QName elementType,
+          ExtensibilityElement extension,
+          PrintWriter pw,
+          Application def,
+          ExtensionRegistry extReg)
+            throws WADLSException
+{
+Schema schema = (Schema)extension;
+
+pw.print("    ");
+
+DOM2Writer.serializeAsXML(schema.getElement(), pw);
+
+pw.println();
+}
+}
\ No newline at end of file
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/factory/WADLFactoryImpl.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/factory/WADLFactoryImpl.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,52 @@
+/*
+ * (c) Copyright IBM Corp 2001, 2005 
+ */
+
+package edu.uga.cs.lsdis.meteors.wadls.factory;
+
+import javax.wadls.*;
+import javax.wadls.extensions.*;
+import javax.wadls.factory.*;
+import javax.wadls.xml.*;
+
+import edu.uga.cs.lsdis.meteors.wadls.*;
+import edu.uga.cs.lsdis.meteors.wadls.xml.*;
+
+/**
+ * This class is a concrete implementation of the abstract class
+ * WSDLFactory. Some ideas used here have been shamelessly
+ * copied from the wonderful JAXP and Xerces work.
+ *
+ * @author Matthew J. Duftler (duftler@us.ibm.com)
+ */
+public class WADLFactoryImpl extends WADLFactory
+{
+  /**
+   * Create a new instance of a Definition, with an instance
+   * of a PopulatedExtensionRegistry as its ExtensionRegistry.
+   *
+   * @see edu.uga.cs.lsdis.meteors.wadls.extensions.PopulatedExtensionRegistry
+   */
+  public Application newApplication()
+  {
+    Application app = new ApplicationImpl();
+    return app;
+  }
+
+  /**
+   * Create a new instance of a WSDLReader.
+   */
+  public WADLReader newWADLReader()
+  {
+    return new WADLReaderImpl();
+  }
+
+  /**
+   * Create a new instance of a WSDLWriter.
+   */
+  public WADLWriter newWADLWriter()
+  {
+    return new WADLWriterImpl();
+  }
+
+}
\ No newline at end of file
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/util/IOUtils.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/util/IOUtils.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,36 @@
+/*
+ * (c) Copyright IBM Corp 2001, 2005 
+ */
+
+package edu.uga.cs.lsdis.meteors.wadls.util;
+
+import java.io.*;
+
+/**
+ * This file is a collection of input/output utilities.
+ * 
+ * @author   Sanjiva Weerawarana
+ * @author   Matthew J. Duftler
+ */
+public class IOUtils {
+  // debug flag - generates debug stuff if true
+  static boolean debug = false;
+
+  //////////////////////////////////////////////////////////////////////////
+
+  public static String getStringFromReader (Reader reader) throws IOException {
+    BufferedReader bufIn = new BufferedReader(reader);
+    StringWriter   swOut = new StringWriter();
+    PrintWriter    pwOut = new PrintWriter(swOut);
+    String         tempLine;
+
+    while ((tempLine = bufIn.readLine()) != null) {
+      pwOut.println(tempLine);
+    }
+
+    pwOut.flush();
+
+    return swOut.toString();
+  }
+}
+
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/util/ObjectRegistry.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/util/ObjectRegistry.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,55 @@
+/*
+ * (c) Copyright IBM Corp 2001, 2005 
+ */
+
+package edu.uga.cs.lsdis.meteors.wadls.util;
+
+import java.util.*;
+
+/**
+ * The <em>ObjectRegistry</em> is used to do name-to-object reference lookups.
+ * If an <em>ObjectRegistry</em> is passed as a constructor argument, then this
+ * <em>ObjectRegistry</em> will be a cascading registry: when a lookup is
+ * invoked, it will first look in its own table for a name, and if it's not
+ * there, it will cascade to the parent <em>ObjectRegistry</em>.
+ * All registration is always local. [??]
+ * 
+ * @author   Sanjiva Weerawarana
+ * @author   Matthew J. Duftler
+ */
+public class ObjectRegistry {
+  Hashtable      reg    = new Hashtable ();
+  ObjectRegistry parent = null;
+
+  public ObjectRegistry () {
+  }
+
+  public ObjectRegistry (ObjectRegistry parent) {
+    this.parent = parent;
+  }
+
+  // register an object
+  public void register (String name, Object obj) {
+    reg.put (name, obj);
+  }
+
+  // unregister an object (silent if unknown name)
+  public void unregister (String name) {
+    reg.remove (name);
+  }
+
+  // lookup an object: cascade up if needed
+  public Object lookup (String name) throws IllegalArgumentException {
+    Object obj = reg.get (name);
+
+    if (obj == null && parent != null) {
+      obj = parent.lookup (name);
+    }
+
+    if (obj == null) {
+      throw new IllegalArgumentException ("object '" + name + "' not in registry");
+    }
+
+    return obj;
+  }
+}
\ No newline at end of file
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/util/SchemaUtils.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/util/SchemaUtils.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,543 @@
+/*
+ * Created on Apr 10, 2005
+ *
+ */
+package edu.uga.cs.lsdis.meteors.wadls.util;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import javax.wadls.Grammars;
+import javax.wadls.Params;
+import javax.wadls.WADLSException;
+import javax.wadls.extensions.schema.Schema;
+import javax.xml.namespace.QName;
+
+import org.w3c.dom.DOMException;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+import edu.uga.cs.lsdis.meteors.wadls.Constants;
+import edu.uga.cs.lsdis.meteors.wadls.extensions.schema.SchemaConstants;
+import edu.uga.cs.lsdis.meteors.wadls.util.xml.QNameUtils;
+import edu.uga.cs.lsdis.meteors.wadls.util.xml.XPathUtils;
+
+/**
+ * This file is a collection of utilities which find the location of a XML/XSD Element by using the given path.
+ * @author Zixin Wu
+ *
+ */
+
+public class SchemaUtils {
+	
+	/**
+	 * Search an XML element in the schemas contained in the given Types.
+	 * @param types	Search in the schemas contained in this WSDLS Types.
+	 * @param tagName XML Element name of the desired element.
+	 * @param elementName The value of the attribute "name" of the desired element. 
+	 * @return An XML element whose XML Element name is "tagName" and whose attribute "name" is "elementName".
+	 * @throws WADLSException 
+	 */
+	public static Element findXMLEleInSchemas(Grammars grammars, String tagName, QName elementName) throws WADLSException{
+		Map schemas = grammars.getSchemas();
+		Iterator it = schemas.values().iterator();
+		while(it.hasNext()){
+			Schema schema = (Schema)(it.next());
+			Element schemaEle = schema.getElement();
+			if (schemaEle.getAttribute(Constants.ATTR_TARGET_NAMESPACE).equals(elementName.getNamespaceURI())){
+				Element foundEle = findXMLEleByName(schemaEle, tagName, elementName);
+				if (foundEle != null)
+					return foundEle;
+			}
+		}
+		return null;
+	}
+	
+	/**
+	 * Search the element whose XML Element name is "tagName" and whose attribute "name" is "elementName",
+	 *  in the startElement, search in only one level depth.
+	 * @param startElement Start searching from this XML Element.
+	 * @param tagName XML Element name of the desired element.
+	 * @param elementName The value of the attribute "name" of the desired element. 
+	 * @return An XML element whose XML Element name is "tagName" and whose attribute "name" is "elementName".
+	 * @throws WADLSException
+	 */
+	public static Element findXMLEleByName(Element startElement, String tagName, QName elementName) throws WADLSException{
+		NodeList nodeList = startElement.getChildNodes();
+		//find the element with the required name as an attribute
+		int listLength = nodeList.getLength();
+		for(int i=0;i<listLength;i++){
+			Node currentNode = nodeList.item(i);
+			if (currentNode.getNodeType() != Node.ELEMENT_NODE) continue;
+			Element currentElement = (Element)nodeList.item(i);
+			//get the "name" attribute
+			String nameAttr = currentElement.getAttribute(SchemaConstants.ATTR_NAME);
+			QName qNameAttr = QNameUtils.getQName(nameAttr, currentElement);
+			//compare both namespaceURI and localname of the "name" attribute
+			if (elementName == null || qNameAttr.equals(elementName)){
+				//compare localname of the tag, and check namespace of the tag is XSD
+				QName currentTagQName = QNameUtils.getQName(currentElement.getTagName(), currentElement);
+				if (SchemaConstants.XSD_STR_LIST.contains(currentTagQName.getNamespaceURI())
+						&& tagName.equals(currentTagQName.getLocalPart())){
+					//this is the element we are looking for.
+					return currentElement;
+				}
+			}
+		}
+		return null;
+	}
+	
+	
+	/**
+	 * Return a list of XSD elements contained in the startElement (XSD Element), search in only 1 level depth.
+	 * @param startElement Start search from this XSD element.
+	 * @param types WSDLS Types
+	 * @return A list of XSD elements contained in the startElement. If no XSD element is contained, the list has 0 element.
+	 * @throws WADLSException
+	 */
+	public static List listXSDElesInEle(Element startElement, Grammars grammars) throws WADLSException{
+		String refAttr = startElement.getAttribute(SchemaConstants.ATTR_REF);
+		if (refAttr != ""){
+			//look for the referenced element
+			QName elementQName = QNameUtils.getQName(refAttr, startElement);
+			Element refenecedElement = findXMLEleInSchemas(grammars, SchemaConstants.ELEM_ELEMENT, elementQName);
+			if (refenecedElement != null)
+				return listXSDElesInEle(refenecedElement, grammars);
+			else{
+				throw new DOMException(DOMException.NOT_FOUND_ERR, "Cannot find referenced element");
+			}
+		}
+		else{
+			Element complexElement = null;
+			String typeAttr = startElement.getAttribute(SchemaConstants.ATTR_TYPE);
+			if (typeAttr != ""){
+				//get the QName of typeAttr
+				QName typeQName = QNameUtils.getQName(typeAttr, startElement);
+				if (SchemaConstants.XSD_STR_LIST.contains(typeQName.getNamespaceURI()))
+					//primitive data type
+					return new ArrayList();
+				else{
+					//ComplexType or SimpleType
+					complexElement = findXMLEleInSchemas(grammars, SchemaConstants.ELEM_COMPLEXTYPE, typeQName);
+					if (complexElement == null)
+						//simpleType
+						return new ArrayList();;
+				}
+			}
+			else{
+				//No type, look for complexType in the subNodes
+				complexElement = findXMLEleByName(startElement, SchemaConstants.ELEM_COMPLEXTYPE, null);
+				if (complexElement == null){
+					WADLSException wsdlsExc = new WADLSException(WADLSException.NOT_FOUND_ELE_BY_PATH, 
+							"cannot find complexType matching the path");
+					wsdlsExc.setLocation(XPathUtils.getXPathExprFromNode(startElement));
+					throw wsdlsExc;
+				}
+			}
+			
+			//we got the complexType element so far.
+			//we need to collect all the elements
+			return listXSDElesInComplexType(complexElement);
+		}
+	}
+	
+	public static List listXSDElesInEle(Element startElement, Params params) throws WADLSException{
+		/*String refAttr = startElement.getAttribute(SchemaConstants.ATTR_REF);
+		if (refAttr != ""){
+			//look for the referenced element
+			QName elementQName = QNameUtils.getQName(refAttr, startElement);
+			Element refenecedElement = findXMLEleInSchemas(grammars, SchemaConstants.ELEM_ELEMENT, elementQName);
+			if (refenecedElement != null)
+				return listXSDElesInEle(refenecedElement, grammars);
+			else{
+				throw new DOMException(DOMException.NOT_FOUND_ERR, "Cannot find referenced element");
+			}
+		}
+		else{
+			Element complexElement = null;
+			String typeAttr = startElement.getAttribute(SchemaConstants.ATTR_TYPE);
+			if (typeAttr != ""){
+				//get the QName of typeAttr
+				QName typeQName = QNameUtils.getQName(typeAttr, startElement);
+				if (SchemaConstants.XSD_STR_LIST.contains(typeQName.getNamespaceURI()))
+					//primitive data type
+					return new ArrayList();
+				else{
+					//ComplexType or SimpleType
+					complexElement = findXMLEleInSchemas(grammars, SchemaConstants.ELEM_COMPLEXTYPE, typeQName);
+					if (complexElement == null)
+						//simpleType
+						return new ArrayList();;
+				}
+			}
+			else{
+				//No type, look for complexType in the subNodes
+				complexElement = findXMLEleByName(startElement, SchemaConstants.ELEM_COMPLEXTYPE, null);
+				if (complexElement == null){
+					WADLSException wsdlsExc = new WADLSException(WADLSException.NOT_FOUND_ELE_BY_PATH, 
+							"cannot find complexType matching the path");
+					wsdlsExc.setLocation(XPathUtils.getXPathExprFromNode(startElement));
+					throw wsdlsExc;
+				}
+			}
+			
+			//we got the complexType element so far.
+			//we need to collect all the elements
+			return listXSDElesInComplexType(complexElement);
+		}*/
+		
+		List temp = null;
+		temp.set(1, startElement);
+		return temp;
+		
+	}
+	
+	/**
+	 * Return a list of XSD elements contained in the complexElement (XSD complexType), search in only 1 level depth.
+	 * @param complexElement Start search from this XSD complexType.
+	 * @return A list of XSD elements contained in the startElement. If no XSD element is contained, the list has 0 element.
+	 * @throws WADLSException
+	 */
+	public static List listXSDElesInComplexType(Element complexElement) throws WADLSException{
+		List subElements = new ArrayList();
+		
+		NodeList subNodes = complexElement.getChildNodes();
+		int length = subNodes.getLength();
+		for(int i=0;i<length;i++){
+			Node currentNode = subNodes.item(i);
+			if (currentNode.getNodeType() != Node.ELEMENT_NODE) continue;
+			Element currentElement = (Element)currentNode;
+			String tagName = currentElement.getTagName();
+			QName tagQName = QNameUtils.getQName(tagName, currentElement);
+			String localPart = tagQName.getLocalPart();
+			if (!SchemaConstants.XSD_STR_LIST.contains(tagQName.getNamespaceURI()))
+				continue;
+			if (localPart.equals(SchemaConstants.ELEM_ELEMENT))
+				subElements.add(currentElement);
+			else if
+				(localPart.equals(SchemaConstants.ELEM_ALL)
+				|| localPart.equals(SchemaConstants.ELEM_SEQUENCE)
+				|| localPart.equals(SchemaConstants.ELEM_CHOICE)
+				|| localPart.equals(SchemaConstants.ELEM_COMPLEXCONTENT)
+				|| localPart.equals(SchemaConstants.ELEM_RESTRICTION)
+				)
+				//Just skip it, call this method recursively.
+				subElements.addAll(listXSDElesInComplexType(currentElement));
+		}
+		return subElements;
+	}
+		
+	/**
+	 * Search an XSD element located by the startElement and path.
+	 * @param startElement Start search from this XSD element.
+	 * @param path
+	 * @param types WSDLS Types
+	 * @return An XSD element
+	 * @throws WADLSException
+	 */
+	public static Element findXSDEleOnEle(Element startElement, String path, Grammars grammars) throws WADLSException{
+		String refAttr = startElement.getAttribute(SchemaConstants.ATTR_REF);
+		if (refAttr != ""){
+			//look for the referenced element
+			QName elementQName = QNameUtils.getQName(refAttr, startElement);
+			Element refenecedElement = findXMLEleInSchemas(grammars, SchemaConstants.ELEM_ELEMENT, elementQName);
+			if (refenecedElement != null)
+				return findXSDEleOnEle(refenecedElement, path, grammars);
+			else{
+				throw new DOMException(DOMException.NOT_FOUND_ERR, "Cannot find referenced element");
+			}
+		}
+		else{
+			if (path == "")
+				return startElement;
+			
+			String typeAttr = startElement.getAttribute(SchemaConstants.ATTR_TYPE);
+			if (typeAttr != ""){			//<... type="...">
+				//get the QName of typeAttr
+				QName typeQName = QNameUtils.getQName(typeAttr, startElement);
+				if (SchemaConstants.XSD_STR_LIST.contains(typeQName.getNamespaceURI())){
+					//primitive data type
+					WADLSException wsdlsExc = new WADLSException(WADLSException.PATH_ERROR, 
+							"Primitive type cannot has path");
+					wsdlsExc.setLocation(XPathUtils.getXPathExprFromNode(startElement));
+					throw wsdlsExc;
+				}
+				else{
+					//find the complexType with the given type QName
+					Element complexTypeElement = findXMLEleInSchemas(grammars, SchemaConstants.ELEM_COMPLEXTYPE, typeQName);
+					if (complexTypeElement != null)
+						return findXSDEleOnComplexType(complexTypeElement, path, grammars);
+					else
+					//cannot find in complexType
+						throw new DOMException(DOMException.NOT_FOUND_ERR, "cannot find complexType by the given path");
+				}
+			}
+			else{
+				//No type, look for complexType in the subNodes
+				Element complexElement = findXMLEleByName(startElement, SchemaConstants.ELEM_COMPLEXTYPE, null);
+				if (complexElement != null)
+					return findXSDEleOnComplexType(complexElement, path, grammars);
+				else{
+					WADLSException wsdlsExc = new WADLSException(WADLSException.NOT_FOUND_ELE_BY_PATH, 
+							"cannot find complexType matching the path");
+					wsdlsExc.setLocation(XPathUtils.getXPathExprFromNode(startElement));
+					throw wsdlsExc;
+				}
+			}
+		}
+	}
+	
+	public static Element findXSDEleOnEle(Element startElement, String path, Params params) throws WADLSException{
+		/*String refAttr = startElement.getAttribute(SchemaConstants.ATTR_REF);
+		if (refAttr != ""){
+			//look for the referenced element
+			QName elementQName = QNameUtils.getQName(refAttr, startElement);
+			Element refenecedElement = findXMLEleInSchemas(params, SchemaConstants.ELEM_ELEMENT, elementQName);
+			if (refenecedElement != null)
+				return findXSDEleOnEle(refenecedElement, path, grammars);
+			else{
+				throw new DOMException(DOMException.NOT_FOUND_ERR, "Cannot find referenced element");
+			}
+		}
+		else{
+			if (path == "")
+				return startElement;
+			
+			String typeAttr = startElement.getAttribute(SchemaConstants.ATTR_TYPE);
+			if (typeAttr != ""){			//<... type="...">
+				//get the QName of typeAttr
+				QName typeQName = QNameUtils.getQName(typeAttr, startElement);
+				if (SchemaConstants.XSD_STR_LIST.contains(typeQName.getNamespaceURI())){
+					//primitive data type
+					WADLSException wsdlsExc = new WADLSException(WADLSException.PATH_ERROR, 
+							"Primitive type cannot has path");
+					wsdlsExc.setLocation(XPathUtils.getXPathExprFromNode(startElement));
+					throw wsdlsExc;
+				}
+				else{
+					//find the complexType with the given type QName
+					Element complexTypeElement = findXMLEleInSchemas(grammars, SchemaConstants.ELEM_COMPLEXTYPE, typeQName);
+					if (complexTypeElement != null)
+						return findXSDEleOnComplexType(complexTypeElement, path, grammars);
+					else
+					//cannot find in complexType
+						throw new DOMException(DOMException.NOT_FOUND_ERR, "cannot find complexType by the given path");
+				}
+			}
+			else{
+				//No type, look for complexType in the subNodes
+				Element complexElement = findXMLEleByName(startElement, SchemaConstants.ELEM_COMPLEXTYPE, null);
+				if (complexElement != null)
+					return findXSDEleOnComplexType(complexElement, path, grammars);
+				else{
+					WADLSException wsdlsExc = new WADLSException(WADLSException.NOT_FOUND_ELE_BY_PATH, 
+							"cannot find complexType matching the path");
+					wsdlsExc.setLocation(XPathUtils.getXPathExprFromNode(startElement));
+					throw wsdlsExc;
+				}
+			}
+		}*/
+		return startElement;
+	}
+
+	/**
+	 * Search an XSD Element from the XSD complexType.
+	 * @param complexTypeElement Start searching from this XSD ComplexType
+	 * @param path
+	 * @param types	WSDLS Types
+	 * @return An XSD Element
+	 * @throws WADLSException
+	 */
+	public static Element findXSDEleOnComplexType(Element complexTypeElement, String path, Grammars grammars) throws WADLSException{
+		if (path == null || path == "")
+			return null;
+		//look for the matching element.
+		String splitedPath[] = splitPath(path);
+		String elementName = splitedPath[0];
+		path = splitedPath[1];
+		Element targetElement = findXSDEleInComplexType(complexTypeElement, elementName, grammars);
+		if (targetElement != null)
+			return findXSDEleOnEle(targetElement, path, grammars);
+		else{
+			WADLSException wsdlsExc = new WADLSException(WADLSException.NOT_FOUND_ELE_BY_PATH, 
+			"Cannot find the element matching the path");
+			wsdlsExc.setLocation(XPathUtils.getXPathExprFromNode(complexTypeElement));
+			throw wsdlsExc;
+		}
+	}
+	
+	public static Element findXSDEleOnComplexType(Element complexTypeElement, String path, Params params) throws WADLSException{
+		/*if (path == null || path == "")
+			return null;
+		//look for the matching element.
+		String splitedPath[] = splitPath(path);
+		String elementName = splitedPath[0];
+		path = splitedPath[1];
+		Element targetElement = findXSDEleInComplexType(complexTypeElement, elementName, grammars);
+		if (targetElement != null)
+			return findXSDEleOnEle(targetElement, path, grammars);
+		else{
+			WADLSException wsdlsExc = new WADLSException(WADLSException.NOT_FOUND_ELE_BY_PATH, 
+			"Cannot find the element matching the path");
+			wsdlsExc.setLocation(XPathUtils.getXPathExprFromNode(complexTypeElement));
+			throw wsdlsExc;
+		}*/
+		return complexTypeElement;
+	}
+
+	/**
+	 * Search an XSD Element recursively inside of the complexType.
+	 * @param startElement
+	 * @param elementName The desired attribute "name"
+	 * @param types WSDL Types
+	 * @return A XSD Element
+	 * @throws WADLSException
+	 */
+	public static Element findXSDEleInComplexType(Element startElement, String elementName, Grammars grammars) throws WADLSException{
+		NodeList subNodes = startElement.getChildNodes();
+		int length = subNodes.getLength();
+		for(int i=0;i<length;i++){
+			Node currentNode = subNodes.item(i);
+			if (currentNode.getNodeType() != Node.ELEMENT_NODE) continue;
+			Element currentElement = (Element)currentNode;
+			String tagName = currentElement.getTagName();
+			QName tagQName = QNameUtils.getQName(tagName, currentElement);
+			String localPart = tagQName.getLocalPart();
+			if (!SchemaConstants.XSD_STR_LIST.contains(tagQName.getNamespaceURI()))
+				continue;
+			if (localPart.equals(SchemaConstants.ELEM_ELEMENT)){
+				String refAttr = currentElement.getAttribute(SchemaConstants.ATTR_REF);
+				if (refAttr != ""){
+					if (refAttr.equals(elementName)){	//TODO need to compare the namespaces
+						//look for the referenced element
+						QName elementQName = QNameUtils.getQName(refAttr, currentElement);
+						Element refenecedElement = findXMLEleInSchemas(grammars, SchemaConstants.ELEM_ELEMENT, elementQName);
+						return refenecedElement;
+					}
+				}
+				else{
+					String nameAttr = currentElement.getAttribute(SchemaConstants.ATTR_NAME);
+//					if (nameAttr == "") continue;
+					if (nameAttr.equals(elementName))	//TODO need to compare the namespaces
+						//this is the element we are looking for.
+						return currentElement;
+				}
+			}
+			else if
+				(localPart.equals(SchemaConstants.ELEM_ALL)
+				|| localPart.equals(SchemaConstants.ELEM_SEQUENCE)
+				|| localPart.equals(SchemaConstants.ELEM_CHOICE)
+				|| localPart.equals(SchemaConstants.ELEM_COMPLEXCONTENT)
+				|| localPart.equals(SchemaConstants.ELEM_RESTRICTION)
+				){
+				//Just skip it, call this method recursively.
+				return findXSDEleInComplexType(currentElement, elementName, grammars);
+			}
+			else if (localPart.equals(SchemaConstants.ELEM_EXTENSION)){
+				//try to find it inside the <xsd:extension>
+				Element returnElement = findXSDEleInComplexType(currentElement, elementName, grammars);
+				if (returnElement != null)
+					return returnElement;
+				else{
+					String baseAttr = currentElement.getAttribute(SchemaConstants.ATTR_BASE);
+					QName baseQName = QNameUtils.getQName(baseAttr, currentElement);
+					Element baseElement = findXMLEleInSchemas(grammars, SchemaConstants.ELEM_COMPLEXTYPE, baseQName);
+					return findXSDEleInComplexType(baseElement, elementName, grammars);
+				}
+			}
+			else if (localPart.equals(SchemaConstants.ELEM_GROUP)){
+				//find <group>.
+				String refAttr = currentElement.getAttribute(SchemaConstants.ATTR_REF);
+				if (refAttr != ""){
+					//look for the referenced <group>
+					QName groupQName = QNameUtils.getQName(refAttr, currentElement);
+					Element groupElement = findXMLEleInSchemas(grammars, SchemaConstants.ELEM_GROUP, groupQName);
+					if (groupElement != null){
+						//try to find it in the referenced <group>
+						Element returnElement = findXSDEleInComplexType(groupElement, elementName, grammars);
+						if (returnElement != null)
+							return returnElement;
+						else
+							//Not in the referenced <group>
+							continue;
+					}
+					else
+						throw new DOMException(DOMException.NOT_FOUND_ERR, "Cannot find the referenced group");
+				}
+				else
+					//Just skip it, call this method recursively.
+					return findXSDEleInComplexType(currentElement, elementName, grammars);
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * return the first schema in the given extensible elements.
+	 * @param extElements Search the first schema in this extensible elements.
+	 * @return The first schema in the given extensible elements.
+	 * @throws WADLSException
+	 */
+	public static Schema getFirstSchema(List extElements){
+		if (extElements == null)
+			return null;
+		Object schemaObj = extElements.iterator().next();
+		if (schemaObj == null)
+			return null;
+	/*	ExtensibilityElement schemaEE = (ExtensibilityElement) schemaObj;
+		if (SchemaConstants.XSD_QNAME_LIST.contains(schemaEE.getElementType()))
+			return (Schema)schemaObj;
+		else*/
+			return null;
+	}
+	
+	/**
+	 * return all schemas in the given extensible elements.
+	 * @param extElements Search the first schema in this extensible elements.
+	 * @return All schemas in the given extensible elements.
+	 * @throws WADLSException
+	 */
+	public static List getSchemas(List extElements){
+		List schemas = new ArrayList();
+		if (extElements != null){
+			Iterator it = extElements.iterator();
+			while(it.hasNext()){
+				Object schemaObj = it.next();
+				if (schemaObj == null)
+					continue;
+				/*ExtensibilityElement schemaEE = (ExtensibilityElement) schemaObj;
+				if (SchemaConstants.XSD_QNAME_LIST.contains(schemaEE.getElementType()))
+					schemas.add((Schema)schemaObj);*/
+			}
+		}
+		return schemas;
+	}
+
+	/**
+	 * This method split the path string, return a string array, 
+	 * whose first dim is the string before the first '/' ,
+	 * and the second dim is the remaining string.
+	 * @param path The path to be splitted.
+	 * @return The splitted string.
+	 */
+	public static String[] splitPath(String path){
+		String returnStr[] = new String[2];	//the string before '/'
+		int slashPosition = path.indexOf('/');
+		if (slashPosition == -1){
+			//no deeper path
+			returnStr[0] = path;
+			returnStr[1] = "";
+		}
+		else{
+			returnStr[0] = path.substring(0, slashPosition);
+			returnStr[1] = path.substring(slashPosition+1);
+			//if the remaining path is "/", empty it.
+			if (returnStr[1] == "/") returnStr[1] = "";
+		}
+		return returnStr;
+	}	
+	
+}
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/util/StringUtils.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/util/StringUtils.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,230 @@
+/*
+ * (c) Copyright IBM Corp 2001, 2005 
+ */
+
+package edu.uga.cs.lsdis.meteors.wadls.util;
+
+import java.io.*;
+import java.util.*;
+import java.net.URL;
+import java.net.MalformedURLException;
+
+/**
+ * Deals with strings (probably need to elaborate some more).
+ *
+ * @author   Matthew J. Duftler
+ */
+public class StringUtils
+{
+  public static final String lineSeparator =
+    System.getProperty("line.separator", "\n");
+  public static final String lineSeparatorStr = cleanString(lineSeparator);
+
+  // Ensure that escape sequences are passed through properly.
+  public static String cleanString(String str)
+  {
+    if (str == null)
+      return null;
+    else
+    {
+      char[]       charArray = str.toCharArray();
+      StringBuffer sBuf      = new StringBuffer();
+      
+      for (int i = 0; i < charArray.length; i++)
+        switch (charArray[i])
+        {
+          case '\"' : sBuf.append("\\\"");
+                      break;
+          case '\\' : sBuf.append("\\\\");
+                      break;
+          case '\n' : sBuf.append("\\n");
+                      break;
+          case '\r' : sBuf.append("\\r");
+                      break;
+          default   : sBuf.append(charArray[i]);
+                      break;
+        }
+      
+      return sBuf.toString();
+    }
+  }
+
+  /*
+    This method will return the correct name for a class object representing
+    a primitive, a single instance of a class, as well as n-dimensional arrays
+    of primitives or instances. This logic is needed to handle the string returned
+    from Class.getName(). If the class object represents a single instance (or
+    a primitive), Class.getName() returns the fully-qualified name of the class
+    and no further work is needed. However, if the class object represents an
+    array (of n dimensions), Class.getName() returns a Descriptor (the Descriptor
+    grammar is defined in section 4.3 of the Java VM Spec). This method will
+    parse the Descriptor if necessary.
+  */
+  public static String getClassName(Class targetClass)
+  {
+    String className = targetClass.getName();
+
+    return targetClass.isArray() ? parseDescriptor(className) : className;
+  }
+
+  /*
+    See the comment above for getClassName(targetClass)...
+  */
+  private static String parseDescriptor(String className)
+  {
+    char[] classNameChars = className.toCharArray();
+    int    arrayDim       = 0;
+    int    i              = 0;
+
+    while (classNameChars[i] == '[')
+    {
+      arrayDim++;
+      i++;
+    }
+
+    StringBuffer classNameBuf = new StringBuffer();
+
+    switch (classNameChars[i++])
+    {
+      case 'B' : classNameBuf.append("byte");
+                 break;
+      case 'C' : classNameBuf.append("char");
+                 break;
+      case 'D' : classNameBuf.append("double");
+                 break;
+      case 'F' : classNameBuf.append("float");
+                 break;
+      case 'I' : classNameBuf.append("int");
+                 break;
+      case 'J' : classNameBuf.append("long");
+                 break;
+      case 'S' : classNameBuf.append("short");
+                 break;
+      case 'Z' : classNameBuf.append("boolean");
+                 break;
+      case 'L' : classNameBuf.append(classNameChars,
+                                     i, classNameChars.length - i - 1);
+                 break;
+    }
+
+    for (i = 0; i < arrayDim; i++)
+      classNameBuf.append("[]");
+
+    return classNameBuf.toString();
+  }
+
+  /*
+  @param contextURL the context in which to attempt to resolve the spec.
+  Effectively a document base.
+  */
+  public static URL getURL(URL contextURL, String spec)
+    throws MalformedURLException
+  {
+    if (contextURL != null)
+    {
+      File tempFile = new File(spec);
+
+      if (tempFile.isAbsolute())
+      {
+        return tempFile.toURL();
+      }
+    }
+
+    try
+    {
+      return new URL(contextURL, spec);
+    }
+    catch (MalformedURLException e)
+    {
+      if (contextURL == null)
+      {
+        return new File(spec).toURL();
+      }
+      else
+      {
+        throw e;
+      }
+    }
+  }
+
+  /*
+    Returns an InputStream for reading from the specified resource, if the
+    resource points to a stream.
+  */
+  public static InputStream getContentAsInputStream(URL url)
+    throws SecurityException,
+           IllegalArgumentException,
+           IOException
+  {
+    if (url == null)
+    {
+      throw new IllegalArgumentException("URL cannot be null.");
+    }
+
+    try
+    {
+      Object content = url.getContent();
+
+      if (content == null)
+      {
+        throw new IllegalArgumentException("No content.");
+      }
+
+      if (content instanceof InputStream)
+      {
+        return (InputStream)content;
+      }
+      else
+      {
+        throw new IllegalArgumentException((content instanceof String)
+                                           ? (String)content
+                                           : "This URL points to a: " +
+                                             StringUtils.getClassName(content.getClass()));
+      }
+    }
+    catch (SecurityException e)
+    {
+      throw new SecurityException("Your JVM's SecurityManager has " +
+                                  "disallowed this.");
+    }
+    catch (FileNotFoundException e)
+    {
+      throw new FileNotFoundException("This file was not found: " + url);
+    }
+  }
+
+  public static List parseNMTokens(String nmTokens)
+  {
+    StringTokenizer strTok = new StringTokenizer(nmTokens, " ");
+    List tokens = new Vector();
+
+    while (strTok.hasMoreTokens())
+    {
+      tokens.add(strTok.nextToken());
+    }
+
+    return tokens;
+  }
+
+  public static String getNMTokens(List list)
+  {
+    if (list != null)
+    {
+      StringBuffer strBuf = new StringBuffer();
+      int size = list.size();
+
+      for (int i = 0; i < size; i++)
+      {
+        String token = (String)list.get(i);
+
+        strBuf.append((i > 0 ? " " : "") + token);
+      }
+
+      return strBuf.toString();
+    }
+    else
+    {
+      return null;
+    }
+  }
+}
\ No newline at end of file
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/util/xml/DOM2Writer.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/util/xml/DOM2Writer.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,427 @@
+/*
+ * (c) Copyright IBM Corp 2001, 2005 
+ */
+
+package edu.uga.cs.lsdis.meteors.wadls.util.xml;
+
+import java.io.*;
+import java.util.*;
+import org.w3c.dom.*;
+
+import edu.uga.cs.lsdis.meteors.wadls.*;
+import edu.uga.cs.lsdis.meteors.wadls.util.*;
+
+/**
+ * This class is a utility to serialize a DOM node as XML. This class
+ * uses the <code>DOM Level 2</code> APIs.
+ * The main difference between this class and DOMWriter is that this class
+ * generates and prints out namespace declarations.
+ *
+ * @author Matthew J. Duftler (duftler@us.ibm.com)
+ * @author Joseph Kesselman
+ */
+public class DOM2Writer
+{
+  /**
+   * The namespaceURI represented by the prefix <code>xmlns</code>.
+   */
+  private static String NS_URI_XMLNS = "http://www.w3.org/2000/xmlns/";
+
+  /**
+   * The namespaceURI represented by the prefix <code>xml</code>.
+   */
+  private static String NS_URI_XML = "http://www.w3.org/XML/1998/namespace";
+
+  private static Map xmlEncodingMap = new HashMap();
+
+  static
+  {
+    xmlEncodingMap.put(null, Constants.XML_DECL_DEFAULT);
+    xmlEncodingMap.put(System.getProperty("file.encoding"),
+                       Constants.XML_DECL_DEFAULT);
+    xmlEncodingMap.put("UTF8", "UTF-8");
+    xmlEncodingMap.put("UTF-16", "UTF-16");
+    xmlEncodingMap.put("UnicodeBig", "UTF-16");
+    xmlEncodingMap.put("UnicodeLittle", "UTF-16");
+    xmlEncodingMap.put("ASCII", "US-ASCII");
+    xmlEncodingMap.put("ISO8859_1", "ISO-8859-1");
+    xmlEncodingMap.put("ISO8859_2", "ISO-8859-2");
+    xmlEncodingMap.put("ISO8859_3", "ISO-8859-3");
+    xmlEncodingMap.put("ISO8859_4", "ISO-8859-4");
+    xmlEncodingMap.put("ISO8859_5", "ISO-8859-5");
+    xmlEncodingMap.put("ISO8859_6", "ISO-8859-6");
+    xmlEncodingMap.put("ISO8859_7", "ISO-8859-7");
+    xmlEncodingMap.put("ISO8859_8", "ISO-8859-8");
+    xmlEncodingMap.put("ISO8859_9", "ISO-8859-9");
+    xmlEncodingMap.put("ISO8859_13", "ISO-8859-13");
+    xmlEncodingMap.put("ISO8859_15_FDIS", "ISO-8859-15");
+    xmlEncodingMap.put("GBK", "GBK");
+    xmlEncodingMap.put("Big5", "Big5");
+  }
+  
+  /**
+   * Return a string containing this node serialized as XML.
+   */
+  public static String nodeToString(Node node)
+  {
+    StringWriter sw = new StringWriter();
+
+    serializeAsXML(node, sw);
+
+    return sw.toString();
+  }
+
+
+  /**
+   * Print an XML declaration before serializing the element.
+   */
+  public static void serializeElementAsDocument(Element el, Writer writer)
+  {
+    PrintWriter pw = new PrintWriter(writer);
+    String javaEncoding = (writer instanceof OutputStreamWriter)
+                ? ((OutputStreamWriter) writer).getEncoding()
+                : null;
+                
+    String xmlEncoding = java2XMLEncoding(javaEncoding);                
+    
+    if (xmlEncoding != null)
+    { 
+      pw.println(Constants.XML_DECL_START +
+                 xmlEncoding +
+                 Constants.XML_DECL_END);
+    }
+    else
+    {
+      pw.println("<?xml version=\"1.0\"?>");
+    }
+
+    serializeAsXML(el, writer);
+  }
+  
+  /**
+  * Serialize this node into the writer as XML.
+  */
+  public static void serializeAsXML(Node node, Writer writer)
+  {
+    ObjectRegistry namespaceStack = new ObjectRegistry();
+
+    namespaceStack.register("xml", NS_URI_XML);
+
+    PrintWriter pw = new PrintWriter(writer);
+    String javaEncoding = (writer instanceof OutputStreamWriter)
+                ? ((OutputStreamWriter) writer).getEncoding()
+                : null;
+
+    print(node, namespaceStack, pw, java2XMLEncoding(javaEncoding));
+  }
+
+  private static void print(Node node, ObjectRegistry namespaceStack,
+                            PrintWriter out, String xmlEncoding)
+  {
+    if (node == null)
+    {
+      return;
+    }
+
+    boolean hasChildren = false;
+    int type = node.getNodeType();
+
+    switch (type)
+    {
+      case Node.DOCUMENT_NODE :
+      {
+        if (xmlEncoding != null)
+        { 
+          out.println(Constants.XML_DECL_START +
+                     xmlEncoding +
+	                 Constants.XML_DECL_END);
+        }
+        else
+        {
+          out.println("<?xml version=\"1.0\"?>");
+        }
+
+        NodeList children = node.getChildNodes();
+
+        if (children != null)
+        {
+          int numChildren = children.getLength();
+
+          for (int i = 0; i < numChildren; i++)
+          {
+            print(children.item(i), namespaceStack, out, xmlEncoding);
+          }
+        }
+        break;
+      }
+
+      case Node.ELEMENT_NODE :
+      {
+        namespaceStack = new ObjectRegistry(namespaceStack);
+
+        out.print('<' + node.getNodeName());
+
+        String elPrefix = node.getPrefix();
+        String elNamespaceURI = node.getNamespaceURI();
+
+        if (elPrefix != null && elNamespaceURI != null)
+        {
+          boolean prefixIsDeclared = false;
+
+          try
+          {
+            String namespaceURI = (String)namespaceStack.lookup(elPrefix);
+
+            if (elNamespaceURI.equals(namespaceURI))
+            {
+              prefixIsDeclared = true;
+            }
+          }
+          catch (IllegalArgumentException e)
+          {
+            // ignore this and carry on
+          }
+
+          if (!prefixIsDeclared)
+          {
+            printNamespaceDecl(node, namespaceStack, out);
+          }
+        }
+
+        NamedNodeMap attrs = node.getAttributes();
+        int len = (attrs != null) ? attrs.getLength() : 0;
+
+        for (int i = 0; i < len; i++)
+        {
+          Attr attr = (Attr)attrs.item(i);
+
+          out.print(' ' + attr.getNodeName() +"=\"" +
+                    normalize(attr.getValue()) + '\"');
+
+          String attrPrefix = attr.getPrefix();
+          String attrNamespaceURI = attr.getNamespaceURI();
+
+          if (attrPrefix != null && attrNamespaceURI != null)
+          {
+            boolean prefixIsDeclared = false;
+
+            try
+            {
+              String namespaceURI = (String)namespaceStack.lookup(attrPrefix);
+
+              if (attrNamespaceURI.equals(namespaceURI))
+              {
+                prefixIsDeclared = true;
+              }
+            }
+            catch (IllegalArgumentException e)
+            {
+              // ignore this and carry on
+            }
+
+            if (!prefixIsDeclared)
+            {
+              printNamespaceDecl(attr, namespaceStack, out);
+            }
+          }
+        }
+
+        NodeList children = node.getChildNodes();
+
+        if (children != null)
+        {
+          int numChildren = children.getLength();
+
+          hasChildren = (numChildren > 0);
+
+          if (hasChildren)
+          {
+            out.print('>');
+          }
+
+          for (int i = 0; i < numChildren; i++)
+          {
+            print(children.item(i), namespaceStack, out, xmlEncoding);
+          }
+        }
+        else
+        {
+          hasChildren = false;
+        }
+
+        if (!hasChildren)
+        {
+          out.print("/>");
+        }
+        break;
+      }
+
+      case Node.ENTITY_REFERENCE_NODE :
+      {
+        out.print('&');
+        out.print(node.getNodeName());
+        out.print(';');
+        break;
+      }
+
+      case Node.CDATA_SECTION_NODE :
+      {
+        out.print("<![CDATA[");
+        out.print(node.getNodeValue());
+        out.print("]]>");
+        break;
+      }
+
+      case Node.TEXT_NODE :
+      {
+        out.print(normalize(node.getNodeValue()));
+        break;
+      }
+
+      case Node.COMMENT_NODE :
+      {
+        out.print("<!--");
+        out.print(node.getNodeValue());
+        out.print("-->");
+        break;
+      }
+
+      case Node.PROCESSING_INSTRUCTION_NODE :
+      {
+        out.print("<?");
+        out.print(node.getNodeName());
+
+        String data = node.getNodeValue();
+
+        if (data != null && data.length() > 0)
+        {
+          out.print(' ');
+          out.print(data);
+        }
+
+        out.println("?>");
+        break;
+      }
+    }
+
+    if (type == Node.ELEMENT_NODE && hasChildren == true)
+    {
+      out.print("</");
+      out.print(node.getNodeName());
+      out.print('>');
+      hasChildren = false;
+    }
+  }
+
+  public static String java2XMLEncoding(String javaEnc)
+  {
+    return (String)xmlEncodingMap.get(javaEnc);
+  }
+
+  
+  private static void printNamespaceDecl(Node node,
+                                         ObjectRegistry namespaceStack,
+                                         PrintWriter out)
+  {
+    switch (node.getNodeType())
+    {
+      case Node.ATTRIBUTE_NODE :
+      {
+        printNamespaceDecl(((Attr)node).getOwnerElement(), node,
+                           namespaceStack, out);
+        break;
+      }
+
+      case Node.ELEMENT_NODE :
+      {
+        printNamespaceDecl((Element)node, node, namespaceStack, out);
+        break;
+      }
+    }
+  }
+
+  private static void printNamespaceDecl(Element owner, Node node,
+                                         ObjectRegistry namespaceStack,
+                                         PrintWriter out)
+  {
+    String namespaceURI = node.getNamespaceURI();
+    String prefix = node.getPrefix();
+
+    if (!(namespaceURI.equals(NS_URI_XMLNS) && prefix.equals("xmlns")))
+    {
+      if (DOMUtils.getAttributeNS(owner, NS_URI_XMLNS, prefix) == null)
+      {
+        out.print(" xmlns:" + prefix + "=\"" + namespaceURI + '\"');
+      }
+    }
+    else
+    {
+      prefix = node.getLocalName();
+      namespaceURI = node.getNodeValue();
+    }
+
+    namespaceStack.register(prefix, namespaceURI);
+  }
+
+  private static String normalize(String s)
+  {
+    StringBuffer str = new StringBuffer();
+    int len = (s != null) ? s.length() : 0;
+
+    for (int i = 0; i < len; i++)
+    {
+      char ch = s.charAt(i);
+
+      switch (ch)
+      {
+        case '<' :
+        {
+          str.append("&lt;");
+          break;
+        }
+        case '>' :
+        {
+          str.append("&gt;");
+          break;
+        }
+        case '&' :
+        {
+          str.append("&amp;");
+          break;
+        }
+        case '"' :
+        {
+          str.append("&quot;");
+          break;
+        }
+        case '\n' :
+        {
+          if (i > 0)
+          {
+            char lastChar = str.charAt(str.length() - 1);
+
+            if (lastChar != '\r')
+            {
+              str.append(StringUtils.lineSeparator);
+            }
+            else
+            {
+              str.append('\n');
+            }
+          }
+          else
+          {
+            str.append(StringUtils.lineSeparator);
+          }
+          break;
+        }
+        default :
+        {
+          str.append(ch);
+        }
+      }
+    }
+
+    return (str.toString());
+  }
+}
\ No newline at end of file
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/util/xml/DOMUtils.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/util/xml/DOMUtils.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,641 @@
+/*
+ * (c) Copyright IBM Corp 2001, 2005 
+ */
+
+package edu.uga.cs.lsdis.meteors.wadls.util.xml;
+
+import java.io.*;
+import java.util.*;
+import org.w3c.dom.*;
+
+import javax.wadls.*;
+import javax.xml.namespace.*;
+
+public class DOMUtils {
+  /**
+   * The namespaceURI represented by the prefix <code>xmlns</code>.
+   */
+  private static String NS_URI_XMLNS = "http://www.w3.org/2000/xmlns/";
+
+  private static final String ATTR_XMLNS = "xmlns";
+  
+  /**
+   * Returns a list of attributes of an element. Returns an 
+   * empty list if the element has no attributes. Does not
+   * include namespace declarations.
+   *
+   * @param el       Element whose attributes are returned
+   * @return the List of Attr
+   */
+  static public List getAttributes (Element el) {
+    String nodename, prefix = null;
+    List attrs = new Vector();
+    NamedNodeMap attrMap = el.getAttributes();
+    for(int i = 0; i < attrMap.getLength(); i++)
+    {
+      nodename = attrMap.item(i).getNodeName();
+      prefix = attrMap.item(i).getPrefix();
+      
+      if (ATTR_XMLNS.equals(nodename) || ATTR_XMLNS.equals(prefix))
+      {
+        //ignore namespace declarations
+        continue;
+      }
+      else
+      {
+        attrs.add(attrMap.item(i));  
+      }
+    }
+      
+    return attrs;
+  }
+
+  /**
+   * Returns the value of an attribute of an element. Returns null
+   * if the attribute is not found (whereas Element.getAttribute
+   * returns "" if an attrib is not found). This method should be
+   * used for elements that support extension attributes because it
+   * does not track unexpected attributes.
+   *
+   * @param el       Element whose attrib is looked for
+   * @param attrName name of attribute to look for
+   * @return the attribute value
+   */
+  static public String getAttribute (Element el, String attrName) {
+    String sRet = null;
+    Attr   attr = el.getAttributeNode(attrName);
+
+    if (attr != null) {
+      sRet = attr.getValue();
+    }
+    return sRet;
+  }
+
+  /**
+   * Returns the value of an attribute of an element. Returns null
+   * if the attribute is not found (whereas Element.getAttribute
+   * returns "" if an attrib is not found). This method should be
+   * used for elements that do not support extension attributes
+   * because it tracks the element's remaining attributes so that
+   * eventually any unexpected attributes can be identified.
+   *
+   * @param el       Element whose attrib is looked for
+   * @param attrName name of attribute to look for
+   * @param remainingAttrs List of remaining attributes 
+   * @return the attribute value
+   */
+  static public String getAttribute (Element el, String attrName, List remainingAttrs) {
+    String sRet = null;
+    Attr   attr = el.getAttributeNode(attrName);
+    
+    if (attr != null) {
+      sRet = attr.getValue();
+      remainingAttrs.remove(attr);
+    }
+    return sRet;
+  }
+
+  /**
+   * Returns the value of an attribute of an element. Returns null
+   * if the attribute is not found (whereas Element.getAttributeNS
+   * returns "" if an attrib is not found).
+   *
+   * @param el       Element whose attrib is looked for
+   * @param namespaceURI namespace URI of attribute to look for
+   * @param localPart local part of attribute to look for
+   * @return the attribute value
+   */
+  static public String getAttributeNS (Element el,
+                                       String namespaceURI,
+                                       String localPart) {
+    String sRet = null;
+    Attr   attr = el.getAttributeNodeNS (namespaceURI, localPart);
+
+    if (attr != null) {
+      sRet = attr.getValue ();
+    }
+
+    return sRet;
+  }
+
+  /**
+   * Returns the value of an attribute of an element. Returns null
+   * if the attribute is not found (whereas Element.getAttributeNS
+   * returns "" if an attrib is not found).
+   *
+   * @param el       Element whose attrib is looked for
+   * @param namespaceURI namespace URI of attribute to look for
+   * @param localPart local part of attribute to look for
+   * @return the attribute value
+   */
+  static public String getAttributeNS (Element el,
+                                       String namespaceURI,
+                                       String localPart,
+                                       List remainingAttrs) {
+    String sRet = null;
+    Attr   attr = el.getAttributeNodeNS (namespaceURI, localPart);
+
+    if (attr != null) {
+        sRet = attr.getValue();
+        remainingAttrs.remove(attr);
+      }
+
+    return sRet;
+  }
+  
+  /**
+   * Concat all the text and cdata node children of this elem and return
+   * the resulting text.
+   *
+   * @param parentEl the element whose cdata/text node values are to
+   *                 be combined.
+   * @return the concatanated string.
+   */
+  static public String getChildCharacterData (Element parentEl) {
+    if (parentEl == null) {
+      return null;
+    }
+    Node          tempNode = parentEl.getFirstChild();
+    StringBuffer  strBuf   = new StringBuffer();
+    CharacterData charData;
+
+    while (tempNode != null) {
+      switch (tempNode.getNodeType()) {
+        case Node.TEXT_NODE :
+        case Node.CDATA_SECTION_NODE : charData = (CharacterData)tempNode;
+                                       strBuf.append(charData.getData());
+                                       break;
+      }
+      tempNode = tempNode.getNextSibling();
+    }
+    return strBuf.toString();
+  }
+
+  /**
+   * Return the first child element of the given element. Null if no
+   * children are found.
+   *
+   * @param elem Element whose child is to be returned
+   * @return the first child element.
+   */
+  public static Element getFirstChildElement (Element elem) {
+    for (Node n = elem.getFirstChild (); n != null; n = n.getNextSibling ()) {
+      if (n.getNodeType () == Node.ELEMENT_NODE) {
+        return (Element) n;
+      }
+    }
+    return null;
+  }
+
+  /**
+   * Return the next sibling element of the given element. Null if no
+   * more sibling elements are found.
+   *
+   * @param elem Element whose sibling element is to be returned
+   * @return the next sibling element.
+   */
+  public static Element getNextSiblingElement (Element elem) {
+    for (Node n = elem.getNextSibling (); n != null; n = n.getNextSibling ()) {
+      if (n.getNodeType () == Node.ELEMENT_NODE) {
+        return (Element) n;
+      }
+    }
+    return null;
+  }
+
+  /**
+   * Return the first child element of the given element which has the
+   * given attribute with the given value.
+   *
+   * @param elem      the element whose children are to be searched
+   * @param attrName  the attrib that must be present
+   * @param attrValue the desired value of the attribute
+   *
+   * @return the first matching child element.
+   */
+  public static Element findChildElementWithAttribute (Element elem,
+                   String attrName,
+                   String attrValue) {
+    for (Node n = elem.getFirstChild (); n != null; n = n.getNextSibling ()) {
+      if (n.getNodeType () == Node.ELEMENT_NODE) {
+        if (attrValue.equals (DOMUtils.getAttribute ((Element) n, attrName))) {
+          return (Element) n;
+        }
+      }
+    }
+    return  null;
+  }
+
+  /**
+   * Count number of children of a certain type of the given element.
+   *
+   * @param elem the element whose kids are to be counted
+   *
+   * @return the number of matching kids.
+   */
+  public static int countKids (Element elem, short nodeType) {
+    int nkids = 0;
+    for (Node n = elem.getFirstChild (); n != null; n = n.getNextSibling ()) {
+      if (n.getNodeType () == nodeType) {
+        nkids++;
+      }
+    }
+    return nkids;
+  }
+
+  /**
+   * Given a prefix and a node, return the namespace URI that the prefix
+   * has been associated with. This method is useful in resolving the
+   * namespace URI of attribute values which are being interpreted as
+   * QNames. If prefix is null, this method will return the default
+   * namespace.
+   *
+   * @param context the starting node (looks up recursively from here)
+   * @param prefix the prefix to find an xmlns:prefix=uri for
+   *
+   * @return the namespace URI or null if not found
+   */
+  public static String getNamespaceURIFromPrefix (Node context,
+                                                  String prefix) {
+    short nodeType = context.getNodeType ();
+    Node tempNode = null;
+
+    switch (nodeType)
+    {
+      case Node.ATTRIBUTE_NODE :
+      {
+        tempNode = ((Attr) context).getOwnerElement ();
+        break;
+      }
+      case Node.ELEMENT_NODE :
+      {
+        tempNode = context;
+        break;
+      }
+      default :
+      {
+        tempNode = context.getParentNode ();
+        break;
+      }
+    }
+
+    while (tempNode != null && tempNode.getNodeType () == Node.ELEMENT_NODE)
+    {
+      Element tempEl = (Element) tempNode;
+      String namespaceURI = null;
+      if (prefix == null){
+    	  namespaceURI = getAttribute (tempEl, "xmlns");
+    	  if (namespaceURI == null)
+    		  namespaceURI = getAttribute (tempEl, "targetNamespace");
+      }
+      else
+    	  namespaceURI = getAttributeNS (tempEl, NS_URI_XMLNS, prefix);
+
+      if (namespaceURI != null)
+      {
+        return namespaceURI;
+      }
+      else
+      {
+        tempNode = tempEl.getParentNode ();
+      }
+    }
+
+    return null;
+  }
+
+  public static QName getQName(String prefixedValue,
+                               Element contextEl,
+                               Application app)
+                                 throws WADLSException
+  {
+    int    index        = prefixedValue.indexOf(':');
+    String prefix       = (index != -1)
+                          ? prefixedValue.substring(0, index)
+                          : null;
+    String localPart    = prefixedValue.substring(index + 1);
+    String namespaceURI = getNamespaceURIFromPrefix(contextEl, prefix);
+
+    if (namespaceURI != null)
+    {
+      registerUniquePrefix(prefix, namespaceURI, app);
+
+      return new QName(namespaceURI, localPart);
+    }
+    else
+    {
+      String faultCode = (prefix == null)
+                         ? WADLSException.NO_PREFIX_SPECIFIED
+                         : WADLSException.UNBOUND_PREFIX;
+
+      WADLSException wsdlExc = new WADLSException(faultCode,
+                                                "Unable to determine " +
+                                                "namespace of '" +
+                                                prefixedValue + "'.");
+
+      wsdlExc.setLocation(XPathUtils.getXPathExprFromNode(contextEl));
+
+      throw wsdlExc;
+    }
+  }
+
+  public static void registerUniquePrefix(String prefix,
+                                          String namespaceURI,
+                                          Application app)
+  {
+    String tempNSUri = app.getNamespace(prefix);
+
+    if (tempNSUri != null && tempNSUri.equals(namespaceURI))
+    {
+      return;
+    }
+
+    while (tempNSUri != null && !tempNSUri.equals(namespaceURI))
+    {
+      prefix += "_";
+      tempNSUri = app.getNamespace(prefix);
+    }
+
+    app.addNamespace(prefix, namespaceURI);
+  }
+
+  /**
+   * This method should be used for elements that support extension attributes
+   * because it does not track the remaining attributes to test for unexpected 
+   * attributes.
+   */
+  public static QName getQualifiedAttributeValue(Element el,
+                                                 String attrName,
+                                                 String elDesc,
+                                                 boolean isRequired,
+                                                 Application app)
+                                                   throws WADLSException
+  {
+    String attrValue = DOMUtils.getAttribute(el, attrName);
+
+    if (attrValue != null)
+    {
+      return getQName(attrValue, el, app);
+    }
+    else if (isRequired)
+    {
+      WADLSException wsdlExc = new WADLSException(WADLSException.INVALID_WADL,
+                                                "The '" + attrName +
+                                                "' attribute must be " +
+                                                "specified for every " +
+                                                elDesc + " element.");
+
+      wsdlExc.setLocation(XPathUtils.getXPathExprFromNode(el));
+
+      throw wsdlExc;
+    }
+    else
+    {
+      return null;
+    }
+  }
+
+  /**
+   * This method should be used for elements that do not support extension attributes
+   * because it tracks the remaining attributes so that eventually any
+   * unexpected attributes can be identified.
+   */
+  public static QName getQualifiedAttributeValue(Element el,
+                                                 String attrName,
+                                                 String elDesc,
+                                                 boolean isRequired,
+                                                 Application app,
+                                                 List remainingAttrs)
+                                                   throws WADLSException
+  {
+    String attrValue = null;
+    
+    attrValue = DOMUtils.getAttribute(el, attrName, remainingAttrs);
+
+    if (attrValue != null)
+    {
+      return getQName(attrValue, el, app);
+    }
+    else if (isRequired)
+    {
+      WADLSException wsdlExc = new WADLSException(WADLSException.INVALID_WADL,
+                                                "The '" + attrName +
+                                                "' attribute must be " +
+                                                "specified for every " +
+                                                elDesc + " element.");
+
+      wsdlExc.setLocation(XPathUtils.getXPathExprFromNode(el));
+
+      throw wsdlExc;
+    }
+    else
+    {
+      return null;
+    }
+  }
+
+  public static void throwWADLException(Element location) throws WADLSException
+  {
+    String elName = QNameUtils.newQName(location).toString();
+
+    WADLSException wsdlExc = new WADLSException(WADLSException.INVALID_WADL,
+                                              "Encountered unexpected element '" +
+                                              elName + "'.");
+
+    wsdlExc.setLocation(XPathUtils.getXPathExprFromNode(location));
+
+    throw wsdlExc;
+  }
+
+  public static void throwWADLException(Element location, List remainingAttrs) throws WADLSException
+  {
+    String elName = QNameUtils.newQName(location).toString();
+    
+    StringBuffer sb = new StringBuffer();
+    ListIterator i = remainingAttrs.listIterator();
+    while (i.hasNext())
+    {
+      String attrName = QNameUtils.newQName((Attr)i.next()).toString();
+      sb.append(attrName);
+      sb.append( i.hasNext() ? " " : "");
+    }
+
+    WADLSException wsdlExc = new WADLSException(WADLSException.INVALID_WADL,
+                                              "Element '" +
+                                              elName +
+                                              "' contained unexpected attributes: '" +
+                                              sb.toString() +
+                                              "'");
+
+    wsdlExc.setLocation(XPathUtils.getXPathExprFromNode(location));
+
+    throw wsdlExc;
+  }
+
+  public static void printAttribute(String name,
+                                    String value,
+                                    PrintWriter pw)
+  {
+    if (value != null)
+    {
+      pw.print(' ' + name + "=\"" + cleanString(value) + '\"');
+    }
+  }
+
+  /**
+   * Prints attributes with qualified names.
+   */
+  public static void printQualifiedAttribute(QName name,
+                                             String value,
+                                             Application app,
+                                             PrintWriter pw)
+                                               throws WADLSException
+  {
+    if (name != null)
+    {
+      printAttribute(getQualifiedValue(name.getNamespaceURI(),
+                                       name.getLocalPart(),
+                                       app),
+                     value,
+                     pw);
+    }
+  }
+
+  public static void printQualifiedAttribute(QName name,
+                                             QName value,
+                                             Application app,
+                                             PrintWriter pw)
+                                               throws WADLSException
+  {
+    if (value != null)
+    {
+      printAttribute(getQualifiedValue(name.getNamespaceURI(),
+                                       name.getLocalPart(),
+                                       app),
+                     getQualifiedValue(value.getNamespaceURI(),
+                                       value.getLocalPart(),
+                                       app),
+                     pw);
+    }
+  }
+
+  public static void printQualifiedAttribute(String name,
+                                             QName value,
+                                             Application app,
+                                             PrintWriter pw)
+                                               throws WADLSException
+  {
+    if (value != null)
+    {
+      printAttribute(name,
+                     getQualifiedValue(value.getNamespaceURI(),
+                                       value.getLocalPart(),
+                                       app),
+                     pw);
+    }
+  }
+
+  public static String getQualifiedValue(String namespaceURI,
+                                         String localPart,
+                                         Application app)
+                                           throws WADLSException
+  {
+    String prefix = null;
+
+    if (namespaceURI != null && !namespaceURI.equals(""))
+    {
+      prefix = getPrefix(namespaceURI, app);
+    }
+
+    return ((prefix != null && !prefix.equals(""))
+            ? prefix + ":"
+            : "") + localPart;
+  }
+
+  public static String getPrefix(String namespaceURI,
+                                 Application app)
+                                   throws WADLSException
+  {
+    String prefix = app.getPrefix(namespaceURI);
+
+    if (prefix == null)
+    {
+      throw new WADLSException(WADLSException.OTHER_ERROR,
+                              "Can't find prefix for '" + namespaceURI +
+                              "'. Namespace prefixes must be set on the" +
+                              " Definition object using the " +
+                              "addNamespace(...) method.");
+    }
+
+    return prefix;
+  }
+
+  public static String cleanString(String orig)
+  {
+    if (orig == null)
+    {
+      return "";
+    }
+
+    StringBuffer strBuf = new StringBuffer();
+    char[] chars = orig.toCharArray();
+    boolean inCDATA = false;
+
+    for (int i = 0; i < chars.length; i++)
+    {
+      if (!inCDATA)
+      {
+        switch (chars[i])
+        {
+          case '&'  : strBuf.append("&amp;");
+                      break;
+          case '\"' : strBuf.append("&quot;");
+                      break;
+          case '\'' : strBuf.append("&apos;");
+                      break;
+          case '<'  :
+                      {
+                        if (chars.length >= i + 9)
+                        {
+                          String tempStr = new String(chars, i, 9);
+
+                          if (tempStr.equals("<![CDATA["))
+                          {
+                            strBuf.append(tempStr);
+                            i += 8;
+                            inCDATA = true;
+                          }
+                          else
+                          {
+                            strBuf.append("&lt;");
+                          }
+                        }
+                        else
+                        {
+                          strBuf.append("&lt;");
+                        }
+                      }
+                      break;
+          case '>'  : strBuf.append("&gt;");
+                      break;
+          default   : strBuf.append(chars[i]);
+                      break;
+        }
+      }
+      else
+      {
+        strBuf.append(chars[i]);
+
+        if (chars[i] == '>'
+            && chars[i - 1] == ']'
+            && chars[i - 2] == ']')
+        {
+          inCDATA = false;
+        }
+      }
+    }
+
+    return strBuf.toString();
+  }
+}
+
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/util/xml/QNameUtils.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/util/xml/QNameUtils.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,132 @@
+/*
+ * (c) Copyright IBM Corp 2002, 2005 
+ */
+
+package edu.uga.cs.lsdis.meteors.wadls.util.xml;
+
+import javax.wadls.Application;
+import javax.wadls.WADLSException;
+import javax.xml.XMLConstants;
+import javax.xml.namespace.*;
+
+import org.w3c.dom.*;
+
+public class QNameUtils
+{
+  public static boolean matches(QName qname, Node node)
+  {
+    return (node != null && qname.equals(newQName(node)));
+  }
+
+  public static QName newQName(Node node)
+  {
+    if (node != null)
+    {
+     // System.out.println("node:namespace uri is " + node.getNamespaceURI());
+      QName q = new QName(node.getNamespaceURI(), node.getLocalName());
+      //System.out.println("Qname generated is "+q);
+      return q;
+      
+    }
+    else
+    {
+      return new QName(null, null);
+    }
+  }
+  
+  public static QName getQName(String prefixedValue,
+						        Element contextEl)
+  								throws WADLSException{
+	int    index        = prefixedValue.indexOf(':');
+	String prefix       = (index != -1)
+								? prefixedValue.substring(0, index)
+								: null;
+	String localPart    = prefixedValue.substring(index + 1);
+	String namespaceURI = DOMUtils.getNamespaceURIFromPrefix(contextEl, prefix);
+
+	if (namespaceURI != null)
+		return new QName(namespaceURI, localPart);
+	else{
+		String faultCode = (prefix == null)
+		  ? WADLSException.NO_PREFIX_SPECIFIED
+		  : WADLSException.UNBOUND_PREFIX;
+	
+		WADLSException wsdlExc = new WADLSException(faultCode,
+	                         "Unable to determine " +
+	                         "namespace of '" +
+	                         prefixedValue + "'.");
+	
+		wsdlExc.setLocation(XPathUtils.getXPathExprFromNode(contextEl));
+	
+		throw wsdlExc;
+	}
+  }  
+  
+	/**
+	 * Parse a string, return a QName. 
+	 * The String can be only in the form of "{namespace}localpart"
+	 * @param qNameAsString
+	 * @return A QName by parsing the given string.
+	 */
+	public static QName generateQName(String qNameAsString){
+		return generateQName(qNameAsString, null);
+	}
+	
+	/**
+	 * Parse a string, return a QName. 
+	 * The String may be in the form of "prefix:localpart" or "{namespace}localpart"
+	 * @param qNameAsString
+	 * @param wsdlDef Wsdl definition for the purpose of getting URI from prefix, and vice versa.
+	 * @return A QName by paring the given string.
+	 */
+	public static QName generateQName(String qNameAsString, Application wadlApp){
+		String nsURI = null;
+		String prefix = null;
+		String localPart = null;
+	
+		if (qNameAsString == null) {
+			throw new IllegalArgumentException("cannot create QName from \"null\" or \"\" String");
+		}
+
+		if (qNameAsString.charAt(0) == '{') {	//namespace + localpart
+			int endOfNamespaceURI = qNameAsString.indexOf('}');
+	        if (endOfNamespaceURI == -1) {
+	            throw new IllegalArgumentException(
+	                "cannot create QName from \""
+	                    + qNameAsString
+	                    + "\", missing closing \"}\"");
+	        }
+	        else{
+	        	nsURI = qNameAsString.substring(1, endOfNamespaceURI);
+	        	//get prefix from wsdls definition
+	        	if (wadlApp != null)
+	        		prefix = wadlApp.getPrefix(nsURI);
+	        	localPart = qNameAsString.substring(endOfNamespaceURI + 1);
+	        	return new QName(nsURI, localPart, nsURI);
+	        }
+
+		}
+		else{
+		    int endOfPrefix = qNameAsString.indexOf(':');	//try prefix
+		    
+			if (endOfPrefix == -1){		//localpart only, use tagetNamespace from wsdls definition
+				if (wadlApp != null)
+		    		nsURI = wadlApp.getTargetNamespace();
+		    	else
+		    		nsURI = XMLConstants.NULL_NS_URI;
+				return new QName(nsURI, qNameAsString);
+			}
+			else if (wadlApp != null){		//prefix + localpart
+			    prefix = qNameAsString.substring(1, endOfPrefix);
+				nsURI = wadlApp.getNamespace(prefix);
+				localPart = qNameAsString.substring(endOfPrefix + 1);
+				return new QName(nsURI, localPart, nsURI);
+			}
+			else
+	            throw new IllegalArgumentException(
+		                "cannot create QName from \""
+		                    + qNameAsString
+		                    + "\", no URI and no wsdl definition is given");
+		}
+	}
+}
\ No newline at end of file
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/util/xml/XPathUtils.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/util/xml/XPathUtils.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,197 @@
+/*
+ * (c) Copyright IBM Corp 2001, 2005 
+ */
+
+package edu.uga.cs.lsdis.meteors.wadls.util.xml;
+
+import java.util.Vector;
+import org.w3c.dom.*;
+
+/**
+ * A <code>XPathUtils</code> ...
+ *
+ * @author Matthew J. Duftler (duftler@us.ibm.com)
+ * @author Sanjiva Weerawarana (sanjiva@watson.ibm.com)
+ */
+public class XPathUtils
+{
+  private static Node getPreviousTypedNode(Node node, short nodeType)
+  {
+    node = node.getPreviousSibling();
+
+    while (node != null && node.getNodeType() != nodeType)
+    {
+      node = node.getPreviousSibling();
+    }
+
+    return node;
+  }
+
+  private static Node getNextTypedNode(Node node, short nodeType)
+  {
+    node = node.getNextSibling();
+
+    while (node != null && node.getNodeType() != nodeType)
+    {
+      node = node.getNextSibling();
+    }
+
+    return node;
+  }
+
+  private static String getValue(Node node, short nodeType)
+  {
+    switch (nodeType)
+    {
+      case Node.ELEMENT_NODE :
+        return ((Element)node).getTagName();
+
+      case Node.TEXT_NODE :
+        return ((Text)node).getData();
+
+      case Node.PROCESSING_INSTRUCTION_NODE :
+        return ((ProcessingInstruction)node).getData();
+
+      default :
+        return "";
+    }
+  }
+
+  private static short getNodeType(Node node)
+  {
+    return (node != null ? node.getNodeType() : -1);
+  }
+
+  private static String getXPathFromVector(Vector path)
+  {
+    StringBuffer strBuf = new StringBuffer();
+    int          length = path.size();
+
+    for (int i = 0; i < length; i++)
+    {
+      Node   tempNode    = (Node)path.elementAt(i);
+      short  nodeType    = getNodeType(tempNode);
+      String targetValue = getValue(tempNode, nodeType);
+      int    position    = 1;
+
+      tempNode = getPreviousTypedNode(tempNode, nodeType);
+
+      while (tempNode != null)
+      {
+        if (nodeType == Node.ELEMENT_NODE)
+        {
+          if (getValue(tempNode, nodeType).equals(targetValue))
+          {
+            position++;
+          }
+        }
+        else
+        {
+          position++;
+        }
+
+        tempNode = getPreviousTypedNode(tempNode, nodeType);
+      }
+
+      boolean hasMatchingSiblings = (position > 1);
+
+      if (!hasMatchingSiblings)
+      {
+        tempNode = (Node)path.elementAt(i);
+        tempNode = getNextTypedNode(tempNode, nodeType);
+
+        while (!hasMatchingSiblings && tempNode != null)
+        {
+          if (nodeType == Node.ELEMENT_NODE)
+          {
+            if (getValue(tempNode, nodeType).equals(targetValue))
+            {
+              hasMatchingSiblings = true;
+            }
+            else
+            {
+              tempNode = getNextTypedNode(tempNode, nodeType);
+            }
+          }
+          else
+          {
+            hasMatchingSiblings = true;
+          }
+        }
+      }
+
+      String step;
+
+      switch (nodeType)
+      {
+        case Node.TEXT_NODE :
+          step = "text()";
+          break;
+        case Node.PROCESSING_INSTRUCTION_NODE :
+          step = "processing-instruction()";
+          break;
+        default :
+          step = targetValue;
+          break;
+      }
+
+      if (step != null && step.length() > 0)
+      {
+        strBuf.append('/' + step);
+      }
+
+      if (hasMatchingSiblings)
+      {
+        strBuf.append("[" + position + "]");
+      }
+    }
+
+    return strBuf.toString();
+  }
+
+  private static Vector getVectorPathFromNode(Node node)
+  {
+    Vector path = new Vector();
+
+    while (node != null)
+    {
+      path.insertElementAt(node, 0);
+      node = node.getParentNode();
+    }
+
+    return path;
+  }
+
+  /**
+   * Generates an XPath expression that will return only the given node as its
+   * result. This method only works for element, text, document and PI nodes.
+   *
+   * @param node the node to generate an XPath expression for. This node must
+   * be an element node, a text node, a document node, or a processing
+   * instruction node.
+   * @return an XPath expression that will return only the given node as its
+   * result.
+   * @exception IllegalArgumentException if the given node is not an element,
+   * text, document or PI node.
+   */
+  public static String getXPathExprFromNode(Node node)
+                                                throws IllegalArgumentException
+  {
+    short nodeType = getNodeType(node);
+
+    switch (nodeType)
+    {
+      case Node.ELEMENT_NODE :
+      case Node.TEXT_NODE :
+      case Node.PROCESSING_INSTRUCTION_NODE :
+        return getXPathFromVector(getVectorPathFromNode(node));
+
+      case Node.DOCUMENT_NODE :
+        return "/";
+
+      default :
+        throw new IllegalArgumentException("Only works for element, text, " +
+                                           "document, and PI nodes.");
+    }
+  }
+}
\ No newline at end of file
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/xml/WADLReaderImpl.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/xml/WADLReaderImpl.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,1727 @@
+/*
+ * (c) Copyright IBM Corp 2001, 2005 
+ */
+
+package edu.uga.cs.lsdis.meteors.wadls.xml;
+
+import java.io.*;
+import java.net.*;
+import java.util.*;
+
+import javax.xml.namespace.*;
+import javax.xml.parsers.*;
+import org.w3c.dom.*;
+import org.xml.sax.*;
+
+import javax.wadls.*;
+import javax.wadls.extensions.*;
+import javax.wadls.extensions.schema.Schema;
+import javax.wadls.extensions.schema.SchemaReference;
+import javax.wadls.factory.*;
+import javax.wadls.xml.*;
+import javax.wadls.Effect;
+import javax.wadls.PreCondition;
+import javax.wadls.extensions.ExtensionRegistry;
+
+
+
+import javax.wadls.extensions.ExtensibilityElement;
+import javax.wadls.extensions.ExtensionDeserializer;
+import javax.wadls.factory.WADLFactory;
+
+import edu.uga.cs.lsdis.meteors.wadls.*;
+import edu.uga.cs.lsdis.meteors.wadls.extensions.schema.SchemaConstants;
+import edu.uga.cs.lsdis.meteors.wadls.extensions.schema.SchemaSerializer;
+import edu.uga.cs.lsdis.meteors.wadls.util.*;
+import edu.uga.cs.lsdis.meteors.wadls.util.xml.*;
+import edu.uga.cs.lsdis.meteors.wadls.Constants;
+import edu.uga.cs.lsdis.meteors.wadls.util.xml.QNameUtils;
+import edu.uga.cs.lsdis.meteors.wadls.util.StringUtils;
+import edu.uga.cs.lsdis.meteors.wadls.util.xml.XPathUtils;
+import edu.uga.cs.lsdis.meteors.wadls.extensions.schema.SchemaDeserializer;
+
+
+/**
+ * This class describes a collection of methods
+ * that enable conversion of a WSDL-S document (in XML,
+ * following the WSDL schema described in the WSDL
+ * specification) into a WSDL-S model.
+ *
+ * @author Zixin Wu (wuzixin@uga.edu)
+ * @author Matthew J. Duftler
+ * @author Nirmal Mukhi
+ */
+public class WADLReaderImpl implements WADLReader
+{
+	
+	static {
+		Constants.setSemanticExtensionURI(Constants.SemanticExtensionType.SAWADL);
+	}
+	// Used for determining the style of operations.
+	private static final List STYLE_ONE_WAY =
+		Arrays.asList(new String[]{Constants.ELEM_INPUT});
+	private static final List STYLE_REQUEST_RESPONSE =
+		Arrays.asList(new String[]{Constants.ELEM_INPUT, Constants.ELEM_OUTPUT});
+	private static final List STYLE_SOLICIT_RESPONSE =
+		Arrays.asList(new String[]{Constants.ELEM_OUTPUT, Constants.ELEM_INPUT});
+	private static final List STYLE_NOTIFICATION =
+		Arrays.asList(new String[]{Constants.ELEM_OUTPUT});
+	
+	protected boolean verbose = true;
+	protected ExtensionRegistry extReg = null;
+	protected boolean importDocuments = true;
+	protected boolean parseSAWSDL = false;
+	protected String factoryImplName = null;
+	protected WADLLocator loc = null;
+	
+	//Contains all schemas used by this wsdl, either in-line or nested 
+	//via wsdl imports or schema imports, includes or redefines
+	protected Map allSchemas = new Hashtable();
+	
+	private String WORKING_SEMANTIC_NAMESPACE = Constants.NS_URI_SAWADL;
+	
+	
+	/**
+	 * Sets the specified feature to the specified value.
+	 * <p>
+	 * The supported features are:
+	 * <p>
+	 * <table border=1>
+	 *   <tr>
+	 *     <th>Name</th>
+	 *     <th>Description</th>
+	 *     <th>Default Value</th>
+	 *   </tr>
+	 *   <tr>
+	 *     <td><center>javax.wsdls.verbose</center></td>
+	 *     <td>If set to true, status messages will be displayed.</td>
+	 *     <td><center>true</center></td>
+	 *   </tr>
+	 *   <tr>
+	 *     <td><center>javax.wsdls.importDocuments</center></td>
+	 *     <td>If set to true, imported WSDL documents will be
+	 *         retrieved and processed.</td>
+	 *     <td><center>true</center></td>
+	 *   </tr>
+	 * </table>
+	 * <p>
+	 * All feature names must be fully-qualified, Java package style. All
+	 * names starting with javax.wsdls. are reserved for features defined
+	 * by the JWSDL specification. It is recommended that implementation-
+	 * specific features be fully-qualified to match the package name
+	 * of that implementation. For example: com.abc.featureName
+	 *
+	 * @param name the name of the feature to be set.
+	 * @param value the value to set the feature to.
+	 * @throws IllegalArgumentException if the feature name is not recognized.
+	 * @see #getFeature(String)
+	 */
+	public void setFeature(String name, boolean value)
+	throws IllegalArgumentException
+	{
+		if (name == null)
+		{
+			throw new IllegalArgumentException("Feature name must not be null.");
+		}
+		
+		if (name.equals(Constants.FEATURE_VERBOSE))
+		{
+			verbose = value;
+		}
+		else if (name.equals(Constants.FEATURE_IMPORT_DOCUMENTS))
+		{
+			importDocuments = value;
+		} else if(name.equals(Constants.FEATURE_PARSE_SAWADL)) {
+			if(value) {
+				WORKING_SEMANTIC_NAMESPACE = Constants.NS_URI_SAWADL;
+				Constants.setSemanticExtensionURI(Constants.SemanticExtensionType.SAWADL);
+			} else {
+				WORKING_SEMANTIC_NAMESPACE = Constants.NS_URI_WADLS;
+				Constants.setSemanticExtensionURI(Constants.SemanticExtensionType.WADLS);
+			}
+			parseSAWSDL = value;
+		}
+		else
+		{
+			throw new IllegalArgumentException("Feature name '" + name +
+			"' not recognized.");
+		}
+	}
+	
+	/**
+	 * Gets the value of the specified feature.
+	 *
+	 * @param name the name of the feature to get the value of.
+	 * @throws IllegalArgumentException if the feature name is not recognized.
+	 * @see #setFeature(String, boolean)
+	 */
+	public boolean getFeature(String name) throws IllegalArgumentException
+	{
+		if (name == null)
+		{
+			throw new IllegalArgumentException("Feature name must not be null.");
+		}
+		
+		if (name.equals(Constants.FEATURE_VERBOSE))
+		{
+			return verbose;
+		}
+		else if (name.equals(Constants.FEATURE_IMPORT_DOCUMENTS))
+		{
+			return importDocuments;
+		}
+		else
+		{
+			throw new IllegalArgumentException("Feature name '" + name +
+			"' not recognized.");
+		}
+	}
+	
+	public void setExtensionRegistry(ExtensionRegistry extReg)
+	{
+		this.extReg = extReg;
+	}
+	
+	/**
+	 * Get the extension registry, if one was set. Default is
+	 * null.
+	 */
+	public ExtensionRegistry getExtensionRegistry()
+	{
+		return extReg;
+	}
+	
+	/**
+	 * Set the extension registry to be used when reading
+	 * WSDL documents into a WSDL definition. If an
+	 * extension registry is set, that is the extension
+	 * registry that will be set as the extensionRegistry
+	 * property of the definitions resulting from invoking
+	 * readWSDL(...). Default is null.
+	 *
+	 * @param extReg the extension registry to use for new
+	 * definitions
+	 */
+	
+	
+	
+	
+	/**
+	 * Set a different factory implementation to use for
+	 * creating definitions when reading WSDL documents.
+	 * As some WSDLReader implementations may only be
+	 * capable of creating definitions using the same
+	 * factory implementation from which the reader was
+	 * obtained, this method is optional. Default is null.
+	 *
+	 * @param factoryImplName the fully-qualified class name of the
+	 * class which provides a concrete implementation of the abstract
+	 * class WSDLFactory.
+	 * @throws UnsupportedOperationException if this method
+	 * is invoked on an implementation which does not
+	 * support it.
+	 */
+	public void setFactoryImplName(String factoryImplName)
+	throws UnsupportedOperationException
+	{
+		this.factoryImplName = factoryImplName;
+	}
+	
+	/**
+	 * Get the factoryImplName, if one was set. Default is null.
+	 */
+	public String getFactoryImplName()
+	{
+		return factoryImplName;
+	}
+	
+	protected Application parseApplications(String documentBaseURI,
+			Element defEl,
+			Map importedDefs)
+	throws WADLSException, URISyntaxException
+	{
+		checkElementName(defEl, Constants.Q_ELEM_DEFINITIONS);
+		
+		WADLFactory factory = (factoryImplName != null)
+		? WADLFactory.newInstance(factoryImplName)
+				: WADLFactory.newInstance();
+		Application def = factory.newApplication();
+		
+		
+		
+		String name = DOMUtils.getAttribute(defEl, Constants.ATTR_NAME);
+		String targetNamespace = DOMUtils.getAttribute(defEl,
+				Constants.ATTR_TARGET_NAMESPACE);
+		System.out.println("Target Name Space:"+targetNamespace);
+		NamedNodeMap attrs = defEl.getAttributes();
+		
+		if (documentBaseURI != null)
+		{
+			def.setDocumentBaseURI(documentBaseURI);
+		}
+		
+		if (name != null)
+		{
+			def.setQName(new QName(targetNamespace, name));
+		}
+		
+		if (targetNamespace != null)
+		{
+			def.setTargetNamespace(targetNamespace);
+		}
+		
+		int size = attrs.getLength();
+		
+		for (int i = 0; i < size; i++)
+		{
+			Attr attr = (Attr)attrs.item(i);
+			String namespaceURI = attr.getNamespaceURI();
+			String localPart = attr.getLocalName();
+			String value = attr.getValue();
+					
+			
+			if (namespaceURI != null && namespaceURI.equals(Constants.NS_URI_XMLNS))
+			{
+				if (localPart != null && !localPart.equals(Constants.ATTR_XMLNS))
+				{
+					System.out.println("LocalPart is set to "+localPart+" and it's value is "+value);
+					def.addNamespace(localPart, value);
+				}
+				else
+				{
+					System.out.println("LocalPart is set to null and it's value is "+value);
+					def.addNamespace(null, value);
+				}
+			}
+		}
+		
+		Element tempEl = DOMUtils.getFirstChildElement(defEl);
+		System.out.println("%%%% ");
+		System.out.println("%%%% First Child: "+tempEl.getNodeName());
+		
+		while (tempEl != null)
+		{
+			if (QNameUtils.matches(Constants.Q_ELEM_DOCUMENTATION, tempEl))
+			{
+				System.out.println("%%%% Documentation Element:"+tempEl.getTextContent());
+				def.setDocumentationElement(tempEl);
+			}
+			else if (QNameUtils.matches(Constants.Q_ELEM_GRAMMARS, tempEl))
+			{
+				System.out.println("%%%% Grammars element is parsed.");
+				def.setGrammars(parseGrammars(tempEl, def));
+			}
+		    else if (QNameUtils.matches(Constants.Q_ELEM_RESOURCES, tempEl)){
+				
+		      System.out.println("%%%% Resources Element is parsed.");
+		      String path = DOMUtils.getAttribute(tempEl, Constants.ATTR_BASE);
+		      def.setResourcesPath(path);
+		      System.out.println("Resources path is:"+path);
+			  Element tempEl1 = DOMUtils.getFirstChildElement(tempEl);
+			  for (; tempEl1 != null; tempEl1 = DOMUtils.getNextSiblingElement(tempEl1)){
+			  if (QNameUtils.matches(Constants.Q_ELEM_RESOURCE, tempEl1))
+				{
+					def.addResource(parseResource(tempEl1, def));
+				}
+			  }
+			
+			}
+		    else{
+		    	
+		    }
+		
+			tempEl = DOMUtils.getNextSiblingElement(tempEl);
+		}
+		
+		return def;
+	}
+	
+	protected Include parseInclude(Element importEl,
+			Application def,
+			Map importedDefs)
+	throws WADLSException
+	{
+		Include importDef = def.createInclude();
+		
+		try
+		{
+			String namespaceURI = DOMUtils.getAttribute(importEl,
+					Constants.ATTR_NAMESPACE);
+			String locationURI = DOMUtils.getAttribute(importEl,
+					Constants.ATTR_LOCATION);
+			String contextURI = null;
+			
+			if (namespaceURI != null)
+			{
+				importDef.setNamespaceURI(namespaceURI);
+			}
+			
+			if (locationURI != null)
+			{
+				importDef.setLocationURI(locationURI);
+				
+				if (importDocuments)
+				{
+					try
+					{
+						contextURI = def.getDocumentBaseURI();
+						Application importedDef = null;
+						InputStream inputStream = null;
+						InputSource inputSource = null;
+						URL url = null;
+						
+						if (loc != null)
+						{
+							inputSource = loc.getImportInputSource(contextURI, locationURI);
+							
+							/*
+							 We now have available the latest import URI. This might
+							 differ from the locationURI so check the importedDefs for it
+							 since it is this that we pass as the documentBaseURI later.
+							 */
+							String liu = loc.getLatestImportURI();
+							
+							importedDef = (Application)importedDefs.get(liu);
+						}
+						else
+						{
+							URL contextURL = (contextURI != null)
+							? StringUtils.getURL(null, contextURI)
+									: null;
+							
+							url = StringUtils.getURL(contextURL, locationURI);
+							importedDef = (Application)importedDefs.get(url.toString());
+							
+							if (importedDef == null)
+							{
+								inputStream = StringUtils.getContentAsInputStream(url);
+								
+								if (inputStream != null)
+								{
+									inputSource = new InputSource(inputStream);
+								}
+							}
+						}
+						
+						if (importedDef == null)
+						{
+							if (inputSource == null)
+							{
+								throw new WADLSException(WADLSException.OTHER_ERROR,
+										"Unable to locate imported document " +
+										"at '" + locationURI + "'" +
+										(contextURI == null
+												? "."
+														: ", relative to '" + contextURI +
+										"'."));
+							}
+							
+							inputSource.setSystemId(url.toString());
+							Document doc = getDocument(inputSource, url.toString());
+							
+							if (inputStream != null)
+							{
+								inputStream.close();
+							}
+							
+							Element documentElement = doc.getDocumentElement();
+							
+							/*
+							 Check if it's a wsdl document.
+							 If it's not, don't retrieve and process it.
+							 This should later be extended to allow other types of
+							 documents to be retrieved and processed, such as schema
+							 documents (".xsd"), etc...
+							 */
+							if (QNameUtils.matches(Constants.Q_ELEM_DEFINITIONS,
+									documentElement))
+							{
+								if (verbose)
+								{
+									System.out.println("Retrieving document at '" + locationURI +
+											"'" +
+											(contextURI == null
+													? "."
+															: ", relative to '" + contextURI + "'."));
+								}
+								
+								String urlString =
+									(loc != null)
+									? loc.getLatestImportURI()
+											: (url != null)
+											? url.toString()
+													: locationURI;
+											
+											importedDef = readWADL(urlString,
+													documentElement,
+													importedDefs);
+							}
+							else
+							{
+								QName docElementQName = QNameUtils.newQName(documentElement);
+								
+								if (SchemaConstants.XSD_QNAME_LIST.contains(docElementQName))
+								{
+									WADLFactory factory =
+										(factoryImplName != null)
+										? WADLFactory.newInstance(factoryImplName)
+												: WADLFactory.newInstance();
+										
+										importedDef = factory.newApplication();
+										
+									
+										String urlString =
+											(loc != null)
+											? loc.getLatestImportURI()
+													: (url != null)
+													? url.toString()
+															: locationURI;
+													
+													importedDef.setDocumentBaseURI(urlString);
+													
+													Params types = importedDef.createParams();
+													importedDef.setParams(types);
+								}
+							}
+						}
+						
+						if (importedDef != null)
+						{
+							importDef.setApplication(importedDef);
+						}
+					}
+					catch (WADLSException e)
+					{
+						throw e;
+					}
+					catch (Throwable t)
+					{
+						throw new WADLSException(WADLSException.OTHER_ERROR,
+								"Unable to resolve imported document at '" +
+								locationURI + 
+								(contextURI == null 
+										? "'." : "', relative to '" + contextURI + "'")
+										, t);
+					}
+				} //end importDocs
+			} //end locationURI
+			
+		}
+		catch (WADLSException e)
+		{
+			if (e.getLocation() == null)
+			{
+				e.setLocation(XPathUtils.getXPathExprFromNode(importEl));
+			}
+			else
+			{
+				//If definitions are being parsed recursively for nested imports
+				//the exception location must be built up recursively too so
+				//prepend this element's xpath to exception location.
+				String loc = XPathUtils.getXPathExprFromNode(importEl) + e.getLocation();
+				e.setLocation(loc);
+			}
+			
+			throw e; 
+		}
+		
+		Element tempEl = DOMUtils.getFirstChildElement(importEl);
+		
+		while (tempEl != null)
+		{
+			if (QNameUtils.matches(Constants.Q_ELEM_DOCUMENTATION, tempEl))
+			{
+				importDef.setDocumentationElement(tempEl);
+			}
+			else
+			{
+				DOMUtils.throwWADLException(tempEl);
+			}
+			
+			tempEl = DOMUtils.getNextSiblingElement(tempEl);
+		}
+		
+		
+		return importDef; 
+		
+	}
+	
+
+	
+	protected Grammars parseGrammars(Element typesEl, Application def)
+	throws WADLSException
+	{
+		Grammars grammars = def.createGrammars();
+		List<String> schemaList =new Vector();
+		List<Schema> docElement =new Vector();
+		List<String> targetNS =new Vector();	
+		Element tempEl = DOMUtils.getFirstChildElement(typesEl);
+		QName tempElType;
+			
+		while (tempEl != null)
+		{
+			tempElType = QNameUtils.newQName(tempEl);
+			
+			if (QNameUtils.matches(Constants.Q_ELEM_DOCUMENTATION, tempEl))
+			{
+				grammars.setDocumentationElement(tempEl);
+			}
+			else if (QNameUtils.matches(Constants.Q_ELEM_INCLUDE, tempEl))
+			{
+				String xsd = DOMUtils.getAttribute(tempEl, Constants.ELEM_HREF);
+				schemaList.add(xsd);
+				System.out.println("Xsd element in Grammars tag:"+xsd);
+				
+				docElement.add(parseSchema(tempEl,def));
+				//targetNS.add(parseSchemaNS(tempEl,def));
+				List remainingAttrs = DOMUtils.getAttributes(tempEl);
+				//the element qname indicates it is a schema.
+				String modelReference = DOMUtils.getAttributeNS(tempEl,
+						WORKING_SEMANTIC_NAMESPACE, 
+						Constants.ATTR_MODELREF,
+						remainingAttrs);
+				System.out.println("XSD Element's model reference is:"+modelReference);
+				if (modelReference != null)
+				{
+					try {
+						parseModelReference(modelReference, def, grammars);
+					} catch (URISyntaxException e) {
+						// TODO Auto-generated catch block
+						e.printStackTrace();
+					}
+					 /*ModelReference mr = def.createModelReference();
+					 mr.valueOf(modelReference, def);
+					 mr.setParent(preCondition);
+					 preCondition.addModelReference(mr);*/
+				}
+				
+		  }
+					
+			tempEl = DOMUtils.getNextSiblingElement(tempEl);
+		}
+		grammars.setSchemas(this.allSchemas);
+		Map temp = grammars.getSchemas();
+		System.out.println("Schemas added to grammars class:"+temp.size());
+		return grammars;
+	}
+	
+	
+protected Schema parseSchema(Element el,Application def)
+	throws WADLSException
+	{
+		/*
+		 * This method returns ExtensibilityElement rather than Schema because we
+		 * do not insist that a suitable XSD schema deserializer is registered.
+		 * PopulatedExtensionRegistry registers SchemaDeserializer by default, but 
+		 * if the user chooses not to register a suitable deserializer then the
+		 * UnknownDeserializer will be used, returning an UnknownExtensibilityElement. 
+		 */
+
+	
+		Schema schema = null;
+		SchemaReference schemaRef = null;
+		try
+		{
+			
+			QName elementType = QNameUtils.newQName(el);
+	
+			edu.uga.cs.lsdis.meteors.wadls.extensions.schema.SchemaDeserializer scDS = new edu.uga.cs.lsdis.meteors.wadls.extensions.schema.SchemaDeserializer();
+			
+			//Now unmarshall the DOM element.
+			Schema ee =  
+				scDS.unmarshall(elementType, el, def);
+			
+			if (ee instanceof Schema)
+			{
+				
+				schema = (Schema) ee;
+			}
+			String location = null;
+				
+			//Keep track of parsed schemas to avoid duplicating Schema objects
+			//through duplicate or circular references (eg: A imports B imports A).
+			if (schema.getDocumentBaseURI() != null) 
+			{		
+			
+				
+				this.allSchemas.put(schema.getDocumentBaseURI(), schema);
+			}
+
+			ArrayList allSchemaRefs = new ArrayList();
+			
+			Collection ic = schema.getImports().values();
+			
+	
+			Iterator importsIterator = ic.iterator();
+			while(importsIterator.hasNext())
+			{
+				allSchemaRefs.addAll( (Collection) importsIterator.next() );
+			}
+			
+			allSchemaRefs.addAll(schema.getIncludes());
+			allSchemaRefs.addAll(schema.getRedefines());
+			
+			//Then, retrieve the schema referred to by each schema reference. If the 
+			//schema has been read in previously, use the existing schema object. 
+			//Otherwise unmarshall the DOM element into a new schema object.
+			
+			ListIterator schemaRefIterator = allSchemaRefs.listIterator();
+			
+			
+			while(schemaRefIterator.hasNext()){
+	
+				try
+				{
+					schemaRef = (SchemaReference) schemaRefIterator.next();
+					
+					if (schemaRef.getSchemaLocationURI() == null)
+					{
+						
+						//cannot get the referenced schema, so ignore this schema reference
+						continue;
+					}
+					
+					if (verbose)
+					{
+						System.out.println("change: Retrieving schema at '" + 
+								schemaRef.getSchemaLocationURI() +
+								(schema.getDocumentBaseURI() == null
+										? "'."
+												: "', relative to '" + 
+												schema.getDocumentBaseURI() + "'."));
+					}
+					
+					
+					InputStream inputStream = null;
+					InputSource inputSource = null;
+					
+					
+					
+					//This is the child schema referred to by the schemaReference
+					Schema referencedSchema = null;
+					
+					//This is the child schema's location obtained from the WSDLLocator or the URL
+				
+					
+					if (loc != null)
+					{
+						
+						//Try to get the referenced schema using the wsdl locator
+						inputSource = loc.getImportInputSource(
+								schema.getDocumentBaseURI(), schemaRef.getSchemaLocationURI());
+						
+						if (inputSource == null)
+						{
+							throw new WADLSException(WADLSException.OTHER_ERROR,
+									"Unable to locate with a locator "
+									+ "the schema referenced at '"
+									+ schemaRef.getSchemaLocationURI() 
+									+ "' relative to document base '"
+									+ schema.getDocumentBaseURI() + "'");
+						}
+						location = loc.getLatestImportURI();
+						
+						
+						//if a schema from this location has been read previously, use it.
+						referencedSchema = (Schema) this.allSchemas.get(location);
+					}
+					else
+					{
+						// We don't have a wsdl locator, so try to retrieve the schema by its URL
+						
+						String contextURI = schema.getDocumentBaseURI();
+						URL contextURL = (contextURI != null) ? StringUtils.getURL(null, contextURI) : null;
+						//System.out.println("%%%% Context URL OF SCHEMA:"+contextURL);
+						URL url = StringUtils.getURL(contextURL, schemaRef.getSchemaLocationURI());
+						//System.out.println("%%%%URL :"+url);
+						location = url.toExternalForm();
+						//System.out.println("%%%% schema location:"+location);
+						//if a schema from this location has been retrieved previously, use it.
+						referencedSchema = (Schema) this.allSchemas.get(location);
+						
+						if (referencedSchema == null)
+						{
+							//System.out.println("%%%% Referenced Schema is equal to null");
+							// We haven't read this schema in before so do it now
+							inputStream = url.openStream();
+							
+							if (inputStream != null)
+							{
+								inputSource = new InputSource(inputStream);
+							}
+							
+							if (inputSource == null)
+							{
+								throw new WADLSException(WADLSException.OTHER_ERROR,
+										"Unable to locate with a url "
+										+ "the document referenced at '"
+										+ schemaRef.getSchemaLocationURI()
+										+ "'"
+										+ (contextURI == null ? "." : ", relative to '"
+											+ contextURI + "'."));
+							}
+						}  
+						
+					} //end if loc
+					
+					// If we have not previously read the schema, get its DOM element now.
+					if (referencedSchema == null)
+					{
+						//System.out.println("%%%% Referenced Schema is equal to null 2");
+						inputSource.setSystemId(location);
+						Document doc = getDocument(inputSource, location);
+						
+						if (inputStream != null)
+						{
+							inputStream.close();
+						}
+						
+						Element documentElement = doc.getDocumentElement();
+						NodeList nodeList = documentElement.getChildNodes();
+			
+						/*for(int i=0; i<nodeList.getLength(); i++){
+							  Node childNode = nodeList.item(i);
+							  System.out.println("Children$$$$ : "+childNode.getTextContent());
+							  // Do something with childNode...
+							}*/
+						//System.out.println("#####Child Nodes:"+documentElement.getChildNodes());
+						//System.out.println("%%%% documentElement:"+ documentElement.getNodeName());						
+						// If it's a schema doc process it, otherwise the schema reference remains null
+						
+						QName docElementQName = QNameUtils.newQName(documentElement);
+						
+						if (SchemaConstants.XSD_QNAME_LIST.contains(docElementQName))
+						{
+							//We now need to call parseSchema recursively to parse the referenced
+							//schema. The document base URI of the referenced schema will be set to 
+							//the document base URI of the current schema plus the schemaLocation in 
+							//the schemaRef. We cannot explicitly pass in a new document base URI
+							//to the schema deserializer, so instead we will create a dummy 
+							//Definition and set its documentBaseURI to the new document base URI. 
+							//We can leave the other definition fields empty because we know
+							//that the SchemaDeserializer.unmarshall method uses the definition 
+							//parameter only to get its documentBaseURI. If the unmarshall method
+							//implementation changes (ie: its use of definition changes) we may need 
+							//to rethink this approach.
+							//System.out.println("%%%%%SchemaConstants.XSD_QNAME_LIST.contains(docElementQName)"+docElementQName.getLocalPart());
+							
+							WADLFactory factory = (factoryImplName != null)
+							? WADLFactory.newInstance(factoryImplName)
+									: WADLFactory.newInstance();
+							Application dummyDef = factory.newApplication();
+							
+							dummyDef.setDocumentBaseURI(location);
+							//System.out.println("%%%% End of Parse Schema");
+							//By this point, we know we have a SchemaDeserializer registered
+							//so we can safely cast the ExtensibilityElement to a Schema.
+							referencedSchema = (Schema) parseSchema( documentElement, 
+									dummyDef);
+						}
+						
+					} //end if referencedSchema
+					
+					schemaRef.setReferencedSchema(referencedSchema);  	
+				}
+				catch (WADLSException e)
+				{
+					throw e;
+				}
+				catch (Throwable t)
+				{
+					throw new WADLSException(WADLSException.OTHER_ERROR,
+							"An error occurred trying to resolve schema referenced at '" 
+							+ schemaRef.getSchemaLocationURI() 
+							+ "'"
+							+ (schema.getDocumentBaseURI() == null ? "." : ", relative to '"
+								+ schema.getDocumentBaseURI() + "'."),
+								t);
+				}
+				
+			} //end while loop
+			
+			return schema;
+			
+		}
+		catch (WADLSException e)
+		{
+			if (e.getLocation() == null)
+			{
+				e.setLocation(XPathUtils.getXPathExprFromNode(el));
+			}
+			else
+			{
+				//If this method has been called recursively for nested schemas
+				//the exception location must be built up recursively too so
+				//prepend this element's xpath to exception location.
+				String loc = XPathUtils.getXPathExprFromNode(el) + e.getLocation();
+				e.setLocation(loc);
+			}
+			
+			throw e; 
+		}
+		
+	}
+	
+	
+	
+
+	protected Resource parseResource(Element portTypeEl, Application def)
+	throws WADLSException, URISyntaxException
+	{
+		Resource portType = null;
+		String path = DOMUtils.getAttribute(portTypeEl, Constants.RESOURCE_ATTR_NAME);
+		List remainingAttrs = DOMUtils.getAttributes(portTypeEl);
+		//read modelReference
+		//String modelReference= null;
+		if (path != null)
+		{
+			QName resourceName = new QName(def.getTargetNamespace(), path);
+			System.out.println("Resource Path:"+path);
+			System.out.println("ResourceName:"+resourceName.toString());
+			
+			portType = def.getResource(resourceName);
+			
+			if (portType == null)
+			{
+				portType = def.createResource();
+				portType.setQName(resourceName);
+			}
+		}
+		else
+		{
+			portType = def.createResource();
+		}
+		
+		// Whether it was retrieved or created, the definition has been found.
+		portType.setUndefined(false);
+		String modelReference = DOMUtils.getAttributeNS(portTypeEl,
+				WORKING_SEMANTIC_NAMESPACE, 
+				Constants.ATTR_MODELREF,
+				remainingAttrs);
+		System.out.println("Resource modelreference:"+modelReference);
+		if (modelReference != null)
+		{
+			parseModelReference(modelReference, def, portType);
+			 /*ModelReference mr = def.createModelReference();
+			 mr.valueOf(modelReference, def);
+			 mr.setParent(preCondition);
+			 preCondition.addModelReference(mr);*/
+		}
+		
+		Element tempEl = DOMUtils.getFirstChildElement(portTypeEl);
+				
+		while (tempEl != null)
+		{
+			if (QNameUtils.matches(Constants.Q_ELEM_DOCUMENTATION, tempEl))
+			{
+				portType.setDocumentationElement(tempEl);
+			}
+			else if (QNameUtils.matches(Constants.Q_ELEM_OPERATION, tempEl))
+			{
+				Method op = parseMethod(tempEl, portType, def);
+				
+				if (op != null)
+				{
+					portType.addMethod(op);
+				}
+			}
+			else
+			{
+				DOMUtils.throwWADLException(tempEl);
+			}
+			
+			tempEl = DOMUtils.getNextSiblingElement(tempEl);
+		}
+		
+		return portType;
+	}
+	
+	/**
+	 * This is for Ajith and Kats. Just make sure we handle the SAWSDL and WSDLS namespaces properly. 
+	 * The point being that we still might have to support wsdls and hence we want to see if we can use this operation with an internal
+	 * flag indicating if the parser is being used in the context of WSDLS or SAWSDL.
+	 * @param opEl
+	 * @param portType
+	 * @param def
+	 * @return
+	 * @throws WADLSException
+	 * @throws URISyntaxException
+	 */
+	protected Method parseMethod(Element opEl,
+			Resource portType,
+			Application def)
+	throws WADLSException, URISyntaxException
+	{
+		Method op = null;
+		List remainingAttrs = DOMUtils.getAttributes(opEl);
+		String name = DOMUtils.getAttribute(opEl, Constants.ID_NAME, remainingAttrs);
+		//read modelReference
+		//String modelReference= null;
+		
+		String parameterOrderStr = DOMUtils.getAttribute(opEl,
+				Constants.ATTR_PARAMETER_ORDER,
+				remainingAttrs);
+		
+		
+		Element tempEl = DOMUtils.getFirstChildElement(opEl);
+		List messageOrder = new Vector();
+		Element docEl = null;
+		Request input = null;
+		Response output = null;
+		PreCondition preCondition = null;
+		Effect effect = null;
+		List extElements = new Vector();
+		boolean retrieved = true;
+		
+		while (tempEl != null)
+		{
+			if (QNameUtils.matches(Constants.Q_ELEM_DOCUMENTATION, tempEl))
+			{
+				docEl = tempEl;
+			}
+			else if (QNameUtils.matches(Constants.Q_ELEM_INPUT, tempEl))
+			{
+				input = parseRequest(tempEl, def);
+				
+			}
+			else if (QNameUtils.matches(Constants.Q_ELEM_PRECON, tempEl))
+			{
+				preCondition = parsePreCondition(tempEl, def);
+			}
+			else if (QNameUtils.matches(Constants.Q_ELEM_EFFECT, tempEl))
+			{
+				effect = parseEffect(tempEl, def);
+				
+			}
+			else if (QNameUtils.matches(Constants.Q_ELEM_OUTPUT, tempEl))
+			{
+				output = parseResponse(tempEl, def);
+			}
+			tempEl = DOMUtils.getNextSiblingElement(tempEl);
+		}
+		
+		if (name != null)
+		{
+			String inputName = (input != null ? input.getName() : null);
+			String outputName = (output != null ? output.getName() : null);
+			
+			op = portType.getMethod(name, inputName, outputName);
+			
+			if (op != null && !op.isUndefined())
+			{
+				op = null;
+			}
+			
+			if (op != null)
+			{
+				if (inputName == null)
+				{
+					Request tempIn = op.getRequest();
+					
+					if (tempIn != null)
+					{
+						if (tempIn.getName() != null)
+						{
+							op = null;
+						}
+					}
+				}
+			}
+			
+			if (op != null)
+			{
+				if (outputName == null)
+				{
+					Response tempOut = op.getResponse();
+					
+					if (tempOut != null)
+					{
+						if (tempOut.getName() != null)
+						{
+							op = null;
+						}
+					}
+				}
+			}
+			
+			if (op == null)
+			{
+				op = def.createMethod();
+				op.setName(name);
+				retrieved = false;
+			}
+		}
+		else
+		{
+			op = def.createMethod();
+			retrieved = false;
+		}
+		
+		// Whether it was retrieved or created, the definition has been found.
+		op.setUndefined(false);
+		
+		if (parameterOrderStr != null)
+		{
+			op.setParameterOrdering(StringUtils.parseNMTokens(parameterOrderStr));
+		}
+		
+		if (docEl != null)
+		{
+			op.setDocumentationElement(docEl);
+		}
+		
+		if (input != null)
+		{
+			op.setRequest(input);
+		}
+		
+		if (output != null)
+		{
+			op.setResponse(output);
+		}
+		
+	   if (preCondition != null)
+		{
+			op.setPreCondition(preCondition);
+		}
+	   String modelReference = DOMUtils.getAttributeNS(opEl,
+				WORKING_SEMANTIC_NAMESPACE, 
+				Constants.ATTR_MODELREF,
+				remainingAttrs);
+        System.out.println("Model Reference of method:"+modelReference);
+		if (modelReference != null)
+		{
+			parseModelReference(modelReference, def, op);
+			 /*ModelReference mr = def.createModelReference();
+			 mr.valueOf(modelReference, def);
+			 mr.setParent(preCondition);
+			 preCondition.addModelReference(mr);*/
+		}
+		if (effect != null)
+		{
+			op.setEffect(effect);
+		}
+		
+		
+		if (retrieved)
+		{
+			op = null;
+		}
+		
+		return op;
+	}
+	
+	
+	
+	
+	protected Request parseRequest(Element inputEl, Application def)
+	throws WADLSException
+	{
+		Request input = def.createRequest();
+		List<String> inputXSDList = new ArrayList<String>(10);
+		List<Param> paramList = new ArrayList<Param>(20);
+		Element tempEl = DOMUtils.getFirstChildElement(inputEl);
+		List remainingAttrs = DOMUtils.getAttributes(inputEl);
+		String modelReference = DOMUtils.getAttributeNS(inputEl,
+				WORKING_SEMANTIC_NAMESPACE, 
+				Constants.ATTR_MODELREF,
+				remainingAttrs);
+        System.out.println("Model reference for request:"+modelReference);
+		if (modelReference != null)
+		{
+			try {
+				parseModelReference(modelReference, def, input);
+			} catch (URISyntaxException e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			}
+			 /*ModelReference mr = def.createModelReference();
+			 mr.valueOf(modelReference, def);
+			 mr.setParent(preCondition);
+			 preCondition.addModelReference(mr);*/
+		}
+		while (tempEl != null)
+		{
+			if (QNameUtils.matches(Constants.Q_ELEM_DOCUMENTATION, tempEl))
+			{
+				input.setDocumentationElement(tempEl);
+			}
+			else if (QNameUtils.matches(Constants.Q_ELEM_REPRESENTATION, tempEl))
+			{
+				String inputXSD = DOMUtils.getAttribute(tempEl, Constants.REQUEST_ELEMENT_NAME);
+				//input.setName(inputXSD);
+				inputXSDList.add(inputXSD);
+				System.out.println("InPut XSD : "+inputXSD);
+			}
+			else if (QNameUtils.matches(Constants.Q_ELEM_PARAM, tempEl))
+			{
+				System.out.println("New paramter is added to request");
+				Param param = new ParamImpl();
+				List remainingParamAttrs = DOMUtils.getAttributes(tempEl);
+				String parammodelReference = DOMUtils.getAttributeNS(tempEl,
+						WORKING_SEMANTIC_NAMESPACE, 
+						Constants.ATTR_MODELREF,
+						remainingAttrs);
+				String liftingschema = DOMUtils.getAttributeNS(tempEl,
+						WORKING_SEMANTIC_NAMESPACE, 
+						Constants.ATTR_LIFTINGSCHEMAMAPPING,
+						remainingAttrs);
+				String loweringschema = DOMUtils.getAttributeNS(tempEl,
+						WORKING_SEMANTIC_NAMESPACE, 
+						Constants.ATTR_LOWERINGSCHEMAMAPPING,
+						remainingAttrs);
+				
+				param.setModelreference(parammodelReference);
+				param.setLiftingschemamapping(liftingschema);
+				param.setLoweringschemamapping(loweringschema);
+				//param.setModelreference(liftingschema);
+				//param.setModelreference(loweringschema);
+				
+				String style = DOMUtils.getAttribute(tempEl, Constants.PARAM_STYLE);
+				System.out.println("Param Style:"+style);
+				String type = DOMUtils.getAttribute(tempEl, Constants.PARAM_TYPE);
+				System.out.println("Param Type:"+type);
+				
+				param.setName(DOMUtils.getAttribute(tempEl, Constants.PARAM_NAME));
+				param.setDefault1(DOMUtils.getAttribute(tempEl, Constants.PARAM_DEFAULT));
+				param.setRequired(DOMUtils.getAttribute(tempEl, Constants.PARAM_REQUIRED));
+				
+				
+				if(type!=null){					
+					param.setType(type);
+				}
+				
+					List<String> optionValue = new ArrayList<String>(30);
+					Element paramoption = DOMUtils.getFirstChildElement(tempEl);
+
+
+					for (; paramoption != null; paramoption = DOMUtils.getNextSiblingElement(paramoption))
+					{
+						if(paramoption.getLocalName().toString().equals("option")){
+						optionValue.add(DOMUtils.getAttribute(paramoption, Constants.OPTION_VALUE));
+						System.out.println("Param Option Value:"+DOMUtils.getAttribute(paramoption, Constants.OPTION_VALUE));
+						}
+					}
+					
+					param.setOptionvalue(optionValue);
+				
+				
+				paramList.add(param);
+			
+			}
+			else
+			{
+				DOMUtils.throwWADLException(tempEl);
+			}
+			tempEl = DOMUtils.getNextSiblingElement(tempEl);
+		}
+		
+		input.setInputXSDList(inputXSDList);
+		input.setParamList(paramList);
+		return input;
+	}
+	
+	protected Response parseResponse(Element outputEl, Application def)
+	throws WADLSException
+	{
+		Response output = def.createResponse();
+		List<String> outputXSDList = new ArrayList<String>(10);
+		List<Param> paramList = new ArrayList<Param>(20);
+		String name = DOMUtils.getAttribute(outputEl, Constants.ATTR_NAME);
+		QName messageName = getQualifiedAttributeValue(outputEl,
+				Constants.ATTR_MESSAGE,
+				Constants.ELEM_OUTPUT,
+				def);
+		
+		if (name != null)
+		{
+			output.setName(name);
+		}
+		List remainingAttrs = DOMUtils.getAttributes(outputEl);
+		String modelReference = DOMUtils.getAttributeNS(outputEl,
+				WORKING_SEMANTIC_NAMESPACE, 
+				Constants.ATTR_MODELREF,
+				remainingAttrs);
+		System.out.println("Model reference for response:"+modelReference);
+		if (modelReference != null)
+		{
+			try {
+				parseModelReference(modelReference, def, output);
+			} catch (URISyntaxException e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			}
+			 /*ModelReference mr = def.createModelReference();
+			 mr.valueOf(modelReference, def);
+			 mr.setParent(preCondition);
+			 preCondition.addModelReference(mr);*/
+		}
+		Element tempEl = DOMUtils.getFirstChildElement(outputEl);
+		
+		while (tempEl != null)
+		{
+			if (QNameUtils.matches(Constants.Q_ELEM_DOCUMENTATION, tempEl))
+			{
+				output.setDocumentationElement(tempEl);
+			}
+			else if (QNameUtils.matches(Constants.Q_ELEM_REPRESENTATION, tempEl))
+			{
+				String outputXSD = DOMUtils.getAttribute(tempEl, Constants.REQUEST_ELEMENT_NAME);
+				//output.setName(outputXSD);
+				outputXSDList.add(outputXSD);
+				System.out.println("OutPut XSD:"+outputXSD);
+				
+			}
+			else if (QNameUtils.matches(Constants.Q_ELEM_PARAM, tempEl))
+			{
+				Param param = new ParamImpl();
+				List remainingParamAttrs = DOMUtils.getAttributes(tempEl);
+				String parammodelReference = DOMUtils.getAttributeNS(tempEl,
+						WORKING_SEMANTIC_NAMESPACE, 
+						Constants.ATTR_MODELREF,
+						remainingAttrs);
+				String liftingschema = DOMUtils.getAttributeNS(tempEl,
+						WORKING_SEMANTIC_NAMESPACE, 
+						Constants.ATTR_LIFTINGSCHEMAMAPPING,
+						remainingAttrs);
+				String loweringschema = DOMUtils.getAttributeNS(tempEl,
+						WORKING_SEMANTIC_NAMESPACE, 
+						Constants.ATTR_LOWERINGSCHEMAMAPPING,
+						remainingAttrs);
+				
+				param.setModelreference(parammodelReference);
+				param.setModelreference(liftingschema);
+				param.setModelreference(loweringschema);
+				
+				String style = DOMUtils.getAttribute(tempEl, Constants.PARAM_STYLE);
+				String type = DOMUtils.getAttribute(tempEl, Constants.PARAM_TYPE);
+				
+				param.setName(DOMUtils.getAttribute(tempEl, Constants.PARAM_NAME));
+				param.setDefault1(DOMUtils.getAttribute(tempEl, Constants.PARAM_DEFAULT));
+				param.setRequired(DOMUtils.getAttribute(tempEl, Constants.PARAM_REQUIRED));
+				
+				if(style.equalsIgnoreCase("query") && type!=null){					
+					param.setType(type);
+				}
+				else{
+					List<String> optionValue = new ArrayList<String>(30);
+					Element paramoption = DOMUtils.getFirstChildElement(tempEl);
+
+
+					for (; paramoption != null; paramoption = DOMUtils.getNextSiblingElement(paramoption))
+					{
+						optionValue.add(DOMUtils.getAttribute(paramoption, Constants.OPTION_VALUE));
+					}
+					
+					param.setOptionvalue(optionValue);
+				 }
+				
+				paramList.add(param);
+			
+			}
+			
+			else
+			{
+				DOMUtils.throwWADLException(tempEl);
+			}
+			
+			tempEl = DOMUtils.getNextSiblingElement(tempEl);
+		}
+		
+		output.setInputXSDList(outputXSDList);
+		output.setParamList(paramList);
+		
+		return output;
+	}
+	
+	protected PreCondition parsePreCondition(Element preConEl, Application def)
+	throws WADLSException, URISyntaxException
+	{
+		PreCondition preCondition = def.createPreCondition();
+		
+		//String name = DOMUtils.getAttribute(preConEl, Constants.ATTR_NAME);
+		String attrModelReference = DOMUtils.getQualifiedValue(WORKING_SEMANTIC_NAMESPACE, Constants.ATTR_MODELREF, def);
+		String modelReference = DOMUtils.getAttribute(preConEl, attrModelReference);
+		String expression = DOMUtils.getAttribute(preConEl, Constants.ATTR_EXPRESSION);
+		System.out.println("Pre Condition:"+expression);
+		
+
+		if (modelReference != null)
+		{
+			parseModelReference(modelReference, def, preCondition);
+			 /*ModelReference mr = def.createModelReference();
+			 mr.valueOf(modelReference, def);
+			 mr.setParent(preCondition);
+			 preCondition.addModelReference(mr);*/
+		}
+		
+		if (expression != null)
+		{
+			preCondition.setExpression(expression);
+		}
+		
+		
+//		parseExtensibilityAttributes(preConEl, PreCondition.class, preCondition, def);
+		
+		return preCondition;
+	}
+	
+	protected Effect parseEffect(Element effectEl, Application def)
+	throws WADLSException, URISyntaxException
+	{
+		Effect effect = def.createEffect();
+		//String name = DOMUtils.getAttribute(effectEl, Constants.ATTR_NAME);
+		String attrModelReference = DOMUtils.getQualifiedValue(WORKING_SEMANTIC_NAMESPACE, Constants.ATTR_MODELREF, def);
+		String modelReference = DOMUtils.getAttribute(effectEl, attrModelReference);
+		String expression = DOMUtils.getAttribute(effectEl, Constants.ATTR_EXPRESSION);
+		System.out.println("EFFECT:"+expression);
+		
+		/*if (name != null)
+		{
+			effect.setName(name);
+		}*/
+		
+		if (modelReference != null)
+		{
+			parseModelReference(modelReference, def, effect);
+			/*ModelReference mr = def.createModelReference();
+			mr.valueOf(modelReference, def);
+			mr.setParent(effect);
+			effect.addModelReference(mr);*/
+		}
+		
+		if (expression != null)
+		{
+			effect.setExpression(expression);
+		}
+		
+				
+//		parseExtensibilityAttributes(effectEl, Effect.class, effect, def);
+		
+		return effect;
+	}
+	
+	/**
+	 * This method should be used for elements that support extension
+	 * attributes because it does not track unexpected remaining attributes.
+	 */
+	private static QName getQualifiedAttributeValue(Element el,
+			String attrName,
+			String elDesc,
+			Application def)
+	throws WADLSException
+	{
+		try
+		{
+			return DOMUtils.getQualifiedAttributeValue(el,
+					attrName,
+					elDesc,
+					false,
+					def);
+		}
+		catch (WADLSException e)
+		{
+			if (e.getFaultCode().equals(WADLSException.NO_PREFIX_SPECIFIED))
+			{
+				String attrValue = DOMUtils.getAttribute(el, attrName);
+				
+				return new QName(attrValue);
+			}
+			else
+			{
+				throw e;
+			}
+		}
+	}
+	
+	/**
+	 * This method should be used for elements that do not support extension
+	 * attributes because it tracks unexpected remaining attributes.
+	 */
+	private static QName getQualifiedAttributeValue(Element el,
+			String attrName,
+			String elDesc,
+			Application def,
+			List remainingAttrs)
+	throws WADLSException
+	{
+		try
+		{
+			return DOMUtils.getQualifiedAttributeValue(el,
+					attrName,
+					elDesc,
+					false,
+					def,
+					remainingAttrs);
+		}
+		catch (WADLSException e)
+		{
+			if (e.getFaultCode().equals(WADLSException.NO_PREFIX_SPECIFIED))
+			{
+				String attrValue = DOMUtils.getAttribute(el, attrName, remainingAttrs);
+				
+				return new QName(attrValue);
+			}
+			else
+			{
+				throw e;
+			}
+		}
+	}
+	
+	private static void checkElementName(Element el, QName qname)
+	throws WADLSException
+	{
+		System.out.println("Element Name:"+el);
+		System.out.println("Q Name:"+qname.toString());
+		if (!QNameUtils.matches(qname, el))
+		{
+			WADLSException wsdlExc = new WADLSException(WADLSException.INVALID_WADL,
+					"Expected element '" +
+					qname + "'.");
+			
+			wsdlExc.setLocation(XPathUtils.getXPathExprFromNode(el));
+			
+			throw wsdlExc;
+		}
+	}
+	
+	private static Document getDocument(InputSource inputSource,
+			String desc) throws WADLSException
+			{
+		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+		
+		factory.setNamespaceAware(true);
+		factory.setValidating(false);
+		
+		try
+		{
+			DocumentBuilder builder = factory.newDocumentBuilder();
+			Document doc = builder.parse(inputSource);
+			
+			return doc;
+		}
+		catch (Throwable t)
+		{
+			throw new WADLSException(WADLSException.XSDPARSER_ERROR,
+					"Problem parsing '" + desc + "'.",
+					t);
+		}
+			}
+	
+	  /**
+	   * Read the WSDL document accessible via the given input stream
+	   * @param wsdlIS a InputStream for a WSDL XML definition
+	   * @return the definition.
+	   * @throws WADLSException
+	   */
+	  public Application readWADL(InputStream wsdlIS)
+	  	throws WADLSException
+	  {
+		    try
+		    {
+		      InputSource inputSource = new InputSource(wsdlIS);
+		      Document doc = getDocument(inputSource, "");
+
+		      wsdlIS.close();
+
+		      //note that documentBaseURI will be null
+		      //importing wsdl or schema should use absolution path/URL
+		      Application def = readWADL(null, doc);
+
+		      return def;
+		    }
+		    catch (WADLSException e)
+		    {
+		      throw e;
+		    }
+		    catch (Throwable t)
+		    {
+		      throw new WADLSException(WADLSException.OTHER_ERROR,
+		                              "Unable to resolve imported document at '", t);
+		    }
+	  }
+	  
+	/**
+	 * Read the WSDL document accessible via the specified
+	 * URI into a WSDL definition.
+	 *
+	 * @param wsdlURI a URI (can be a filename or URL) pointing to a
+	 * WSDL XML definition.
+	 * @return the definition.
+	 */
+	public Application readWADL(String wsdlURI) throws WADLSException
+	{
+		return readWADL(null, wsdlURI);
+	}
+	
+	/**
+	 * Read the WSDL document accessible via the specified
+	 * URI into a WSDL definition.
+	 *
+	 * @param contextURI the context in which to resolve the
+	 * wsdlURI, if the wsdlURI is relative. Can be null, in which
+	 * case it will be ignored.
+	 * @param wsdlURI a URI (can be a filename or URL) pointing to a
+	 * WSDL XML definition.
+	 * @return the definition.
+	 */
+	public Application readWADL(String contextURI, String wsdlURI)
+	throws WADLSException
+	{
+		try
+		{
+			if (verbose)
+			{
+				System.out.println("Retrieving document at '" + wsdlURI + "'" +
+						(contextURI == null
+								? "."
+										: ", relative to '" + contextURI + "'."));
+			}
+			
+			URL contextURL = (contextURI != null)
+			? StringUtils.getURL(null, contextURI)
+					: null;
+			URL url = StringUtils.getURL(contextURL, wsdlURI);
+			InputStream inputStream = url.openStream();
+			InputSource inputSource = new InputSource(inputStream);
+			inputSource.setSystemId(url.toString());
+			Document doc = getDocument(inputSource, url.toString());
+			
+			inputStream.close();
+			
+			Application def = readWADL(url.toString(), doc);
+			
+			return def;
+		}
+		catch (WADLSException e)
+		{
+			throw e;
+		}
+		catch (Throwable t)
+		{
+			throw new WADLSException(WADLSException.OTHER_ERROR,
+					"Unable to resolve imported document at '" +
+					wsdlURI +
+					(contextURI == null
+							? "'."
+									: "', relative to '" + contextURI + "'.")
+									, t);
+		}
+	}
+	
+	/**
+	 * Read the specified &lt;wsdl:definitions&gt; element into a WSDL
+	 * definition.
+	 *
+	 * @param documentBaseURI the document base URI of the WSDL definition
+	 * described by the element. Will be set as the documentBaseURI
+	 * of the returned Definition. Can be null, in which case it
+	 * will be ignored.
+	 * @param definitionsElement the &lt;wsdl:definitions&gt; element
+	 * @return the definition described by the element.
+	 * @throws URISyntaxException 
+	 */
+	public Application readWADL(String documentBaseURI,
+			Element definitionsElement)
+	throws WADLSException, URISyntaxException
+	{
+		return readWADL(documentBaseURI, definitionsElement, null);
+	}
+	
+	protected Application readWADL(String documentBaseURI,
+			Element definitionsElement,
+			Map importedDefs)
+	throws WADLSException, URISyntaxException
+	{
+		return parseApplications(documentBaseURI, definitionsElement, importedDefs);
+	}
+	
+	/**
+	 * Read the specified WSDL document into a WSDL definition.
+	 *
+	 * @param documentBaseURI the document base URI of the WSDL definition
+	 * described by the document. Will be set as the documentBaseURI
+	 * of the returned Definition. Can be null, in which case it
+	 * will be ignored.
+	 * @param wsdlDocument the WSDL document, an XML
+	 * document obeying the WSDL schema.
+	 * @return the definition described in the document.
+	 * @throws URISyntaxException 
+	 */
+	public Application readWADL(String documentBaseURI, Document wsdlDocument)
+	throws WADLSException, URISyntaxException
+	{
+		return readWADL(documentBaseURI, wsdlDocument.getDocumentElement());
+	}
+	
+	/**
+	 * Read a WSDL document into a WSDL definition.
+	 *
+	 * @param documentBaseURI the document base URI of the WSDL definition
+	 * described by the document. Will be set as the documentBaseURI
+	 * of the returned Definition. Can be null, in which case it
+	 * will be ignored.
+	 * @param inputSource an InputSource pointing to the
+	 * WSDL document, an XML document obeying the WSDL schema.
+	 * @return the definition described in the document pointed to
+	 * by the InputSource.
+	 * @throws URISyntaxException 
+	 */
+	public Application readWADL(String documentBaseURI, InputSource inputSource)
+	throws WADLSException, URISyntaxException
+	{
+		return readWADL(documentBaseURI,
+				getDocument(inputSource, "- WSDL Document -"));
+	}
+	
+	/**
+	 * Read a WSDL document into a WSDL definition.
+	 *
+	 * @param locator A WSDLLocator object used to provide InputSources
+	 * pointing to the wsdl file.
+	 * @return the definition described in the document
+	 * @throws URISyntaxException 
+	 */
+	public Application readWADL(WADLLocator locator) throws WADLSException, URISyntaxException
+	{
+		InputSource is = locator.getBaseInputSource();
+		String base = locator.getBaseURI();
+		
+		if (is == null)
+		{
+			throw new WADLSException(WADLSException.OTHER_ERROR,
+					"Unable to locate document at '" + base + "'.");
+		}
+		
+		this.loc = locator;
+		
+		if (verbose)
+		{
+			System.out.println("Retrieving document at '" + base + "'.");
+		}
+		
+		return readWADL(base, is);
+	}
+	
+	protected List<ModelReference> parseModelReference (String modelReference, Application def, ModelReferenceExtensible op) throws URISyntaxException,WADLSException{
+		List <ModelReference> modelReferenceList= new ArrayList<ModelReference>();
+		String [] modelRefs= modelReference.split("\\s");
+		ModelReference currentModelReference;
+		for(int modelRefsIT= 0;modelRefsIT<modelRefs.length;modelRefsIT++){
+			currentModelReference= def.createModelReference();
+			currentModelReference.valueOf(modelRefs[modelRefsIT], def);
+			currentModelReference.setParent(op);
+			modelReferenceList.add(currentModelReference);	
+			op.addModelReference(currentModelReference);  
+			}// end for modelRefsIT
+		
+		return modelReferenceList;
+		
+		
+	}// end method parseModelref
+	
+	protected List<ModelReference> parseModelReference(String modelReferences, Application def) throws URISyntaxException, WADLSException {
+		return ModelReferenceImpl.getModelReferences(modelReferences, def);
+	}
+}
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/xml/WADLWriterImpl.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/xml/WADLWriterImpl.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,696 @@
+/*
+ * (c) Copyright IBM Corp 2001, 2005 
+ */
+
+package edu.uga.cs.lsdis.meteors.wadls.xml;
+
+import java.io.*;
+import java.net.URISyntaxException;
+import java.util.*;
+import javax.xml.namespace.*;
+import javax.xml.parsers.*;
+import org.w3c.dom.*;
+import org.xml.sax.*;
+
+import javax.wadls.*;
+import javax.wadls.extensions.*;
+import javax.wadls.factory.*;
+import javax.wadls.xml.*;
+
+import edu.uga.cs.lsdis.meteors.wadls.*;
+import edu.uga.cs.lsdis.meteors.wadls.util.*;
+import edu.uga.cs.lsdis.meteors.wadls.util.xml.*;
+
+/**
+ * This class describes a collection of methods
+ * that allow a WSDL-S model to be written to a writer
+ * in an XML format that follows the WSDL schema.
+ *
+ * @author Zixin Wu (wuzixin@uga.edu)
+ * @author Matthew J. Duftler
+ * @author Nirmal Mukhi
+ */
+public class WADLWriterImpl implements WADLWriter
+{
+  /**
+   * Sets the specified feature to the specified value.
+   * <p>
+   * There are no minimum features that must be supported.
+   * <p>
+   * All feature names must be fully-qualified, Java package style. All
+   * names starting with javax.wsdls. are reserved for features defined
+   * by the JWSDL specification. It is recommended that implementation-
+   * specific features be fully-qualified to match the package name
+   * of that implementation. For example: com.abc.featureName
+   *
+   * @param name the name of the feature to be set.
+   * @param value the value to set the feature to.
+   * @throws IllegalArgumentException if the feature name is not recognized.
+   * @see #getFeature(String)
+   */
+  public void setFeature(String name, boolean value)
+    throws IllegalArgumentException
+  {
+    if (name == null)
+    {
+      throw new IllegalArgumentException("Feature name must not be null.");
+    }
+    else
+    {
+      throw new IllegalArgumentException("Feature name '" + name +
+                                         "' not recognized.");
+    }
+  }
+
+  /**
+   * Gets the value of the specified feature.
+   *
+   * @param name the name of the feature to get the value of.
+   * @throws IllegalArgumentException if the feature name is not recognized.
+   * @see #setFeature(String, boolean)
+   */
+  public boolean getFeature(String name) throws IllegalArgumentException
+  {
+    if (name == null)
+    {
+      throw new IllegalArgumentException("Feature name must not be null.");
+    }
+    else
+    {
+      throw new IllegalArgumentException("Feature name '" + name +
+                                         "' not recognized.");
+    }
+  }
+
+  protected void printDefinition(Application def, PrintWriter pw)
+    throws WADLSException, URISyntaxException
+  {
+    if (def == null)
+    {
+      return;
+    }
+
+    if (def.getPrefix(Constants.NS_URI_WADL) == null)
+    {
+      String prefix = "wsdl";
+      int subscript = 0;
+
+      while (def.getNamespace(prefix) != null)
+      {
+        prefix = "wsdl" + subscript++;
+      }
+
+      def.addNamespace(prefix, Constants.NS_URI_WADL);
+    }
+
+    if (def.getPrefix(Constants.NS_URI_WADLS) == null)
+    {
+      String prefix = Constants.PREFIX_WSDLS;
+      int subscript = 0;
+
+      while (def.getNamespace(prefix) != null)
+      {
+        prefix = Constants.PREFIX_WSDLS + subscript++;
+      }
+
+      def.addNamespace(prefix, Constants.NS_URI_WADLS);
+    }
+    
+    String tagName =
+      DOMUtils.getQualifiedValue(Constants.NS_URI_WADL,
+                                 Constants.ELEM_DEFINITIONS,
+                                 def);
+
+    pw.print('<' + tagName);
+
+    QName name = def.getQName();
+    String targetNamespace = def.getTargetNamespace();
+    Map namespaces = def.getNamespaces();
+
+    if (name != null)
+    {
+      DOMUtils.printAttribute(Constants.ATTR_NAME, name.getLocalPart(), pw);
+    }
+
+    DOMUtils.printAttribute(Constants.ATTR_TARGET_NAMESPACE,
+                            targetNamespace,
+                            pw);
+
+    printNamespaceDeclarations(namespaces, pw);
+
+    pw.println('>');
+
+    printDocumentation(def.getDocumentationElement(), pw);
+    printIncludes(def.getIncludes(), def, pw);
+    printTypes(def.getParams(), def, pw);
+    printResources(def.getResources(), def, pw);
+
+
+
+ 
+
+    pw.println("</" + tagName + '>');
+
+    pw.flush();
+  }
+
+
+
+
+
+
+
+
+  protected void printResources(Map portTypes,
+		  Application def,
+                                PrintWriter pw)
+                                  throws WADLSException, URISyntaxException
+  {
+    if (portTypes != null)
+    {
+      String tagName =
+        DOMUtils.getQualifiedValue(Constants.NS_URI_WADL,
+                                   Constants.ELEM_RESOURCE,
+                                   def);
+      Iterator portTypeIterator = portTypes.values().iterator();
+
+      while (portTypeIterator.hasNext())
+      {
+        Resource portType = (Resource)portTypeIterator.next();
+
+        if (!portType.isUndefined())
+        {
+          pw.print("  <" + tagName);
+
+          QName name = portType.getQName();
+
+          if (name != null)
+          {
+            DOMUtils.printAttribute(Constants.ATTR_NAME,
+                                    name.getLocalPart(),
+                                    pw);
+          }
+
+
+
+          pw.println('>');
+
+          printDocumentation(portType.getDocumentationElement(), pw);
+          printOperations(portType.getMethods(), def, pw);
+          pw.println("  </" + tagName + '>');
+        }
+      }
+    }
+  }
+  
+  protected void printOperations(List operations,
+		  Application def,
+                                 PrintWriter pw)
+                                   throws WADLSException, URISyntaxException
+  {
+    if (operations != null)
+    {
+      String tagName =
+        DOMUtils.getQualifiedValue(Constants.NS_URI_WADL,
+                                   Constants.ELEM_OPERATION,
+                                   def);
+      Iterator operationIterator = operations.iterator();
+
+      while (operationIterator.hasNext())
+      {
+        Method operation = (Method)operationIterator.next();
+
+        if (!operation.isUndefined())
+        {
+          pw.print("    <" + tagName);
+
+          DOMUtils.printAttribute(Constants.ATTR_NAME,
+                                  operation.getName(),
+                                  pw);
+          //write modelReference
+          ModelReference mr = operation.getModelReference();
+          if (mr != null){
+          	if (mr.getNamespace() != null)		//has namespaceURI
+          		mr.setPrefix(def.getPrefix(mr.getNamespace().toString()));
+          	else								//no namespaceURI, try prefix
+          		mr.setNamespace(def.getNamespace(mr.getPrefix()));
+          	if (mr.getNamespace() == null)		//error
+                  throw new WADLSException(WADLSException.UNBOUND_PREFIX,
+                          "Cannot find the namespace for the prefix " +
+                          mr.getPrefix());
+          	DOMUtils.printQualifiedAttribute(Constants.Q_ATTR_MODELREF,
+  						            mr.value(),
+  						            def,
+  						            pw);
+          }
+          
+          DOMUtils.printAttribute(Constants.ATTR_PARAMETER_ORDER,
+                   StringUtils.getNMTokens(operation.getParameterOrdering()),
+                   pw);
+
+          pw.println('>');
+
+          printDocumentation(operation.getDocumentationElement(), pw);
+            // Must be OperationType.REQUEST_RESPONSE.
+            printInput(operation.getRequest(), def, pw);
+            printOutput(operation.getResponse(), def, pw);
+          
+          printPreCondition(operation.getPreCondition(), def, pw);
+          printEffect(operation.getEffect(), def, pw);
+
+       
+          
+       
+          
+       
+
+          pw.println("    </" + tagName + '>');
+        }
+      }
+    }
+  }
+  
+  protected void printPreCondition(PreCondition preCondition,
+		  Application def,
+							        PrintWriter pw)
+							          throws WADLSException, URISyntaxException
+{
+	if (preCondition != null)
+	{
+		String tagName =
+		DOMUtils.getQualifiedValue(Constants.NS_URI_WADLS,
+		               Constants.ELEM_PRECON,
+		               def);
+
+		pw.print("      <" + tagName);
+		
+		DOMUtils.printAttribute(Constants.ATTR_NAME, preCondition.getName(), pw);
+		
+        //write modelReference
+        ModelReference mr = preCondition.getModelReference();
+        if (mr != null){
+        	if (mr.getNamespace() != null)		//has namespaceURI
+        		mr.setPrefix(def.getPrefix(mr.getNamespace().toString()));
+        	else								//no namespaceURI, try prefix
+        		mr.setNamespace(def.getNamespace(mr.getPrefix()));
+        	if (mr.getNamespace() == null)		//error
+                throw new WADLSException(WADLSException.UNBOUND_PREFIX,
+                        "Cannot find the namespace for the prefix " +
+                        mr.getPrefix());
+        	DOMUtils.printQualifiedAttribute(Constants.Q_ATTR_MODELREF,
+						            mr.value(),
+						            def,
+						            pw);
+        }
+
+		DOMUtils.printAttribute(Constants.ATTR_EXPRESSION, preCondition.getExpression(), pw);
+
+//		printExtensibilityAttributes(PreCondition.class, preCondition, def, pw);
+		
+		Element docEl = preCondition.getDocumentationElement();
+		
+		if (docEl == null)
+		{
+			pw.println("/>");
+		}
+		else
+		{
+			pw.print('>');
+			
+	        printDocumentation(docEl, pw);
+			
+			pw.println("</" + tagName + '>');
+		}
+	}
+}
+  protected void printEffect(Effect effect,
+		  Application def,
+					        PrintWriter pw)
+					          throws WADLSException, URISyntaxException
+{
+	if (effect != null)
+	{
+		String tagName =
+		DOMUtils.getQualifiedValue(Constants.NS_URI_WADLS,
+									Constants.ELEM_EFFECT,
+									def);
+
+		pw.print("      <" + tagName);
+		
+		DOMUtils.printAttribute(Constants.ATTR_NAME, effect.getName(), pw);
+		
+        //write modelReference
+        ModelReference mr = effect.getModelReference();
+        if (mr != null){
+        	if (mr.getNamespace() != null)		//has namespaceURI
+        		mr.setPrefix(def.getPrefix(mr.getNamespace().toString()));
+        	else								//no namespaceURI, try prefix
+        		mr.setNamespace(def.getNamespace(mr.getPrefix()));
+        	if (mr.getNamespace() == null)		//error
+                throw new WADLSException(WADLSException.UNBOUND_PREFIX,
+                        "Cannot find the namespace for the prefix " +
+                        mr.getPrefix());
+        	DOMUtils.printQualifiedAttribute(Constants.Q_ATTR_MODELREF,
+						            mr.value(),
+						            def,
+						            pw);
+        }
+        
+		DOMUtils.printAttribute(Constants.ATTR_EXPRESSION, effect.getExpression(), pw);
+
+//        printExtensibilityAttributes(Effect.class, effect, def, pw);
+		
+		Element docEl = effect.getDocumentationElement();
+		
+		if (docEl == null)
+		{
+			pw.println("/>");
+		}
+		else
+		{
+			pw.print('>');
+			
+	        printDocumentation(docEl, pw);
+			
+			pw.println("</" + tagName + '>');
+		}
+	}
+}
+  
+  protected void printInput(Request input,
+		  Application def,
+                            PrintWriter pw)
+                              throws WADLSException
+  {
+    if (input != null)
+    {
+      String tagName =
+        DOMUtils.getQualifiedValue(Constants.NS_URI_WADL,
+                                   Constants.ELEM_INPUT,
+                                   def);
+
+      pw.print("      <" + tagName);
+
+      DOMUtils.printAttribute(Constants.ATTR_NAME, input.getName(), pw);
+
+      Element docEl = input.getDocumentationElement();
+
+      if (docEl == null)
+      {
+        pw.println("/>");
+      }
+      else
+      {
+        pw.println('>');
+
+        printDocumentation(docEl, pw);
+
+        pw.println("      </" + tagName + '>');
+      }
+    }
+  }
+
+  protected void printOutput(Response output,
+		  Application def,
+                             PrintWriter pw)
+                               throws WADLSException
+  {
+    if (output != null)
+    {
+      String tagName =
+        DOMUtils.getQualifiedValue(Constants.NS_URI_WADL,
+                                   Constants.ELEM_OUTPUT,
+                                   def);
+
+      pw.print("      <" + tagName);
+
+      DOMUtils.printAttribute(Constants.ATTR_NAME, output.getName(), pw);
+
+      Element docEl = output.getDocumentationElement();
+
+      if (docEl == null)
+      {
+        pw.println("/>");
+      }
+      else
+      {
+        pw.println('>');
+
+        printDocumentation(docEl, pw);
+
+        pw.println("      </" + tagName + '>');
+      }
+    }
+  }
+
+
+
+
+
+  protected void printDocumentation(Element docElement,
+                                    PrintWriter pw)
+                                      throws WADLSException
+  {
+    if (docElement != null)
+    {
+      DOM2Writer.serializeAsXML(docElement, pw);
+
+      pw.println();
+    }
+  }
+
+  protected void printTypes(Params types, Application def, PrintWriter pw)
+    throws WADLSException
+  {
+    if (types != null)
+    {
+      String tagName =
+        DOMUtils.getQualifiedValue(Constants.NS_URI_WADL,
+                                   Constants.ELEM_TYPES,
+                                   def);
+      pw.print("  <" + tagName);
+
+      pw.println('>');
+
+      printDocumentation(types.getDocumentationElement(), pw);
+
+    
+
+
+
+      pw.println("  </" + tagName + '>');
+    }
+  }
+
+  protected void printIncludes(Map imports, Application def, PrintWriter pw)
+    throws WADLSException
+  {
+    if (imports != null)
+    {
+      String tagName =
+        DOMUtils.getQualifiedValue(Constants.NS_URI_WADL,
+                                   Constants.ELEM_INCLUDE,
+                                   def);
+      Iterator importListIterator = imports.values().iterator();
+
+      while (importListIterator.hasNext())
+      {
+        List importList = (List)importListIterator.next();
+        Iterator importIterator = importList.iterator();
+
+        while (importIterator.hasNext())
+        {
+          Include importDef = (Include)importIterator.next();
+
+          pw.print("  <" + tagName);
+
+          DOMUtils.printAttribute(Constants.ATTR_NAMESPACE,
+                                  importDef.getNamespaceURI(),
+                                  pw);
+          DOMUtils.printAttribute(Constants.ATTR_LOCATION,
+                                  importDef.getLocationURI(),
+                                  pw);
+
+
+
+          Element docEl = importDef.getDocumentationElement();
+
+          if (docEl == null)
+          {
+            pw.println("/>");
+          }
+          else
+          {
+            pw.println('>');
+
+            printDocumentation(docEl, pw);
+
+            pw.println("      </" + tagName + '>');
+          }
+        }
+      }
+    }
+  }
+
+  protected void printNamespaceDeclarations(Map namespaces,
+                                            PrintWriter pw)
+                                              throws WADLSException
+  {
+    if (namespaces != null)
+    {
+      Set keys = namespaces.keySet();
+      Iterator keyIterator = keys.iterator();
+
+      while (keyIterator.hasNext())
+      {
+        String prefix = (String)keyIterator.next();
+
+        if (prefix == null)
+        {
+          prefix = "";
+        }
+
+        DOMUtils.printAttribute(Constants.ATTR_XMLNS +
+                                (!prefix.equals("") ? ":" + prefix : ""),
+                                (String)namespaces.get(prefix),
+                                pw);
+      }
+    }
+  }
+
+
+  private static Document getDocument(InputSource inputSource,
+                                      String desc) throws WADLSException
+  {
+    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+
+    factory.setNamespaceAware(true);
+    factory.setValidating(false);
+
+    try
+    {
+      DocumentBuilder builder = factory.newDocumentBuilder();
+      Document doc = builder.parse(inputSource);
+
+      return doc;
+    }
+    catch (Throwable t)
+    {
+      throw new WADLSException(WADLSException.XSDPARSER_ERROR,
+                              "Problem parsing '" + desc + "'.",
+                              t);
+    }
+  }
+
+  /**
+   * Return a document generated from the specified WSDL model.
+ * @throws URISyntaxException 
+   */
+  public Document getDocument(Application wsdlDef) throws WADLSException, URISyntaxException
+  {
+    StringWriter sw = new StringWriter();
+    PrintWriter pw = new PrintWriter(sw);
+
+    writeWADL(wsdlDef, pw);
+
+    StringReader sr = new StringReader(sw.toString());
+    InputSource is = new InputSource(sr);
+
+    return getDocument(is, "- WSDL Document -");
+  }
+
+  /**
+   * Write the specified WSDL definition to the specified Writer.
+   *
+   * @param wsdlDef the WSDL definition to be written.
+   * @param sink the Writer to write the xml to.
+ * @throws URISyntaxException 
+   */
+  public void writeWADL(Application wsdlDef, Writer sink)
+    throws WADLSException, URISyntaxException
+  {
+    PrintWriter pw = new PrintWriter(sink);
+    String javaEncoding = (sink instanceof OutputStreamWriter)
+                          ? ((OutputStreamWriter)sink).getEncoding()
+                          : null;
+
+    String xmlEncoding = DOM2Writer.java2XMLEncoding(javaEncoding);                      
+
+    if (xmlEncoding == null)
+    {
+      throw new WADLSException(WADLSException.CONFIGURATION_ERROR,
+                              "Unsupported Java encoding for writing " +
+                              "wsdl file: '" + javaEncoding + "'.");
+    }
+
+    pw.println(Constants.XML_DECL_START +
+               xmlEncoding +
+               Constants.XML_DECL_END);
+
+    printDefinition(wsdlDef, pw);
+  }
+
+  /**
+   * Write the specified WSDL definition to the specified OutputStream.
+   *
+   * @param wsdlDef the WSDL definition to be written.
+   * @param sink the OutputStream to write the xml to.
+ * @throws URISyntaxException 
+   */
+  public void writeWADL(Application wsdlDef, OutputStream sink)
+    throws WADLSException, URISyntaxException
+  {
+    Writer writer = null;
+
+    try
+    {
+      writer = new OutputStreamWriter(sink, "UTF8");
+    }
+    catch (UnsupportedEncodingException e)
+    {
+      e.printStackTrace();
+
+      writer = new OutputStreamWriter(sink);
+    }
+
+    writeWADL(wsdlDef, writer);
+  }
+
+  /**
+   * A test driver.
+   *<code>
+   *<pre>Usage:</pre>
+   *<p>
+   *<pre>  java edu.uga.cs.lsdis.meteors.wsdls.xml.WSDLWriterImpl filename|URL</pre>
+   *<p>
+   *<pre>    This test driver simply reads a WSDL document into a model
+   *    (using a WSDLReader), and then serializes it back to
+   *    standard out. In effect, it performs a round-trip test on
+   *    the specified WSDL document.</pre>
+ * @throws URISyntaxException 
+   */
+  public static void main(String[] argv) throws WADLSException, URISyntaxException
+  {
+    if (argv.length == 1)
+    {
+      WADLFactory wsdlFactory = WADLFactory.newInstance();
+      WADLReader  wsdlReader  = wsdlFactory.newWADLReader();
+      WADLWriter  wsdlWriter  = wsdlFactory.newWADLWriter();
+
+      wsdlWriter.writeWADL(wsdlReader.readWADL(null, argv[0]), System.out);
+    }
+    else
+    {
+      System.err.println("Usage:");
+      System.err.println();
+      System.err.println("  java " + WADLWriterImpl.class.getName() +
+                         " filename|URL");
+      System.err.println();
+      System.err.println("This test driver simply reads a WSDL document " +
+                         "into a model (using a WSDLReader), and then " +
+                         "serializes it back to standard out. In effect, " +
+                         "it performs a round-trip test on the specified " +
+                         "WSDL document.");
+    }
+  }
+}
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/Application.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/Application.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,268 @@
+package javax.wadls;
+
+import java.net.URI;
+import java.util.*;
+import org.w3c.dom.*;
+
+import javax.wadls.Params;
+import javax.wadls.extensions.ExtensionRegistry;
+import javax.xml.namespace.*;
+
+/**
+ * This interface represents a WADLS Application
+ *
+ */
+public interface Application extends java.io.Serializable
+{
+
+ 	/**
+  	 * Get all the Operations which has a modelReference with the specified namespace and concept.
+  	 * @param namespace The namespace of the modelReference
+  	 * @param concept The concept of the modelReference
+  	 * @return All the Operations which has a modelReference with the specified namespace and concept.
+  	 */
+	
+	
+	List getMethodsByModelReference(URI namespace, String concept);
+
+  	/**
+  	 * Get all the XSD Elements which has a modelReference with the specified namespace and concept.
+  	 * @param namespace The namespace of the modelReference
+  	 * @param concept The concept of the modelReference
+  	 * @return All the XSD Elements which has a modelReference with the specified namespace and concept.
+  	 */
+	List getXSDElementsByModelReference(URI namespace, String concept);
+	
+  	/**
+  	 * Get all the XSD ComplexTypes which has a modelReference with the specified namespace and concept.
+  	 * @param namespace The namespace of the modelReference
+  	 * @param concept The concept of the modelReference
+  	 * @return All the XSD ComplexTypes which has a modelReference with the specified namespace and concept.
+  	 */
+	List getXSDComplexTypeByModelReference(URI namespace, String concept);
+
+  /**
+   * Set the document base URI of this definition. Can be used to
+   * represent the origin of the Definition, and can be exploited
+   * when resolving relative URIs (e.g. in &lt;import&gt;s).
+   *
+   * @param documentBaseURI the document base URI of this definition
+   */
+  public void setDocumentBaseURI(String documentBaseURI);
+
+  /**
+   * Get the document base URI of this definition.
+   *
+   * @return the document base URI
+   */
+  public String getDocumentBaseURI();
+
+  public String getResourcesPath();
+  public void setResourcesPath(String path);
+  /**
+   * Set the name of this definition.
+   *
+   * @param name the desired name
+   */
+  public void setQName(QName name);
+
+  /**
+   * Get the name of this definition.
+   *
+   * @return the definition name
+   */
+  public QName getQName();
+
+  /**
+   * Set the target namespace in which WADL elements are defined.
+   *
+   * @param targetNamespace the target namespace
+   */
+  public void setTargetNamespace(String targetNamespace);
+
+  /**
+   * Get the target namespace in which the WADL elements
+   * are defined.
+   *
+   * @return the target namespace
+   */
+  public String getTargetNamespace();
+
+  /**
+   * This is a way to add a namespace association to a definition.
+   * It is similar to adding a namespace prefix declaration to the
+   * top of a &lt;wsdl:definition&gt; element. This has nothing to do
+   * with the &lt;wsdl:import&gt; element; there are separate methods for
+   * dealing with information described by &lt;wsdl:import&gt; elements.
+   *
+   * @param prefix the prefix to use for this namespace (when
+   * rendering this information as XML). Use null or an empty string
+   * to describe the default namespace (i.e. xmlns="...").
+   * @param namespaceURI the namespace URI to associate the prefix
+   * with. If you use null, the namespace association will be removed.
+   */
+   public void addNamespace(String prefix, String namespaceURI);
+
+   /**
+    * Get the namespace URI associated with this prefix. Or null if
+    * there is no namespace URI associated with this prefix. This is
+    * unrelated to the &lt;wsdl:import&gt; element.
+    *
+    * @see #addNamespace(String, String)
+    * @see #getPrefix(String)
+    */
+   public String getNamespace(String prefix);
+   
+   public void setGrammars(Grammars grammars);
+   public Grammars getGrammars();
+
+   /**
+    * Get the types section.
+    *
+    * @return the types section
+    */
+   public Params getParams();
+   public void setParams(Params params);
+   /**
+    * Get a prefix associated with this namespace URI. Or null if
+    * there are no prefixes associated with this namespace URI. This is
+    * unrelated to the &lt;wsdl:import&gt; element.
+    *
+    * @see #addNamespace(String, String)
+    * @see #getNamespace(String)
+    */
+   public String getPrefix(String namespaceURI);
+
+   /**
+    * Get all namespace associations in this application. The keys are
+    * the prefixes, and the namespace URIs are the values. This is
+    * unrelated to the &lt;wsdl:import&gt; element.
+    *
+    * @see #addNamespace(String, String)
+    */
+   public Map getNamespaces();
+
+
+  /**
+   * Add an import to this WADL description.
+   *
+   * @param importDef the import to be added
+   */
+  public void addInclude(Include includeApp);
+
+  /**
+   * Get the list of imports for the specified namespaceURI.
+   *
+   * @param namespaceURI the namespaceURI associated with the
+   * desired imports.
+   * @return a list of the corresponding imports, or null if
+   * there weren't any matching imports
+   */
+  public List getIncludes(String namespaceURI);
+
+  /**
+   * Get a map of lists containing all the imports defined here.
+   * The map's keys are the namespaceURIs, and the map's values
+   * are lists. There is one list for each namespaceURI for which
+   * imports have been defined.
+   */
+  public Map getIncludes();
+
+  
+  /**
+   * Add a portType to this WADL description.
+   *
+   * @param resource the resource to be added
+   */
+  public void addResource(Resource resource);
+
+  /**
+   * Get the specified resource. Also checks imported documents.
+   *
+   * @param name the name of the desired resource.
+   * @return the corresponding resource, or null if there wasn't
+   * any matching resource
+   */
+  public Resource getResource(QName name);
+
+  /**
+   * Remove the specified resource from this app.
+   *
+   * @param name the name of the resource to remove
+   * @return the resource previously associated with this qname, if there
+   * was one; may return null
+   */
+  public Resource removeResource(QName name);
+
+  /**
+   * Get all the resources defined here.
+   */
+  public Map getResources();
+
+  /**
+   * Set the documentation element for this document. This dependency
+   * on org.w3c.dom.Element should eventually be removed when a more
+   * appropriate way of representing this information is employed.
+   *
+   * @param docEl the documentation element
+   */
+  public void setDocumentationElement(Element docEl);
+
+  /**
+   * Get the documentation element. This dependency on org.w3c.dom.Element
+   * should eventually be removed when a more appropriate way of
+   * representing this information is employed.
+   *
+   * @return the documentation element
+   */
+  public Element getDocumentationElement();
+
+ 
+  public ModelReference createModelReference();
+
+  /**
+   * Create a new precondition.
+   *
+   * @return the newly created precondition
+   */
+  public PreCondition createPreCondition();
+
+  /**
+   * Create a new effect.
+   *
+   * @return the newly created effect
+   */
+  public Effect createEffect();
+
+  public Include createInclude();
+
+  /**
+   * Create a new input.
+   *
+   * @return the newly created input
+   */
+  public Request createRequest();
+
+  
+  /**
+   * Create a new operation.
+   *
+   * @return the newly created operation
+   */
+  public Method createMethod();
+
+  /**
+   * Create a new output.
+   *
+   * @return the newly created output
+   */
+  public Response createResponse();
+
+
+
+  public Resource createResource();
+
+ 
+  public Params createParams();
+  public Grammars createGrammars();
+ }
\ No newline at end of file
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/Effect.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/Effect.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,59 @@
+package javax.wadls;
+
+import org.w3c.dom.*;
+
+
+/**
+ * This interface represents an effect.
+ *
+ * @author Zixin Wu
+ */
+public interface Effect extends java.io.Serializable, ModelReferenceExtensible
+{
+	/**
+	 * Set the name of this effect.
+	 *
+	 * @param name the desired name
+	 */
+	public void setName(String name);
+	
+	/**
+	 * Get the name of this effect.
+	 *
+	 * @return the effect name
+	 */
+	public String getName();
+	
+	/**
+	 * Set the expression of this effect.
+	 *
+	 * @param expression The desired expression.
+	 */
+	public void setExpression(String expression);
+	
+	/**
+	 * Get the expression of this effect.
+	 *
+	 * @return The expression.
+	 */
+	public String getExpression();
+	
+	/**
+	 * Set the documentation element for this document. This dependency
+	 * on org.w3c.dom.Element should eventually be removed when a more
+	 * appropriate way of representing this information is employed.
+	 *
+	 * @param docEl the documentation element
+	 */
+	public void setDocumentationElement(Element docEl);
+	
+	/**
+	 * Get the documentation element. This dependency on org.w3c.dom.Element
+	 * should eventually be removed when a more appropriate way of
+	 * representing this information is employed.
+	 *
+	 * @return the documentation element
+	 */
+	public Element getDocumentationElement();
+	
+}
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/Grammars.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/Grammars.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,103 @@
+
+package javax.wadls;
+
+import java.net.URISyntaxException;
+import java.util.List;
+import java.util.Map;
+
+import javax.wadls.extensions.ElementExtensible;
+import javax.wadls.extensions.schema.Schema;
+import javax.wadls.Application;
+import javax.wadls.ModelReference;
+import javax.wadls.WADLSException;
+import javax.xml.namespace.QName;
+
+import org.w3c.dom.Element;
+
+/**
+ * This interface represents the &lt;types&gt; section of a WSDL document.
+ * 
+ * @author Zixin Wu (wuzixin@uga.edu)
+ * @author Matthew J. Duftler (duftler@us.ibm.com)
+ */
+public interface Grammars extends java.io.Serializable,ModelReferenceExtensible
+{public List getTopLevelSchemas();
+
+/**
+ * Get the DOM elements of all the schemas in this Types.
+ * @return A list of DOM elements of all the schemas in this Types.
+ */
+public Map getSchemas();
+
+public void setSchemas(Map allSchemas);
+
+
+
+/**
+ * Get the DOM element of the first schema in this Types.
+ * @return The DOM element of the first schema in this Types.
+ */
+public Schema getFirstSchema();
+
+public ModelReference getModelReference(Element startElement, String path, Application app) throws WADLSException, URISyntaxException;
+
+/**
+ * Set the modelReference on the element located by the given path.
+ * @param startElement The starting element of the path
+ * @param path
+ * @param modelReference The desired modelReference
+ */
+public void addModelReference(Element startElement, String path, ModelReference modelReference) throws WADLSException;
+
+public void setModelReferences(Element startElement, String path, List<ModelReference> refs) throws WADLSException;
+
+/**
+ * Get the LiftingSchemaMapping on the element located by the given path.
+ * @param startElement The starting element of the path
+ * @param path
+ * @return The schemaMapping value
+ */
+public String getLiftingSchemaMapping(Element startElement, String path) throws WADLSException;
+
+/**
+ * Set the LiftingSchemaMapping on the element located by the given path.
+ * @param startElement The starting element of the path
+ * @param path
+ * @param schemaMapping The desired schemaMapping
+ */
+public void setLiftingSchemaMapping(Element startElement, String path, String schemaMapping) throws WADLSException;
+
+/**
+ * Get the LiftingSchemaMapping on the element located by the given path.
+ * @param startElement The starting element of the path
+ * @param path
+ * @return The schemaMapping value
+ */
+public String getLoweringSchemaMapping(Element startElement, String path) throws WADLSException;
+
+/**
+ * Set the LiftingSchemaMapping on the element located by the given path.
+ * @param startElement The starting element of the path
+ * @param path
+ * @param schemaMapping The desired schemaMapping
+ */
+public void setLoweringSchemaMapping(Element startElement, String path, String schemaMapping) throws WADLSException;
+
+/**
+ * Set the documentation element for this document. This dependency
+ * on org.w3c.dom.Element should eventually be removed when a more
+ * appropriate way of representing this information is employed.
+ *
+ * @param docEl the documentation element
+ */
+public void setDocumentationElement(Element docEl);
+
+/**
+ * Get the documentation element. This dependency on org.w3c.dom.Element
+ * should eventually be removed when a more appropriate way of
+ * representing this information is employed.
+ *
+ * @return the documentation element
+ */
+public Element getDocumentationElement();
+}
\ No newline at end of file
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/Include.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/Include.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,78 @@
+/*
+ * (c) Copyright IBM Corp 2001, 2005 
+ */
+
+package javax.wadls;
+
+import org.w3c.dom.*;
+
+
+
+/**
+ * This interface represents an import, and may contain a reference
+ * to the imported definition.
+ *
+ * @author Matthew J. Duftler (duftler@us.ibm.com)
+ */
+public interface Include extends java.io.Serializable
+{
+  /**
+   * Set the namespace URI of this import.
+   *
+   * @param namespaceURI the desired namespace URI
+   */
+  public void setNamespaceURI(String namespaceURI);
+
+  /**
+   * Get the namespace URI of this import.
+   */
+  public String getNamespaceURI();
+
+  /**
+   * Set the location URI of this import.
+   *
+   * @param locationURI the desired location URI
+   */
+  public void setLocationURI(String locationURI);
+
+  /**
+   * Get the location URI of this import.
+   */
+  public String getLocationURI();
+
+  /**
+   * This property can be used to hang a referenced Definition,
+   * and the top-level Definition (i.e. the one with the &lt;import&gt;)
+   * will use this Definition when resolving referenced WSDL parts.
+   * This would need to be made into a generic reference to handle
+   * other types of referenced documents.
+   */
+  public void setApplication(Application app);
+
+  /**
+   * This property can be used to hang a referenced Definition,
+   * and the top-level Definition (i.e. the one with the &lt;import&gt;)
+   * will use this Definition when resolving referenced WSDL parts.
+   * This would need to be made into a generic reference to handle
+   * other types of referenced documents.
+   */
+  public Application getApplication();
+
+  /**
+   * Set the documentation element for this document. This dependency
+   * on org.w3c.dom.Element should eventually be removed when a more
+   * appropriate way of representing this information is employed.
+   *
+   * @param docEl the documentation element
+   */
+  public void setDocumentationElement(Element docEl);
+
+  /**
+   * Get the documentation element. This dependency on org.w3c.dom.Element
+   * should eventually be removed when a more appropriate way of
+   * representing this information is employed.
+   *
+   * @return the documentation element
+   */
+  public Element getDocumentationElement();
+}
\ No newline at end of file
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/Method.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/Method.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,142 @@
+/*
+ * (c) Copyright IBM Corp 2001, 2005 
+ */
+
+package javax.wadls;
+
+import java.util.List;
+import java.util.Map;
+import org.w3c.dom.Element;
+
+
+/**
+ * This interface represents a WSDL operation.
+ * It includes information on input, output and fault
+ * messages associated with usage of the operation.
+ *
+ * @author Zixin Wu (wuzixin@uga.edu)
+ * @author Paul Fremantle (pzf@us.ibm.com)
+ * @author Nirmal Mukhi (nmukhi@us.ibm.com)
+ * @author Matthew J. Duftler (duftler@us.ibm.com)
+ */
+public interface Method extends java.io.Serializable, ModelReferenceExtensible
+{
+	
+	/**
+	 * Set the precondition of this operation.
+	 *
+	 * @param preCondition the desired precondition
+	 */
+	public void setPreCondition(PreCondition preCondition);
+	
+	/**
+	 * Get the precondition of this operation.
+	 *
+	 * @return the precondition
+	 */
+	public PreCondition getPreCondition();
+	
+	/**
+	 * Set the effect of this operation.
+	 *
+	 * @param effect the desired effect
+	 */
+	public void setEffect(Effect effect);
+	
+	/**
+	 * Get the effect of this operation.
+	 *
+	 * @return The effect
+	 */
+	public Effect getEffect();
+	
+	/**
+	 * Set the name of this operation.
+	 *
+	 * @param name the desired name
+	 */
+	public void setName(String name);
+	
+	/**
+	 * Get the name of this operation.
+	 *
+	 * @return the operation name
+	 */
+	public String getName();
+	
+	/**
+	 * Set the input message specification for this operation.
+	 *
+	 * @param input the new input message
+	 */
+	public void setRequest(Request request);
+	
+	/**
+	 * Get the input message specification for this operation.
+	 *
+	 * @return the input message
+	 */
+	public Request getRequest();
+	
+	/**
+	 * Set the output message specification for this operation.
+	 *
+	 * @param output the new output message
+	 */
+	public void setResponse(Response response);
+	
+	/**
+	 * Get the output message specification for this operation.
+	 *
+	 * @return the output message specification for the operation
+	 */
+	public Response getResponse();
+	
+	
+	/**
+	 * Set the style for this operation (request-response,
+	 * one way, solicit-response or notification).
+	 *
+	 * @param style the new operation style
+
+	/**
+	 * Set the parameter ordering for a request-response,
+	 * or solicit-response operation.
+	 *
+	 * @param parameterOrder a list of named parameters
+	 * containing the part names to reflect the desired
+	 * order of parameters for RPC-style operations
+	 */
+	public void setParameterOrdering(List parameterOrder);
+	
+	/**
+	 * Get the parameter ordering for this operation.
+	 *
+	 * @return the parameter ordering, a list consisting
+	 * of message part names
+	 */
+	public List getParameterOrdering();
+	
+	/**
+	 * Set the documentation element for this document. This dependency
+	 * on org.w3c.dom.Element should eventually be removed when a more
+	 * appropriate way of representing this information is employed.
+	 *
+	 * @param docEl the documentation element
+	 */
+	public void setDocumentationElement(Element docEl);
+	
+	/**
+	 * Get the documentation element. This dependency on org.w3c.dom.Element
+	 * should eventually be removed when a more appropriate way of
+	 * representing this information is employed.
+	 *
+	 * @return the documentation element
+	 */
+	public Element getDocumentationElement();
+	
+	public void setUndefined(boolean isUndefined);
+	
+	public boolean isUndefined();
+
+}
\ No newline at end of file
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/ModelReference.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/ModelReference.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,77 @@
+package javax.wadls;
+
+import java.net.URI;
+import java.net.URISyntaxException;
+
+/**
+ * This interface represents a ModelReference.
+ * 
+ * @author Zixin Wu (wuzixin@uga.edu)
+ *
+ */
+public interface ModelReference {
+
+	/**
+	 * Get the concept of this modelReference.
+	 * @return The concept of this modelReference.
+	 */
+	public String getConcept();
+
+	/**
+	 * Set the concept of this modelReference.
+	 * @param concept The desired concept of this modelReference.
+	 */
+	public void setConcept(String concept);
+
+	/**
+	 * Get the prefix of this modelReference
+	 * @return The prefix  of this modelReference
+	 */
+	public String getPrefix();
+
+	/**
+	 * Set the prefix of the ontology used in this modelReference
+	 * @param prefix The desired prefix of the ontology used in this modelReference
+	 */
+	public void setPrefix(String prefix);
+
+	/**
+	 * Get the namespace of the ontology used in this modelReference
+	 * @return The namespace of the ontology used in this modelReference
+	 */
+	public URI getNamespace();
+
+	/**
+	 * Set the namespace of the ontology used in this modelReference
+	 * @param nameSpace The desired namespace of the ontology used in this modelReference
+	 */
+	public void setNamespace(String nameSpace)
+			throws URISyntaxException;
+
+	/**
+	 * Get the parent object of this modelReference
+	 * @return The parent object of this modelReference
+	 */
+	public Object getParent();
+
+	/**
+	 * Set the parent object of this modelReference
+	 * @param parent The desired parent object of this modelReference
+	 */
+	public void setParent(Object parent);
+	
+	/**
+	 * Set the value of this modelReference by parsing the formatted string.
+	 * @param modelReferenceAsString The formatted string
+	 * @param def WSDLS definition
+	 * @throws URISyntaxException 
+	 * @throws WSDLSException 
+	 */
+	public void valueOf(String modelReferenceAsString, Application app) throws URISyntaxException, WADLSException;
+	
+	/**
+	 * Return a formatted string representing this modelReference.
+	 * @return A formatted string representing this modelReference.
+	 */
+	public String value();
+}
\ No newline at end of file
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/ModelReferenceExtensible.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/ModelReferenceExtensible.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,40 @@
+package javax.wadls;
+
+import java.util.List;
+
+/**
+ * This interface marks a WADL param being allowed to have a
+ * <code>javax.wadls.ModelReference</code> for SAWADL.
+ * 
+ * @author Douglas Brewer
+ */
+public interface ModelReferenceExtensible {
+
+	/**
+	 * Add a single ModelReference to the Element.
+	 * 
+	 * @param modelReference The ModelReference.
+	 */
+	public void addModelReference(ModelReference modelReference);
+	
+	/**
+	 * Get the first ModelReference in the list of ModelReferences.
+	 * 
+	 * @return The first ModelReference.
+	 */
+	public ModelReference getModelReference();
+	
+	/**
+	 * Get all the ModelReferences of the Element.
+	 * 
+	 * @return A list of ModelReferences.
+	 */
+	public List<ModelReference> getModelReferences();
+	
+	/**
+	 * Set the ModelReferences of this Element.
+	 * 
+	 * @param refs The ModelReferences for this Element.
+	 */
+	public void setModelReferences(List<ModelReference> refs);
+}
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/Param.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/Param.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,98 @@
+/*
+ * Copyright (c) 2009 Srikalyan Swayampakula.. All rights reserved.
+ * 
+ *   Author : Srikalyan Swayampakula. .
+ *   Name of the File : Param.java .
+ *   Created on : Nov 22, 2009 at 4:03:57 PM .
+ * 
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ * 
+ *  1. Redistributions of source code must retain the above
+ *     copyright notice, this list of conditions and the following
+ *     disclaimer.
+ *  2. Redistributions in binary form must reproduce the above
+ *     copyright notice, this list of conditions and the following
+ *     disclaimer in the documentation and/or other materials
+ *     provided with the distribution.
+ *  3. Neither the name of the University of Georgia nor the names
+ *     of its contributors may be used to endorse or promote
+ *     products derived from this software without specific prior
+ *     written permission.
+ * 
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ *  CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ *  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ *  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ *  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ *  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ *  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package javax.wadls;
+
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ *
+ * @author Srikalyan Swayampakula.
+ */
+public interface Param extends java.io.Serializable
+{
+	
+     
+    
+    public String getModelreference();
+    
+    public void setModelreference(String modelreference);
+
+	public String getLiftingschemamapping();
+
+	public void setLiftingschemamapping(String liftingschemamapping) ;
+	public String getLoweringschemamapping() ;
+
+	public void setLoweringschemamapping(String loweringschemamapping) ;
+
+	public List<String> getOptionvalue() ;
+
+	public void setOptionvalue(List<String> optionvalue) ;
+	
+    public String getDefault1();
+    public void setDefault1(String default1);
+
+
+
+    public String getFixed();
+
+    public void setFixed(String fixed);
+
+
+    public String getId();
+    public void setId(String id);
+
+    public String getName();
+
+    public void setName(String name);
+   
+    public String getPath();
+    public void setPath(String path);
+    public boolean isRepeation();
+    public void setRepeation(boolean repeation);
+    public String getRequired();
+
+    public void setRequired(String required);
+    public String getStyle();
+
+    public void setStyle(String style);
+    public String getType();
+
+    public void setType(String type);
+}
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/Params.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/Params.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,117 @@
+/*
+ * (c) Copyright IBM Corp 2001, 2005 
+ */
+
+package javax.wadls;
+
+import java.net.URISyntaxException;
+import java.util.List;
+import java.util.Map;
+import javax.wadls.extensions.schema.Schema;
+import javax.xml.namespace.QName;
+
+import org.w3c.dom.Element;
+
+/**
+ * This interface represents the &lt;types&gt; section of a WSDL document.
+ * 
+ * @author Zixin Wu (wuzixin@uga.edu)
+ * @author Matthew J. Duftler (duftler@us.ibm.com)
+ */
+public interface Params extends java.io.Serializable,ModelReferenceExtensible
+{
+	/**
+	 * Get the XSD simpleType with the given name.
+	 * @param name The QName of the type
+	 * @return A DOM Element representing the simpleType
+	 * @throws WADLSException 
+	 */
+	
+	public Element getXSDElement(String xpath) throws WADLSException;
+	
+	/**
+	 * Return a list of XSD elements contained in the startElement, search in only 1 level depth. 
+	 * @param startXSDElement
+	 * @return A list of XSD elements contained in the startElement. If no XSD element is contained, the list has 0 element.
+	 * @throws WADLSException
+	 */
+	public List getXSDElementsInComplexType(Element startXSDElement) throws WADLSException;
+	
+	/**
+	 * Return a list of XSD elements contained in the startElement, search in only 1 level depth. 
+	 * @param startXSDComplexType
+	 * @return A list of XSD elements contained in the startElement. If no XSD element is contained, the list has 0 element.
+	 * @throws WADLSException
+	 */
+	public List getXSDElementsInElement(Element startXSDComplexType) throws WADLSException;
+	
+	/**
+	 * Get the modelReference on the element located by the given path.
+	 * @param startElement The starting element of the path
+	 * @param path
+	 * @return The modelReference
+	 */
+	public ModelReference getModelReference(Element startElement, String path, Application app) throws WADLSException, URISyntaxException;
+	
+	/**
+	 * Set the modelReference on the element located by the given path.
+	 * @param startElement The starting element of the path
+	 * @param path
+	 * @param modelReference The desired modelReference
+	 */
+	public void addModelReference(Element startElement, String path, ModelReference modelReference) throws WADLSException;
+	
+	public List<ModelReference> getModelReferences(Element startElement, String path, Application app) throws WADLSException, URISyntaxException;
+	
+	public void setModelReferences(Element startElement, String path, List<ModelReference> refs) throws WADLSException;
+	
+	/**
+	 * Get the LiftingSchemaMapping on the element located by the given path.
+	 * @param startElement The starting element of the path
+	 * @param path
+	 * @return The schemaMapping value
+	 */
+	public String getLiftingSchemaMapping(Element startElement, String path) throws WADLSException;
+	
+	/**
+	 * Set the LiftingSchemaMapping on the element located by the given path.
+	 * @param startElement The starting element of the path
+	 * @param path
+	 * @param schemaMapping The desired schemaMapping
+	 */
+	public void setLiftingSchemaMapping(Element startElement, String path, String schemaMapping) throws WADLSException;
+	
+	/**
+	 * Get the LiftingSchemaMapping on the element located by the given path.
+	 * @param startElement The starting element of the path
+	 * @param path
+	 * @return The schemaMapping value
+	 */
+	public String getLoweringSchemaMapping(Element startElement, String path) throws WADLSException;
+	
+	/**
+	 * Set the LiftingSchemaMapping on the element located by the given path.
+	 * @param startElement The starting element of the path
+	 * @param path
+	 * @param schemaMapping The desired schemaMapping
+	 */
+	public void setLoweringSchemaMapping(Element startElement, String path, String schemaMapping) throws WADLSException;
+
+	/**
+	 * Set the documentation element for this document. This dependency
+	 * on org.w3c.dom.Element should eventually be removed when a more
+	 * appropriate way of representing this information is employed.
+	 *
+	 * @param docEl the documentation element
+	 */
+	public void setDocumentationElement(Element docEl);
+	
+	/**
+	 * Get the documentation element. This dependency on org.w3c.dom.Element
+	 * should eventually be removed when a more appropriate way of
+	 * representing this information is employed.
+	 *
+	 * @return the documentation element
+	 */
+	public Element getDocumentationElement();
+}
\ No newline at end of file
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/PreCondition.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/PreCondition.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,49 @@
+
+package javax.wadls;
+
+
+
+import org.w3c.dom.Element;
+
+/**
+ * This interface represents a precondition.
+ *
+ * @author Zixin Wu
+ */
+public interface PreCondition extends java.io.Serializable,ModelReferenceExtensible
+{
+		
+	/**
+	 * Set the expression of this precondition.
+	 *
+	 * @param expression The desired expression.
+	 */
+	public void setExpression(String expression);
+	
+	/**
+	 * Get the expression of this precondition.
+	 *
+	 * @return The expression.
+	 */
+	public String getExpression();
+	
+    public void setName(String name);
+	
+	/**
+	 * Get the name of this precondition.
+	 *
+	 * @return the precondition name
+	 */
+	public String getName();
+	
+	public void setDocumentationElement(Element docEl);
+	
+	/**
+	 * Get the documentation element. This dependency on org.w3c.dom.Element
+	 * should eventually be removed when a more appropriate way of
+	 * representing this information is employed.
+	 *
+	 * @return the documentation element
+	 */
+	public Element getDocumentationElement();
+}
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/Request.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/Request.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,60 @@
+/*
+ * (c) Copyright IBM Corp 2001, 2005 
+ */
+
+package javax.wadls;
+
+import java.util.List;
+
+import org.w3c.dom.*;
+
+
+
+/**
+ * This interface represents an input message, and contains the name
+ * of the input and the message itself.
+ *
+ * @author Matthew J. Duftler
+ */
+public interface Request extends java.io.Serializable,ModelReferenceExtensible
+{
+  /**
+   * Set the name of this input message.
+   *
+   * @param name the desired name
+   */
+  public void setName(String name);
+  
+  
+  
+  /**
+   * Get the name of this input message.
+   *
+   * @return the input message name
+   */
+  public String getName();
+  public void setParamList(List paramList);
+  public List getParamList();
+
+
+  public void setInputXSDList(List inputXSDList);
+  public List getInputXSDList();
+
+  /**
+   * Set the documentation element for this document. This dependency
+   * on org.w3c.dom.Element should eventually be removed when a more
+   * appropriate way of representing this information is employed.
+   *
+   * @param docEl the documentation element
+   */
+  public void setDocumentationElement(Element docEl);
+
+  /**
+   * Get the documentation element. This dependency on org.w3c.dom.Element
+   * should eventually be removed when a more appropriate way of
+   * representing this information is employed.
+   *
+   * @return the documentation element
+   */
+  public Element getDocumentationElement();
+}
\ No newline at end of file
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/Resource.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/Resource.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,90 @@
+/*
+ * (c) Copyright IBM Corp 2001, 2005 
+ */
+
+package javax.wadls;
+
+import java.util.*;
+import org.w3c.dom.*;
+import javax.xml.namespace.*;
+
+
+/**
+ * This interface represents a port type. It contains information about
+ * operations associated with this port type.
+ *
+ * @author Paul Fremantle
+ * @author Nirmal Mukhi
+ * @author Matthew J. Duftler
+ * @author Zixin Wu
+ */
+public interface Resource extends java.io.Serializable,ModelReferenceExtensible
+{
+
+	  
+  /**
+   * Set the name of this port type.
+   *
+   * @param name the desired name
+   */
+  public void setQName(QName name);
+
+  /**
+   * Get the name of this port type.
+   *
+   * @return the port type name
+   */
+  public QName getQName();
+
+  /**
+   * Add an operation to this port type.
+   *
+   * @param operation the operation to be added
+   */
+  public void addMethod(Method method);
+
+  /**
+   * Get the specified operation. Note that operation names can
+   * be overloaded within a PortType. In case of overloading, the
+   * names of the input and output messages can be used to further
+   * refine the search.
+   *
+   * @param name the name of the desired operation.
+   * @param inputName the name of the input message; if this is null
+   * it will be ignored.
+   * @param outputName the name of the output message; if this is null
+   * it will be ignored.
+   * @return the corresponding operation, or null if there wasn't
+   * any matching operation
+   */
+  public Method getMethod(String name,
+                                String inputName,
+                                String outputName);
+
+  /**
+   * Get all the operations defined here.
+   */
+  public List getMethods();
+
+  /**
+   * Set the documentation element for this document. This dependency
+   * on org.w3c.dom.Element should eventually be removed when a more
+   * appropriate way of representing this information is employed.
+   *
+   * @param docEl the documentation element
+   */
+  public void setDocumentationElement(Element docEl);
+
+  /**
+   * Get the documentation element. This dependency on org.w3c.dom.Element
+   * should eventually be removed when a more appropriate way of
+   * representing this information is employed.
+   *
+   * @return the documentation element
+   */
+  public Element getDocumentationElement();
+
+  public void setUndefined(boolean isUndefined);
+
+  public boolean isUndefined();
+}
\ No newline at end of file
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/Response.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/Response.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,56 @@
+/*
+ * (c) Copyright IBM Corp 2001, 2005 
+ */
+
+package javax.wadls;
+
+import java.util.List;
+
+import org.w3c.dom.*;
+
+/**
+ * This interface represents an output message, and contains the name
+ * of the output and the message itself.
+ *
+ * @author Matthew J. Duftler
+ */
+public interface Response extends java.io.Serializable,ModelReferenceExtensible
+{
+  /**
+   * Set the name of this output message.
+   *
+   * @param name the desired name
+   */
+  public void setName(String name);
+
+  /**
+   * Get the name of this output message.
+   *
+   * @return the output message name
+   */
+  public String getName();
+
+  public void setParamList(List paramList);
+  public List getParamList();
+
+
+  public void setInputXSDList(List inputXSDList);
+  public List getInputXSDList();
+  /**
+   * Set the documentation element for this document. This dependency
+   * on org.w3c.dom.Element should eventually be removed when a more
+   * appropriate way of representing this information is employed.
+   *
+   * @param docEl the documentation element
+   */
+  public void setDocumentationElement(Element docEl);
+
+  /**
+   * Get the documentation element. This dependency on org.w3c.dom.Element
+   * should eventually be removed when a more appropriate way of
+   * representing this information is employed.
+   *
+   * @return the documentation element
+   */
+  public Element getDocumentationElement();
+}
\ No newline at end of file
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/WADLSException.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/WADLSException.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,140 @@
+/*
+ * (c) Copyright IBM Corp 2001, 2005 
+ */
+
+package javax.wadls;
+
+import java.io.*;
+
+/**
+ * This class represents a WADLS Exception
+ * @author Zixin Wu
+ *
+ */
+public class WADLSException extends Exception
+{
+  public static final long serialVersionUID = 1;
+
+  public static final String INVALID_WADL = "INVALID_WADL";
+  public static final String XSDPARSER_ERROR = "XSDPARSER_ERROR";
+  public static final String OTHER_ERROR = "OTHER_ERROR";
+  public static final String CONFIGURATION_ERROR = "CONFIGURATION_ERROR";
+  public static final String UNBOUND_PREFIX = "UNBOUND_PREFIX";
+  public static final String NO_PREFIX_SPECIFIED = "NO_PREFIX_SPECIFIED";
+  public static final String PATH_ERROR = "PATH_ERROR";
+  public static final String NOT_FOUND_ELE_BY_PATH = "NOT_FOUND_ELE_BY_PATH";
+  public static final String NOT_FOUND_SCHEMA = "NOT_FOUND_SCHEMA";
+  public static final String NOT_FOUND_ELE_IN_PART = "NOT_FOUND_ELE_IN_PART";
+
+  private String faultCode = null;
+  private Throwable targetThrowable = null;
+  private String location = null;
+
+  public WADLSException(String faultCode, String msg, Throwable t)
+  {
+    super(msg);
+    setFaultCode(faultCode);
+    setTargetException(t);
+  }
+
+  public WADLSException(String faultCode, String msg)
+  {
+    this(faultCode, msg, null);
+  }
+
+  public void setFaultCode(String faultCode)
+  {
+    this.faultCode = faultCode;
+  }
+
+  public String getFaultCode()
+  {
+    return faultCode;
+  }
+
+  public void setTargetException(Throwable targetThrowable)
+  {
+    this.targetThrowable = targetThrowable;
+  }
+
+  public Throwable getTargetException()
+  {
+    return targetThrowable;
+  }
+
+  /**
+   * Set the location using an XPath expression. Used for error messages.
+   *
+   * @param location an XPath expression describing the location where
+   * the exception occurred.
+   */
+  public void setLocation(String location)
+  {
+    this.location = location;
+  }
+
+  /**
+   * Get the location, if one was set. Should be an XPath expression which
+   * is used for error messages.
+   */
+  public String getLocation()
+  {
+    return location;
+  }
+
+  public String getMessage()
+  {
+    StringBuffer strBuf = new StringBuffer();
+
+    strBuf.append("WADLSException");
+
+    if (location != null)
+    {
+      try
+      {
+        strBuf.append(" (at " + location + ")");
+      }
+      catch (IllegalArgumentException e)
+      {
+      }
+    }
+
+    if (faultCode != null)
+    {
+      strBuf.append(": faultCode=" + faultCode);
+    }
+
+    String thisMsg = super.getMessage();
+    String targetMsg = (targetThrowable != null)
+                       ? targetThrowable.getMessage()
+                       : null;
+
+    if (thisMsg != null
+        && (targetMsg == null || !thisMsg.equals(targetMsg)))
+    {
+      strBuf.append(": " + thisMsg);
+    }
+
+    if (targetMsg != null)
+    {
+      strBuf.append(": " + targetMsg);
+    }
+
+    return strBuf.toString();
+  }
+
+  public String toString()
+  {
+    StringWriter sw = new StringWriter();
+    PrintWriter pw = new PrintWriter(sw);
+
+    pw.print(getMessage() + ": ");
+
+    if (targetThrowable != null)
+    {
+      targetThrowable.printStackTrace(pw);
+    }
+
+    return sw.toString();
+  }
+}
\ No newline at end of file
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/extensions/AttributeExtensible.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/extensions/AttributeExtensible.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,76 @@
+
+
+package javax.wadls.extensions;
+
+import java.util.*;
+import javax.xml.namespace.*;
+
+/**
+ * Classes that implement this interface can contain extensibility
+ * attributes.
+ *
+ * @author Matthew J. Duftler
+ * @author Paul Fremantle
+ */
+public interface AttributeExtensible
+{
+  public static final int NO_DECLARED_TYPE = -1;
+  public static final int STRING_TYPE = 0;
+  public static final int QNAME_TYPE = 1;
+  public static final int LIST_OF_STRINGS_TYPE = 2;
+  public static final int LIST_OF_QNAMES_TYPE = 3;
+
+  /**
+   * Set an extension attribute on this element. Pass in a null value to remove
+   * an extension attribute.
+   *
+   * @param name the extension attribute name
+   * @param value the extension attribute value. Can be a String, a QName, a
+   * List of Strings, or a List of QNames.
+   *
+   * @see #getExtensionAttribute
+   * @see #getExtensionAttributes
+   * @see ExtensionRegistry#registerExtensionAttributeType
+   * @see ExtensionRegistry#queryExtensionAttributeType
+   */
+  public void setExtensionAttribute(QName name, Object value);
+
+  /**
+   * Retrieve an extension attribute from this element. If the extension
+   * attribute is not defined, null is returned.
+   *
+   * @param name the extension attribute name
+   *
+   * @return the value of the extension attribute, or null if
+   * it is not defined. Can be a String, a QName, a List of Strings, or a List
+   * of QNames.
+   *
+   * @see #setExtensionAttribute
+   * @see #getExtensionAttributes
+   * @see ExtensionRegistry#registerExtensionAttributeType
+   * @see ExtensionRegistry#queryExtensionAttributeType
+   */
+  public Object getExtensionAttribute(QName name);
+
+  /**
+   * Get the map containing all the extension attributes defined
+   * on this element. The keys are the qnames of the attributes.
+   *
+   * @return a map containing all the extension attributes defined
+   * on this element
+   *
+   * @see #setExtensionAttribute
+   * @see #getExtensionAttribute
+   * @see ExtensionRegistry#registerExtensionAttributeType
+   * @see ExtensionRegistry#queryExtensionAttributeType
+   */
+  public Map getExtensionAttributes();
+
+  /**
+   * Get the list of local attribute names defined for this element in
+   * the WSDL specification.
+   *
+   * @return a List of Strings, one for each local attribute name
+   */
+  public List getNativeAttributeNames();
+}
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/extensions/ElementExtensible.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/extensions/ElementExtensible.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,32 @@
+/*
+ * (c) Copyright IBM Corp 2004, 2005 
+ */
+
+package javax.wadls.extensions;
+
+import java.util.*;
+
+import javax.wadls.extensions.ExtensibilityElement;
+
+/**
+ * Classes that implement this interface can contain extensibility
+ * elements.
+ * 
+ * @author John Kaputin
+ */
+public interface ElementExtensible {
+    
+    /**
+     * Add an extensibility element.
+     *
+     * @param extElement the extensibility element to be added
+     */
+    public void addExtensibilityElement(ExtensibilityElement extElement);
+
+    /**
+     * Get all the extensibility elements defined here.
+     */
+    public List getExtensibilityElements();
+
+
+}
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/extensions/ExtensibilityElement.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/extensions/ExtensibilityElement.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,42 @@
+/*
+ * (c) Copyright IBM Corp 2001, 2005 
+ */
+
+package javax.wadls.extensions;
+
+import javax.xml.namespace.*;
+
+/**
+ * This interface should be implemented by classes intending to represent
+ * extensions.
+ *
+ * @author Matthew J. Duftler (duftler@us.ibm.com)
+ */
+public interface ExtensibilityElement
+{
+  /**
+   * Set the type of this extensibility element.
+   *
+   * @param elementType the type
+   */
+  public void setElementType(QName elementType);
+
+  /**
+   * Get the type of this extensibility element.
+   *
+   * @return the extensibility element's type
+   */
+  public QName getElementType();
+
+  /**
+   * Set whether or not the semantics of this extension
+   * are required. Relates to the wsdl:required attribute.
+   */
+  public void setRequired(Boolean required);
+
+  /**
+   * Get whether or not the semantics of this extension
+   * are required. Relates to the wsdl:required attribute.
+   */
+  public Boolean getRequired();
+}
\ No newline at end of file
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/extensions/ExtensionDeserializer.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/extensions/ExtensionDeserializer.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,44 @@
+/*
+ * (c) Copyright IBM Corp 2001, 2005 
+ */
+
+package javax.wadls.extensions;
+
+import org.w3c.dom.*;
+
+import javax.wadls.*;
+import javax.xml.namespace.*;
+
+/**
+ * This interface should be implemented by classes which deserialize
+ * org.w3c.dom.Elements into extension-specific instances of
+ * ExtensibilityElement.
+ *
+ * @author Matthew J. Duftler (duftler@us.ibm.com)
+ */
+public interface ExtensionDeserializer
+{
+  /**
+   * This method deserializes elements into instances of classes
+   * which implement the ExtensibilityElement interface. The
+   * return value should be explicitly cast to the more-specific
+   * implementing type.
+   *
+   * @param parentType a class object indicating where in the WSDL
+   * document this extensibility element was encountered. For
+   * example, javax.wsdls.Binding.class would be used to indicate
+   * this element was encountered as an immediate child of
+   * a <wsdl:binding> element.
+   * @param elementType the qname of the extensibility element
+   * @param el the extensibility element to deserialize
+   * @param def the definition this extensibility element was
+   * encountered in
+   * @param extReg the ExtensionRegistry to use (if needed again)
+   */
+  public ExtensibilityElement unmarshall(Class parentType,
+                                         QName elementType,
+                                         Element el,
+                                         Application app,
+                                         ExtensionRegistry extReg)
+                                           throws WADLSException;
+}
\ No newline at end of file
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/extensions/ExtensionRegistry.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/extensions/ExtensionRegistry.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,466 @@
+/*
+ * (c) Copyright IBM Corp 2001, 2005 
+ */
+
+package javax.wadls.extensions;
+
+import java.util.*;
+
+import javax.wadls.*;
+import javax.xml.namespace.*;
+
+/**
+ * This class is used to associate serializers, deserializers, and
+ * Java implementation types with extensibility elements.
+ *
+ * @author Matthew J. Duftler (duftler@us.ibm.com)
+ */
+public class ExtensionRegistry implements java.io.Serializable
+{
+  public static final long serialVersionUID = 1;
+
+  /**
+   * Creates the extension registry, and sets the defaultSerializer
+   * and defaultDeserializer properties to instances of an
+   * UnknownExtensionSerializer, and an UnknownExtensionDeserializer,
+   * respectively.
+   */
+  public ExtensionRegistry()
+  {
+    setDefaultSerializer(new UnknownExtensionSerializer());
+    setDefaultDeserializer(new UnknownExtensionDeserializer());
+  }
+
+  /*
+    This is a Map of Maps. The top-level Map is keyed by (Class)parentType,
+    and the inner Maps are keyed by (QName)elementType.
+  */
+  protected Map serializerReg = new Hashtable();
+  /*
+    This is a Map of Maps. The top-level Map is keyed by (Class)parentType,
+    and the inner Maps are keyed by (QName)elementType.
+  */
+  protected Map deserializerReg = new Hashtable();
+  /*
+    This is a Map of Maps. The top-level Map is keyed by (Class)parentType,
+    and the inner Maps are keyed by (QName)elementType.
+  */
+  protected Map extensionTypeReg = new Hashtable();
+  protected ExtensionSerializer defaultSer = null;
+  protected ExtensionDeserializer defaultDeser = null;
+  /*
+    This is a Map of Maps. The top-level Map is keyed by (Class)parentType,
+    and the inner Maps are keyed by (QName)attrName.
+  */
+  protected Map extensionAttributeTypeReg = new Hashtable();
+
+  /**
+   * Set the serializer to be used when none is found for an extensibility
+   * element. Set this to null to have an exception thrown when
+   * unexpected extensibility elements are encountered. Default value is
+   * an instance of UnknownExtensionSerializer.
+   *
+   * @see UnknownExtensionSerializer
+   */
+  public void setDefaultSerializer(ExtensionSerializer defaultSer)
+  {
+    this.defaultSer = defaultSer;
+  }
+
+  /**
+   * Get the serializer to be used when none is found for an extensibility
+   * element. Default value is an instance of UnknownExtensionSerializer.
+   *
+   * @see UnknownExtensionSerializer
+   */
+  public ExtensionSerializer getDefaultSerializer()
+  {
+    return defaultSer;
+  }
+
+  /**
+   * Set the deserializer to be used when none is found for an encountered
+   * element. Set this to null to have an exception thrown when
+   * unexpected extensibility elements are encountered. Default value is
+   * an instance of UnknownExtensionDeserializer.
+   *
+   * @see UnknownExtensionDeserializer
+   */
+  public void setDefaultDeserializer(ExtensionDeserializer defaultDeser)
+  {
+    this.defaultDeser = defaultDeser;
+  }
+
+  /**
+   * Get the deserializer to be used when none is found for an encountered
+   * element. Default value is an instance of UnknownExtensionDeserializer.
+   *
+   * @see UnknownExtensionDeserializer
+   */
+  public ExtensionDeserializer getDefaultDeserializer()
+  {
+    return defaultDeser;
+  }
+
+  /**
+   * Declare that the specified serializer should be used to serialize
+   * all extensibility elements with a qname matching elementType, when
+   * encountered as children of the specified parentType.
+   *
+   * @param parentType a class object indicating where in the WSDL
+   * definition this extension was encountered. For
+   * example, javax.wsdls.Binding.class would be used to indicate
+   * this extensibility element was found in the list of
+   * extensibility elements belonging to a javax.wsdls.Binding.
+   * @param elementType the qname of the extensibility element
+   * @param es the extension serializer to use
+   *
+   * @see #querySerializer(Class, QName)
+   */
+  public void registerSerializer(Class parentType,
+                                 QName elementType,
+                                 ExtensionSerializer es)
+  {
+    Map innerSerializerReg = (Map)serializerReg.get(parentType);
+
+    if (innerSerializerReg == null)
+    {
+      innerSerializerReg = new Hashtable();
+
+      serializerReg.put(parentType, innerSerializerReg);
+    }
+
+    innerSerializerReg.put(elementType, es);
+  }
+
+  /**
+   * Declare that the specified deserializer should be used to deserialize
+   * all extensibility elements with a qname matching elementType, when
+   * encountered as immediate children of the element represented by the
+   * specified parentType.
+   *
+   * @param parentType a class object indicating where in the WSDL
+   * document this extensibility element was encountered. For
+   * example, javax.wsdls.Binding.class would be used to indicate
+   * this element was encountered as an immediate child of
+   * a &lt;wsdl:binding&gt; element.
+   * @param elementType the qname of the extensibility element
+   * @param ed the extension deserializer to use
+   *
+   * @see #queryDeserializer(Class, QName)
+   */
+  public void registerDeserializer(Class parentType,
+                                   QName elementType,
+                                   ExtensionDeserializer ed)
+  {
+    Map innerDeserializerReg = (Map)deserializerReg.get(parentType);
+
+    if (innerDeserializerReg == null)
+    {
+      innerDeserializerReg = new Hashtable();
+
+      deserializerReg.put(parentType, innerDeserializerReg);
+    }
+
+    innerDeserializerReg.put(elementType, ed);
+  }
+
+  /**
+   * Look up the serializer to use for the extensibility element with
+   * the qname elementType, which was encountered as a child of the
+   * specified parentType.
+   *
+   * @param parentType a class object indicating where in the WSDL
+   * definition this extension was encountered. For
+   * example, javax.wsdls.Binding.class would be used to indicate
+   * this extensibility element was found in the list of
+   * extensibility elements belonging to a javax.wsdls.Binding.
+   * @param elementType the qname of the extensibility element
+   *
+   * @return the extension serializer, if one was found. If none was
+   * found, the behavior depends on the value of the defaultSerializer
+   * property. If the defaultSerializer property is set to a non-null
+   * value, that value is returned; otherwise, a WSDLSException is
+   * thrown.
+   *
+   * @see #registerSerializer(Class, QName, ExtensionSerializer)
+   * @see #setDefaultSerializer(ExtensionSerializer)
+   */
+  public ExtensionSerializer querySerializer(Class parentType,
+                                             QName elementType)
+                                               throws WADLSException
+  {
+    Map innerSerializerReg = (Map)serializerReg.get(parentType);
+    ExtensionSerializer es = null;
+
+    if (innerSerializerReg != null)
+    {
+      es = (ExtensionSerializer)innerSerializerReg.get(elementType);
+    }
+
+    if (es == null)
+    {
+      es = defaultSer;
+    }
+
+    if (es == null)
+    {
+      throw new WADLSException(WADLSException.CONFIGURATION_ERROR,
+                              "No ExtensionSerializer found " +
+                              "to serialize a '" + elementType +
+                              "' element in the context of a '" +
+                              parentType.getName() + "'.");
+    }
+
+    return es;
+  }
+
+  /**
+   * Look up the deserializer for the extensibility element with the
+   * qname elementType, which was encountered as an immediate child
+   * of the element represented by the specified parentType.
+   *
+   * @param parentType a class object indicating where in the WSDL
+   * document this extensibility element was encountered. For
+   * example, javax.wsdls.Binding.class would be used to indicate
+   * this element was encountered as an immediate child of
+   * a &lt;wsdl:binding&gt; element.
+   * @param elementType the qname of the extensibility element
+   *
+   * @return the extension deserializer, if one was found. If none was
+   * found, the behavior depends on the value of the defaultDeserializer
+   * property. If the defaultDeserializer property is set to a non-null
+   * value, that value is returned; otherwise, a WSDLSException is thrown.
+   *
+   * @see #registerDeserializer(Class, QName, ExtensionDeserializer)
+   * @see #setDefaultDeserializer(ExtensionDeserializer)
+   */
+  public ExtensionDeserializer queryDeserializer(Class parentType,
+                                                 QName elementType)
+                                                   throws WADLSException
+  {
+	  
+	  System.out.println("%%%% Inside Query Deserializer");
+    Map innerDeserializerReg = (Map)deserializerReg.get(parentType);
+    System.out.println("%%%% inner DeserializerReg Size:"+innerDeserializerReg.size());
+    ExtensionDeserializer ed = null;
+
+    if (innerDeserializerReg != null)
+    {
+    	System.out.println("%%%% Inner Deserializer not null");
+      ed = (ExtensionDeserializer)innerDeserializerReg.get(elementType);
+      System.out.println("%%%% Ed string "+ed.toString());
+    }
+
+    if (ed == null)
+    {
+      ed = defaultDeser;
+      System.out.println("%%%% Default Deser String:"+defaultDeser.toString());
+    }
+
+    if (ed == null)
+    {
+      throw new WADLSException(WADLSException.CONFIGURATION_ERROR,
+                              "No ExtensionDeserializer found " +
+                              "to deserialize a '" + elementType +
+                              "' element in the context of a '" +
+                              parentType.getName() + "'.");
+    }
+
+    return ed;
+  }
+
+  /**
+   * Returns a set of QNames representing the extensibility elements
+   * that are allowed as children of the specified parent type.
+   * Basically, this method returns the keys associated with the set
+   * of extension deserializers registered for this parent type.
+   * Returns null if no extension deserializers are registered for
+   * this parent type.
+   */
+  public Set getAllowableExtensions(Class parentType)
+  {
+    Map innerDeserializerReg = (Map)deserializerReg.get(parentType);
+
+    return (innerDeserializerReg != null)
+           ? innerDeserializerReg.keySet()
+           : null;
+  }
+
+  /**
+   * Declare that the specified extensionType is the concrete
+   * class which should be used to represent extensibility elements
+   * with qnames matching elementType, that are intended to exist as
+   * children of the specified parentType.
+   *
+   * @param parentType a class object indicating where in the WSDL
+   * definition this extension would exist. For example,
+   * javax.wsdls.Binding.class would be used to indicate
+   * this extensibility element would be added to the list of
+   * extensibility elements belonging to a javax.wsdls.Binding,
+   * after being instantiated.
+   * @param elementType the qname of the extensibility element
+   * @param extensionType the concrete class which should be instantiated
+   *
+   * @see #createExtension(Class, QName)
+   */
+  public void mapExtensionTypes(Class parentType,
+                                QName elementType,
+                                Class extensionType)
+  {
+    Map innerExtensionTypeReg = (Map)extensionTypeReg.get(parentType);
+
+    if (innerExtensionTypeReg == null)
+    {
+      innerExtensionTypeReg = new Hashtable();
+
+      extensionTypeReg.put(parentType, innerExtensionTypeReg);
+    }
+
+    innerExtensionTypeReg.put(elementType, extensionType);
+  }
+
+  /**
+   * Create an instance of the type which was declared to be used to
+   * represent extensibility elements with qnames matching elementType,
+   * when intended to exist as children of the specified parentType.
+   * This method allows a user to instantiate an extensibility element
+   * without having to know the implementing type.
+   *
+   * @param parentType a class object indicating where in the WSDL
+   * definition this extension will exist. For example,
+   * javax.wsdls.Binding.class would be used to indicate
+   * this extensibility element is going to be added to the list of
+   * extensibility elements belonging to a javax.wsdls.Binding,
+   * after being instantiated.
+   * @param elementType the qname of the extensibility element
+   *
+   * @return a new instance of the type used to represent the
+   * specified extension
+   *
+   * @see #mapExtensionTypes(Class, QName, Class)
+   */
+  public ExtensibilityElement createExtension(Class parentType,
+                                              QName elementType)
+                                                throws WADLSException
+  {
+    Map innerExtensionTypeReg = (Map)extensionTypeReg.get(parentType);
+    Class extensionType = null;
+
+    if (innerExtensionTypeReg != null)
+    {
+      extensionType = (Class)innerExtensionTypeReg.get(elementType);
+    }
+
+    if (extensionType == null)
+    {
+      throw new WADLSException(WADLSException.CONFIGURATION_ERROR,
+                              "No Java extensionType found " +
+                              "to represent a '" + elementType +
+                              "' element in the context of a '" +
+                              parentType.getName() + "'.");
+    }
+    else if (!(ExtensibilityElement.class.isAssignableFrom(extensionType)))
+    {
+      throw new WADLSException(WADLSException.CONFIGURATION_ERROR,
+                              "The Java extensionType '" +
+                              extensionType.getName() + "' does " +
+                              "not implement the ExtensibilityElement " +
+                              "interface.");
+    }
+
+    try
+    {
+      ExtensibilityElement ee = (ExtensibilityElement)extensionType.newInstance();
+      
+      if (ee.getElementType() == null)
+      {
+        ee.setElementType(elementType);
+      }
+      
+      return ee;
+    }
+    catch (Exception e)
+    {
+      /*
+        Catches:
+                 InstantiationException
+                 IllegalAccessException
+      */
+      throw new WADLSException(WADLSException.CONFIGURATION_ERROR,
+                              "Problem instantiating Java " +
+                              "extensionType '" + extensionType.getName() +
+                              "'.",
+                              e);
+    }
+  }
+
+  /**
+   * Declare that the type of the specified extension attribute, when it occurs
+   * as an attribute of the specified parent type, should be assumed to be
+   * attrType.
+   *
+   * @param parentType a class object indicating where in the WSDL
+   * document this extensibility attribute was encountered. For
+   * example, javax.wsdls.Binding.class would be used to indicate
+   * this attribute was defined on a &lt;wsdl:binding> element.
+   * @param attrName the qname of the extensibility attribute
+   * @param attrType one of the constants defined on the AttributeExtensible
+   * class
+   *
+   * @see #queryExtensionAttributeType(Class, QName)
+   * @see AttributeExtensible
+   */
+  public void registerExtensionAttributeType(Class parentType,
+                                             QName attrName,
+                                             int attrType)
+  {
+    Map innerExtensionAttributeTypeReg =
+      (Map)extensionAttributeTypeReg.get(parentType);
+
+    if (innerExtensionAttributeTypeReg == null)
+    {
+      innerExtensionAttributeTypeReg = new Hashtable();
+
+      extensionAttributeTypeReg.put(parentType, innerExtensionAttributeTypeReg);
+    }
+
+    innerExtensionAttributeTypeReg.put(attrName, new Integer(attrType));
+  }
+
+  /**
+   * Look up the type of the extensibility attribute with the qname attrName,
+   * which was defined on an element represented by the specified parentType.
+   *
+   * @param parentType a class object indicating where in the WSDL
+   * document this extensibility attribute was encountered. For
+   * example, javax.wsdls.Binding.class would be used to indicate
+   * this attribute was defined on a &lt;wsdl:binding> element.
+   * @param attrName the qname of the extensibility attribute
+   *
+   * @return one of the constants defined on the AttributeExtensible class
+   *
+   * @see #registerExtensionAttributeType(Class, QName, int)
+   * @see AttributeExtensible
+   */
+  public int queryExtensionAttributeType(Class parentType, QName attrName)
+  {
+    Map innerExtensionAttributeTypeReg =
+      (Map)extensionAttributeTypeReg.get(parentType);
+    Integer attrType = null;
+
+    if (innerExtensionAttributeTypeReg != null)
+    {
+      attrType = (Integer)innerExtensionAttributeTypeReg.get(attrName);
+    }
+
+    if (attrType != null)
+    {
+      return attrType.intValue();
+    }
+    else
+    {
+      return AttributeExtensible.NO_DECLARED_TYPE;
+    }
+  }
+}
\ No newline at end of file
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/extensions/ExtensionSerializer.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/extensions/ExtensionSerializer.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,43 @@
+/*
+ * (c) Copyright IBM Corp 2001, 2005 
+ */
+
+package javax.wadls.extensions;
+
+import java.io.*;
+
+import javax.wadls.*;
+import javax.xml.namespace.*;
+
+/**
+ * This interface should be implemented by classes which serialize
+ * extension-specific instances of ExtensibilityElement into the
+ * PrintWriter.
+ *
+ * @author Matthew J. Duftler (duftler@us.ibm.com)
+ */
+public interface ExtensionSerializer
+{
+  /**
+   * This method serializes extension-specific instances of
+   * ExtensibilityElement into the PrintWriter.
+   *
+   * @param parentType a class object indicating where in the WSDL
+   * definition this extension was encountered. For
+   * example, javax.wsdls.Binding.class would be used to indicate
+   * this extensibility element was found in the list of
+   * extensibility elements belonging to a javax.wsdls.Binding.
+   * @param elementType the qname of the extensibility element
+   * @param extension the extensibility element to serialize
+   * @param def the definition this extensibility element was
+   * encountered in
+   * @param extReg the ExtensionRegistry to use (if needed again)
+   */
+  public void marshall(Class parentType,
+                       QName elementType,
+                       ExtensibilityElement extension,
+                       PrintWriter pw,
+                       Application app,
+                       ExtensionRegistry extReg)
+                         throws WADLSException;
+}
\ No newline at end of file
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/extensions/UnknownExtensibilityElement.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/extensions/UnknownExtensibilityElement.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,100 @@
+/*
+ * (c) Copyright IBM Corp 2001, 2005 
+ */
+
+package javax.wadls.extensions;
+
+import org.w3c.dom.*;
+import javax.xml.namespace.*;
+
+/**
+ * This class is used to wrap arbitrary elements.
+ *
+ * @see UnknownExtensionSerializer
+ * @see UnknownExtensionDeserializer
+ *
+ * @author Matthew J. Duftler (duftler@us.ibm.com)
+ */
+public class UnknownExtensibilityElement implements ExtensibilityElement,
+                                                    java.io.Serializable
+{
+  protected QName elementType = null;
+  // Uses the wrapper type so we can tell if it was set or not.
+  protected Boolean required = null;
+  protected Element element = null;
+
+  public static final long serialVersionUID = 1;
+
+  /**
+   * Set the type of this extensibility element.
+   *
+   * @param elementType the type
+   */
+  public void setElementType(QName elementType)
+  {
+    this.elementType = elementType;
+  }
+
+  /**
+   * Get the type of this extensibility element.
+   *
+   * @return the extensibility element's type
+   */
+  public QName getElementType()
+  {
+    return elementType;
+  }
+
+  /**
+   * Set whether or not the semantics of this extension
+   * are required. Relates to the wsdl:required attribute.
+   */
+  public void setRequired(Boolean required)
+  {
+    this.required = required;
+  }
+
+  /**
+   * Get whether or not the semantics of this extension
+   * are required. Relates to the wsdl:required attribute.
+   */
+  public Boolean getRequired()
+  {
+    return required;
+  }
+
+  /**
+   * Set the Element for this extensibility element.
+   *
+   * @param element the unknown element that was encountered
+   */
+  public void setElement(Element element)
+  {
+    this.element = element;
+  }
+
+  /**
+   * Get the Element for this extensibility element.
+   *
+   * @return the unknown element that was encountered
+   */
+  public Element getElement()
+  {
+    return element;
+  }
+
+  public String toString()
+  {
+    StringBuffer strBuf = new StringBuffer();
+
+    strBuf.append("UnknownExtensibilityElement (" + elementType + "):");
+    strBuf.append("\nrequired=" + required);
+
+    if (element != null)
+    {
+      strBuf.append("\nelement=" + element);
+    }
+
+    return strBuf.toString();
+  }
+}
\ No newline at end of file
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/extensions/UnknownExtensionDeserializer.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/extensions/UnknownExtensionDeserializer.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,55 @@
+/*
+ * (c) Copyright IBM Corp 2001, 2005 
+ */
+
+package javax.wadls.extensions;
+
+import org.w3c.dom.*;
+
+import javax.wadls.*;
+import javax.xml.namespace.*;
+
+import edu.uga.cs.lsdis.meteors.wadls.*;
+import edu.uga.cs.lsdis.meteors.wadls.util.xml.*;
+
+/**
+ * This class is used to deserialize arbitrary elements into
+ * UnknownExtensibilityElement instances.
+ *
+ * @see UnknownExtensibilityElement
+ * @see UnknownExtensionSerializer
+ *
+ * @author Matthew J. Duftler (duftler@us.ibm.com)
+ */
+public class UnknownExtensionDeserializer implements ExtensionDeserializer,
+                                                     java.io.Serializable
+{
+  public static final long serialVersionUID = 1;
+
+  public ExtensibilityElement unmarshall(Class parentType,
+                                         QName elementType,
+                                         Element el,
+                                         Application app,
+                                         ExtensionRegistry extReg)
+                                           throws WADLSException
+  {
+	  System.out.println("%%%% Inside UnMarshall for Element:"+el.getNodeName());
+    UnknownExtensibilityElement unknownExt = new UnknownExtensibilityElement();
+    String requiredStr = DOMUtils.getAttributeNS(el,
+                                                 Constants.NS_URI_WADL,
+                                                 Constants.ATTR_REQUIRED);
+
+    System.out.println("%%%% Required Str:"+requiredStr);
+    System.out.println("%%%% Element Type To String:"+elementType.toString());
+    unknownExt.setElementType(elementType);
+
+    if (requiredStr != null)
+    {
+      unknownExt.setRequired(new Boolean(requiredStr));
+    }
+
+    unknownExt.setElement(el);
+
+    return unknownExt;
+  }
+}
\ No newline at end of file
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/extensions/UnknownExtensionSerializer.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/extensions/UnknownExtensionSerializer.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,45 @@
+/*
+ * (c) Copyright IBM Corp 2001, 2005 
+ */
+
+package javax.wadls.extensions;
+
+import java.io.*;
+
+import javax.wadls.*;
+import javax.xml.namespace.*;
+
+import edu.uga.cs.lsdis.meteors.wadls.util.xml.*;
+
+/**
+ * This class is used to serialize UnknownExtensibilityElement instances
+ * into the PrintWriter.
+ *
+ * @see UnknownExtensibilityElement
+ * @see UnknownExtensionDeserializer
+ *
+ * @author Matthew J. Duftler (duftler@us.ibm.com)
+ */
+public class UnknownExtensionSerializer implements ExtensionSerializer,
+                                                   Serializable
+{
+  public static final long serialVersionUID = 1;
+
+  public void marshall(Class parentType,
+                       QName elementType,
+                       ExtensibilityElement extension,
+                       PrintWriter pw,
+                       Application app,
+                       ExtensionRegistry extReg)
+                         throws WADLSException
+  {
+    UnknownExtensibilityElement unknownExt =
+      (UnknownExtensibilityElement)extension;
+
+    pw.print("    ");
+
+    DOM2Writer.serializeAsXML(unknownExt.getElement(), pw);
+
+    pw.println();
+  }
+}
\ No newline at end of file
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/extensions/schema/Schema.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/extensions/schema/Schema.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,146 @@
+/*
+ * (c) Copyright IBM Corp 2004, 2005 
+ */
+
+package javax.wadls.extensions.schema;
+
+import java.io.Serializable;
+import java.util.List;
+import java.util.Map;
+
+import javax.wadls.extensions.ExtensibilityElement;
+import javax.xml.namespace.QName;
+
+import org.w3c.dom.Element;
+
+/**
+ * Represents a schema element.
+ * This is a lightweight schema wrapper that provides access to 
+ * the schema DOM element, but does not parse the schema details. 
+ * The implementor may provide alternative schema parsing if required.
+ * 
+ * @author Jeremy Hughes
+ *
+ */
+public interface Schema extends Serializable 
+{
+    /**
+     * Get a map of lists containing all the imports defined here.
+     * The map's keys are the namespaceURIs, and the map's values
+     * are lists. There is one list for each namespaceURI for which
+     * imports have been defined.
+     *
+     * @return a map of lists of schema imports
+     */
+	
+	public void setElementType(QName elementType);
+
+	  /**
+	   * Get the type of this extensibility element.
+	   *
+	   * @return the extensibility element's type
+	   */
+	  public QName getElementType();
+
+	  /**
+	   * Set whether or not the semantics of this extension
+	   * are required. Relates to the wsdl:required attribute.
+	   */
+	  public void setRequired(Boolean required);
+
+	  /**
+	   * Get whether or not the semantics of this extension
+	   * are required. Relates to the wsdl:required attribute.
+	   */
+	  public Boolean getRequired();
+    public Map getImports();
+    
+    /**
+     * Create a new schema import
+     *
+     * @return the newly created schema import
+     */
+    public SchemaImport createImport();
+    
+    /**
+     * Add an import to this LightWeightSchema
+     *
+     * @param importSchema the import to be added
+     */
+    public void addImport(SchemaImport importSchema);
+    
+    /**
+     * Get a list containing all of the includes defined here.
+     * The list elements are schema references.
+     * 
+     * @return a list of schema references.
+     */
+    public List getIncludes();
+    
+    /**
+     * Create a new schema reference to represent an include.
+     *
+     * @return the newly created SchemaReference
+     */
+    public SchemaReference createInclude();
+    
+    /**
+     * Add an include to this LightWeightSchema
+     *
+     * @param includeSchema The include to be added, represented as a SchemaReference
+     */
+    public void addInclude(SchemaReference includeSchema);
+    
+    /**
+     * Get a list containing all of the redefines defined here.
+     * The list elements are schema references.
+     * 
+     * @return a list of schema references.
+     */
+    public List getRedefines();
+    
+    /**
+     * Create a new schema reference to represent a redefine.
+     *
+     * @return the newly created SchemaReference
+     */
+    public SchemaReference createRedefine();
+    
+    /**
+     * Add a redefine to this LightWeightSchema
+     *
+     * @param redefineSchema The redefine to be added, represented as a SchemaReference
+     */
+    public void addRedefine(SchemaReference redefineSchema);
+    
+    /**
+     * Set the DOM Element that represents this schema element.
+     *
+     * @param element the DOM element representing this schema
+     */
+    public void setElement(Element element);
+
+    /**
+     * Get the DOM Element that represents this schema element.
+     *
+     * @return the DOM element representing this schema
+     */
+    public Element getElement();
+    
+    /**
+     * Set the document base URI of this schema definition. Can be used to
+     * represent the origin of the schema, and can be exploited
+     * when resolving relative URIs (e.g. in &lt;import&gt;s).
+     *
+     * @param documentBaseURI the document base URI of this schema
+     */
+    public void setDocumentBaseURI(String documentBaseURI);
+
+    /**
+     * Get the document base URI of this schema
+     *
+     * @return the document base URI
+     */
+    public String getDocumentBaseURI();
+
+}
\ No newline at end of file
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/extensions/schema/SchemaImport.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/extensions/schema/SchemaImport.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,25 @@
+/*
+ * (c) Copyright IBM Corp 2004, 2005 
+ */
+
+package javax.wadls.extensions.schema;
+
+
+/**
+ * Represents an import element within a schema element.
+ * Similar to an include or redefine, but includes a namespace.
+ * 
+ * @author Jeremy Hughes <hughesj@uk.ibm.com>
+ */
+public interface SchemaImport extends SchemaReference
+{
+  /**
+   * @return Returns the namespace.
+   */
+  public abstract String getNamespaceURI();
+
+  /**
+   * @param namespace The namespace to set.
+   */
+  public abstract void setNamespaceURI(String namespace);
+}
\ No newline at end of file
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/extensions/schema/SchemaReference.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/extensions/schema/SchemaReference.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,60 @@
+/*
+ * (c) Copyright IBM Corp 2004, 2005 
+ */
+
+package javax.wadls.extensions.schema;
+
+
+import java.io.Serializable;
+
+import javax.wadls.extensions.schema.Schema;
+
+/**
+ * Represents an include or a redefine element within a schema element.
+ * 
+ * @author Jeremy Hughes <hughesj@uk.ibm.com>
+ */
+public interface SchemaReference extends Serializable
+{
+    /**
+     * Gets the ID attribute of the referenced schema.
+     * 
+     * @return the id string 
+     */
+    public abstract String getId();
+
+    /**
+     * Sets the ID attribute of the referenced schema.
+     * 
+     * @param id The id string to set.
+     */
+    public abstract void setId(String id);
+
+    /**
+     * Gets the schemaLocation attribute of the referenced schema.
+     * 
+     * @return the schemaLocation string.
+     */
+    public abstract String getSchemaLocationURI();
+
+    /**
+     * Sets the schemaLocation attribute of the referenced schema.
+     * 
+     * @param schemaLocation The schemaLocation string to set.
+     */
+    public abstract void setSchemaLocationURI(String schemaLocation);
+
+    /**
+     * Gets the referenced schema, represented as a LightWeightSchema.
+     * 
+     * @return the referenced LightWeightSchema.
+     */
+    public abstract Schema getReferencedSchema();
+
+    /**
+     * Sets the referenced schema to a LightWeightSchema.
+     * 
+     * @param referencedSchema The LightWeightSchema to set.
+     */
+    public abstract void setReferencedSchema(Schema referencedSchema);
+}
\ No newline at end of file
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/factory/WADLFactory.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/factory/WADLFactory.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,183 @@
+/*
+ * (c) Copyright IBM Corp 2001, 2005 
+ */
+
+package javax.wadls.factory;
+
+import java.io.*;
+import java.util.*;
+
+import javax.wadls.*;
+import javax.wadls.xml.*;
+
+/**
+ * This abstract class defines a factory API that enables applications
+ * to obtain a WSDLFactory capable of producing new Definitions, new
+ * WSDLReaders, and new WSDLWriters.
+ * 
+ * Some ideas used here have been shamelessly copied from the
+ * wonderful JAXP and Xerces work.
+ *
+ * @author Matthew J. Duftler (duftler@us.ibm.com)
+ */
+public abstract class WADLFactory
+{
+  private static final String PROPERTY_NAME =
+    "javax.wadls.factory.WADLFactory";
+  private static final String PROPERTY_FILE_NAME =
+    "wadl.properties";
+  private static final String DEFAULT_FACTORY_IMPL_NAME =
+    "edu.uga.cs.lsdis.meteors.wadls.factory.WADLFactoryImpl";
+
+  private static String fullPropertyFileName = null;
+
+  /**
+   * Get a new instance of a WSDLFactory. This method
+   * follows (almost) the same basic sequence of steps that JAXP
+   * follows to determine the fully-qualified class name of the
+   * class which implements WSDLFactory. The steps (in order)
+   * are:
+   *<pre>
+   *  Check the javax.wsdls.factory.WSDLFactory system property.
+   *  Check the lib/wsdl.properties file in the JRE directory. The key
+   * will have the same name as the above system property.
+   *  Use the default value.
+   *</pre>
+   * Once an instance of a WSDLFactory is obtained, invoke
+   * newDefinition(), newWSDLReader(), or newWSDLWriter(), to create
+   * the desired instances.
+   */
+  public static WADLFactory newInstance() throws WADLSException
+  {
+    String factoryImplName = findFactoryImplName();
+
+    return newInstance(factoryImplName);
+  }
+
+  /**
+   * Get a new instance of a WSDLFactory. This method
+   * returns an instance of the class factoryImplName.
+   * Once an instance of a WSDLFactory is obtained, invoke
+   * newDefinition(), newWSDLReader(), or newWSDLWriter(), to create
+   * the desired instances.
+   *
+   * @param factoryImplName the fully-qualified class name of the
+   * class which provides a concrete implementation of the abstract
+   * class WSDLFactory.
+   */
+  public static WADLFactory newInstance(String factoryImplName)
+    throws WADLSException
+  {
+    if (factoryImplName != null)
+    {
+      try
+      {
+        Class cl = Class.forName(factoryImplName);
+
+        return (WADLFactory)cl.newInstance();
+      }
+      catch (Exception e)
+      {
+        /*
+          Catches:
+                   ClassNotFoundException
+                   InstantiationException
+                   IllegalAccessException
+        */
+        throw new WADLSException(WADLSException.CONFIGURATION_ERROR,
+                                "Problem instantiating factory " +
+                                "implementation.",
+                                e);
+      }
+    }
+    else
+    {
+      throw new WADLSException(WADLSException.CONFIGURATION_ERROR,
+                              "Unable to find name of factory " +
+                              "implementation.");
+    }
+  }
+
+  /**
+   * Create a new instance of a Definition.
+   */
+  public abstract Application newApplication();
+
+  /**
+   * Create a new instance of a WSDLReader.
+   */
+  public abstract WADLReader newWADLReader();
+
+  /**
+   * Create a new instance of a WSDLWriter.
+   */
+  public abstract WADLWriter newWADLWriter();
+
+
+  private static String findFactoryImplName()
+  {
+    String factoryImplName = null;
+
+    // First, check the system property.
+    try
+    {
+      factoryImplName = System.getProperty(PROPERTY_NAME);
+
+      if (factoryImplName != null)
+      {
+        return factoryImplName;
+      }
+    }
+    catch (SecurityException e)
+    {
+    }
+
+    // Second, check the properties file.
+    String propFileName = getFullPropertyFileName();
+
+    if (propFileName != null)
+    {
+      try
+      {
+        Properties properties = new Properties();
+        File propFile = new File(propFileName);
+        FileInputStream fis = new FileInputStream(propFile);
+
+        properties.load(fis);
+        fis.close();
+
+        factoryImplName = properties.getProperty(PROPERTY_NAME);
+
+        if (factoryImplName != null)
+        {
+          return factoryImplName;
+        }
+      }
+      catch (IOException e)
+      {
+      }
+    }
+
+    // Third, return the default.
+    return DEFAULT_FACTORY_IMPL_NAME;
+  }
+
+  private static String getFullPropertyFileName()
+  {
+    if (fullPropertyFileName == null)
+    {
+      try
+      {
+        String javaHome = System.getProperty("java.home");
+
+        fullPropertyFileName = javaHome + File.separator + "lib" +
+                               File.separator + PROPERTY_FILE_NAME;
+      }
+      catch (SecurityException e)
+      {
+      }
+    }
+
+    return fullPropertyFileName;
+  }
+}
\ No newline at end of file
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/xml/WADLLocator.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/xml/WADLLocator.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,56 @@
+/*
+ * (c) Copyright IBM Corp 2002, 2005 
+ */
+
+package javax.wadls.xml;
+
+import org.xml.sax.*;
+
+/**
+ * This interface can act as an additional layer of indirection between
+ * a WSDLReader and the actual location of WSDL documents. One
+ * use could be to retrieve WSDL documents from JAR files, while still
+ * retaining the ability to resolve imported documents using relative
+ * URIs.
+ *
+ * @author Owen Burroughs (owenb@uk.ibm.com)
+ *
+ * @see WSDLReader#readWSDL(WSDLLocator)
+ */
+public interface WADLLocator
+{
+  /**
+   * Returns an InputSource "pointed at" the base document.
+   * 
+   * @return the InputSource object or null if the base document could
+   * not be found
+   */
+  public InputSource getBaseInputSource();
+
+  /**
+   * Returns an InputSource "pointed at" an imported wsdl document.
+   *
+   * @param parentLocation a URI specifying the location of the
+   * document doing the importing. This can be null if the import location
+   * is not relative to the parent location.
+   * @param importLocation a URI specifying the location of the
+   * document to import. This might be relative to the parent document's
+   * location.
+   * @return the InputSource object or null if the import cannot be found.
+   */
+  public InputSource getImportInputSource(String parentLocation,
+                                          String importLocation);
+
+  /**
+   * Returns a URI representing the location of the base document.
+   */
+  public String getBaseURI();
+
+  /**
+   * Returns a URI representing the location of the last import document
+   * to be resolved. This is used in resolving nested imports where an
+   * import location is relative to the parent document.
+   */
+  public String getLatestImportURI();
+}
+
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/xml/WADLReader.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/xml/WADLReader.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,178 @@
+/*
+ * (c) Copyright IBM Corp 2001, 2005 
+ */
+
+package javax.wadls.xml;
+
+import java.io.InputStream;
+import java.net.URISyntaxException;
+
+import org.w3c.dom.*;
+import org.xml.sax.*;
+
+import javax.wadls.*;
+import javax.wadls.extensions.*;
+import javax.wadls.extensions.ExtensionRegistry;
+
+/**
+ * This interface describes a collection of methods
+ * that enable conversion of a WSDL document (in XML,
+ * following the WSDL schema described in the WSDL
+ * specification) into a WSDL model.
+ *
+ * @author Matthew J. Duftler
+ */
+public interface WADLReader
+{
+  /**
+   * Sets the specified feature to the specified value.
+   * <p>
+   * The minimum features that must be supported are:
+   * <p>
+   * <table border=1>
+   *   <tr>
+   *     <th>Name</th>
+   *     <th>Description</th>
+   *     <th>Default Value</th>
+   *   </tr>
+   *   <tr>
+   *     <td><center>javax.wsdls.verbose</center></td>
+   *     <td>If set to true, status messages will be displayed.</td>
+   *     <td><center>true</center></td>
+   *   </tr>
+   *   <tr>
+   *     <td><center>javax.wsdls.importDocuments</center></td>
+   *     <td>If set to true, imported WSDL documents will be
+   *         retrieved and processed.</td>
+   *     <td><center>true</center></td>
+   *   </tr>
+   * </table>
+   * <p>
+   * All feature names must be fully-qualified, Java package style. All
+   * names starting with javax.wsdls. are reserved for features defined
+   * by the JWSDL specification. It is recommended that implementation-
+   * specific features be fully-qualified to match the package name
+   * of that implementation. For example: com.abc.featureName
+   *
+   * @param name the name of the feature to be set.
+   * @param value the value to set the feature to.
+   * @throws IllegalArgumentException if the feature name is not recognized.
+   * @see #getFeature(String)
+   */
+		  
+  public void setFeature(String name, boolean value)
+    throws IllegalArgumentException;
+
+  /**
+   * Gets the value of the specified feature.
+   *
+   * @param name the name of the feature to get the value of.
+   * @throws IllegalArgumentException if the feature name is not recognized.
+   * @see #setFeature(String, boolean)
+   */
+  public boolean getFeature(String name) throws IllegalArgumentException;
+
+
+
+  /**
+   * Set a different factory implementation to use for
+   * creating definitions when reading WSDL documents.
+   * As some WSDLReader implementations may only be
+   * capable of creating definitions using the same
+   * factory implementation from which the reader was
+   * obtained, this method is optional. Default is null.
+   *
+   * @param factoryImplName the fully-qualified class name of the
+   * class which provides a concrete implementation of the abstract
+   * class WSDLFactory.
+   * @throws UnsupportedOperationException if this method
+   * is invoked on an implementation which does not
+   * support it.
+   */
+  public void setFactoryImplName(String factoryImplName)
+    throws UnsupportedOperationException;
+
+  /**
+   * Get the factoryImplName, if one was set. Default is null.
+   */
+  public String getFactoryImplName();
+
+  public Application readWADL(InputStream wadlIS) throws WADLSException;
+
+  /**
+   * Read the WSDL document accessible via the specified
+   * URI into a WSDL definition.
+   *
+   * @param wsdlURI a URI (can be a filename or URL) pointing to a
+   * WSDL XML definition.
+   * @return the definition.
+   */
+  public Application readWADL(String wadlURI) throws WADLSException;
+
+  /**
+   * Read the WSDL document accessible via the specified
+   * URI into a WSDL definition.
+   *
+   * @param contextURI the context in which to resolve the
+   * wsdlURI, if the wsdlURI is relative. Can be null, in which
+   * case it will be ignored.
+   * @param wsdlURI a URI (can be a filename or URL) pointing to a
+   * WSDL XML definition.
+   * @return the definition.
+   */
+  public Application readWADL(String contextURI, String wadlURI)
+    throws WADLSException;
+
+  /**
+   * Read the specified &lt;wsdl:definitions&gt; element into a WSDL
+   * definition.
+   *
+   * @param documentBaseURI the document base URI of the WSDL definition
+   * described by the element. Will be set as the documentBaseURI
+   * of the returned Definition. Can be null, in which case it
+   * will be ignored.
+   * @param definitionsElement the &lt;wsdl:definitions&gt; element
+   * @return the definition described by the element.
+   */
+  public Application readWADL(String documentBaseURI,
+                             Element definitionsElement)
+                               throws WADLSException, URISyntaxException;
+
+  /**
+   * Read the specified WSDL document into a WSDL definition.
+   *
+   * @param documentBaseURI the document base URI of the WSDL definition
+   * described by the document. Will be set as the documentBaseURI
+   * of the returned Definition. Can be null, in which case it
+   * will be ignored.
+   * @param wsdlDocument the WSDL document, an XML 
+   * document obeying the WSDL schema.
+   * @return the definition described in the document.
+   */
+  public Application readWADL(String documentBaseURI, Document wadlDocument)
+    throws WADLSException, URISyntaxException;
+
+  /**
+   * Read a WSDL document into a WSDL definition.
+   *
+   * @param documentBaseURI the document base URI of the WSDL definition
+   * described by the document. Will be set as the documentBaseURI
+   * of the returned Definition. Can be null, in which case it
+   * will be ignored.
+   * @param inputSource an InputSource pointing to the
+   * WSDL document, an XML document obeying the WSDL schema.
+   * @return the definition described in the document pointed to
+   * by the InputSource.
+   */
+  public Application readWADL(String documentBaseURI, InputSource inputSource)
+    throws WADLSException, URISyntaxException;
+
+  /**
+   * Read a WSDL document into a WSDL definition.
+   *
+   * @param locator A WSDLLocator object used to provide InputSources
+   * pointing to the wsdl file.
+   * @return the definition described in the document
+   */
+  public Application readWADL(WADLLocator locator) throws WADLSException, URISyntaxException;
+}
\ No newline at end of file
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/xml/WADLWriter.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/xml/WADLWriter.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,73 @@
+/*
+ * (c) Copyright IBM Corp 2001, 2005 
+ */
+
+package javax.wadls.xml;
+
+import java.io.*;
+import java.net.URISyntaxException;
+
+import org.w3c.dom.*;
+
+import javax.wadls.*;
+
+/**
+ * This interface describes a collection of methods
+ * that allow a WSDL model to be written to a writer
+ * in an XML format that follows the WSDL schema.
+ *
+ * @author Matthew J. Duftler
+ */
+public interface WADLWriter
+{
+  /**
+   * Sets the specified feature to the specified value.
+   * <p>
+   * There are no minimum features that must be supported.
+   * <p>
+   * All feature names must be fully-qualified, Java package style. All
+   * names starting with javax.wsdls. are reserved for features defined
+   * by the JWSDL specification. It is recommended that implementation-
+   * specific features be fully-qualified to match the package name
+   * of that implementation. For example: com.abc.featureName
+   *
+   * @param name the name of the feature to be set.
+   * @param value the value to set the feature to.
+   * @throws IllegalArgumentException if the feature name is not recognized.
+   * @see #getFeature(String)
+   */
+  public void setFeature(String name, boolean value)
+    throws IllegalArgumentException;
+
+  /**
+   * Gets the value of the specified feature.
+   *
+   * @param name the name of the feature to get the value of.
+   * @throws IllegalArgumentException if the feature name is not recognized.
+   * @see #setFeature(String, boolean)
+   */
+  public boolean getFeature(String name) throws IllegalArgumentException;
+
+  /**
+   * Return a document generated from the specified WSDL model.
+   */
+  public Document getDocument(Application wadlApp) throws WADLSException, URISyntaxException;
+
+  /**
+   * Write the specified WSDL definition to the specified Writer.
+   *
+   * @param wsdlDef the WSDL definition to be written.
+   * @param sink the Writer to write the xml to.
+   */
+  public void writeWADL(Application wadlApp, Writer sink)
+    throws WADLSException, URISyntaxException;
+
+  /**
+   * Write the specified WSDL definition to the specified OutputStream.
+   *
+   * @param wsdlDef the WSDL definition to be written.
+   * @param sink the OutputStream to write the xml to.
+   */
+  public void writeWADL(Application wadlApp, OutputStream sink)
+    throws WADLSException, URISyntaxException;
+}
\ No newline at end of file
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/xml/namespace/QName.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/xml/namespace/QName.java	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,415 @@
+//$Id: QName.java,v 1.10 2004/02/09 23:41:21 jsuttor Exp $
+
+/*
+ * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
+ * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
+ */
+
+package javax.xml.namespace;
+
+import java.io.Serializable;
+
+import javax.xml.XMLConstants;
+
+/** 
+ * <p><code>QName</code> represents a <strong>qualified name</strong>
+ * as defined in the XML specifications: <a
+ * href="http://www.w3.org/TR/xmlschema-2/#QName">XML Schema Part2:
+ * Datatypes specification</a>, <a
+ * href="http://www.w3.org/TR/REC-xml-names/#ns-qualnames">Namespaces
+ * in XML</a>, <a
+ * href="http://www.w3.org/XML/xml-names-19990114-errata">Namespaces
+ * in XML Errata</a>.</p>
+ *
+ * <p>The value of a <code>QName</code> contains a <strong>Namespace
+ * URI</strong>, <strong>local part</strong> and
+ * <strong>prefix</strong>.</p>
+ *
+ * <p>The prefix is included in <code>QName</code> to retain lexical
+ * information <strong><em>when present</em></strong> in an {@link
+ * javax.xml.transform.Source XML input source}. The prefix is
+ * <strong><em>NOT</em></strong> used in {@link #equals(Object)
+ * QName.equals(Object)} or to compute the {@link #hashCode()
+ * QName.hashCode()}.  Equality and the hash code are defined using
+ * <strong><em>only</em></strong> the Namespace URI and local part.</p>
+ *
+ * <p>If not specified, the Namespace URI is set to {@link
+ * javax.xml.XMLConstants#NULL_NS_URI XMLConstants.NULL_NS_URI}.
+ * If not specified, the prefix is set to {@link
+ * javax.xml.XMLConstants#DEFAULT_NS_PREFIX
+ * XMLConstants.DEFAULT_NS_PREFIX}.</p>
+ *
+ * <p><code>QName</code> is immutable.</p>
+ *
+ * @author <a href="mailto:Jeff.Suttor@Sun.com">Jeff Suttor</a>
+ * @version $Revision: 1.10 $, $Date: 2004/02/09 23:41:21 $
+ * @see <a href="http://www.w3.org/TR/xmlschema-2/#QName">XML Schema Part2: Datatypes specification</a>
+ * @see <a href="http://www.w3.org/TR/REC-xml-names/#ns-qualnames">Namespaces in XML</a>
+ * @see <a href="http://www.w3.org/XML/xml-names-19990114-errata">Namespaces in XML Errata</a>
+ * @since 1.5
+ */
+
+public class QName implements Serializable {
+
+    /**
+     * <p>Stream Unique Identifier.</p>
+     */
+    private static final long serialVersionUID = 4418622981026545151L;
+
+    /**
+     * <p>Namespace URI of this <code>QName</code>.</p>
+     */
+    private final String namespaceURI;
+
+    /**
+     * <p>local part of this <code>QName</code>.</p>
+     */
+    private final String localPart;
+
+    /**
+     * <p>prefix of this <code>QName</code>.</p>
+     */
+    private final String prefix;
+
+    /** 
+     * <p><code>QName</code> constructor specifying the Namespace URI
+     * and local part.</p>
+     *
+     * <p>If the Namespace URI is <code>null</code>, it is set to
+     * {@link javax.xml.XMLConstants#NULL_NS_URI
+     * XMLConstants.NULL_NS_URI}.  This value represents no
+     * explicitly defined Namespace as defined by the <a
+     * href="http://www.w3.org/TR/REC-xml-names/#ns-qualnames">Namespaces
+     * in XML</a> specification.  This action preserves compatible
+     * behavior with QName 1.0.  Explicitly providing the {@link
+     * javax.xml.XMLConstants#NULL_NS_URI
+     * XMLConstants.NULL_NS_URI} value is the preferred coding
+     * style.</p>
+     *
+     * <p>If the local part is <code>null</code> an
+     * <code>IllegalArgumentException</code> is thrown.
+     * A local part of "" is allowed to preserve
+     * compatible behavior with QName 1.0. </p>
+     *
+     * <p>When using this constructor, the prefix is set to {@link
+     * javax.xml.XMLConstants#DEFAULT_NS_PREFIX
+     * XMLConstants.DEFAULT_NS_PREFIX}.</p>
+     *
+     * <p>The Namespace URI is not validated as a
+     * <a href="http://www.ietf.org/rfc/rfc2396.txt">URI reference</a>.
+     * The local part is not validated as a
+     * <a href="http://www.w3.org/TR/REC-xml-names/#NT-NCName">NCName</a>
+     * as specified in <a href="http://www.w3.org/TR/REC-xml-names/">Namespaces
+     * in XML</a>.</p>
+     *
+     * @param namespaceURI Namespace URI of the <code>QName</code>
+     * @param localPart    local part of the <code>QName</code>
+     * 
+     * @see #QName(String namespaceURI, String localPart, String
+     * prefix) QName(String namespaceURI, String localPart, String
+     * prefix)
+     */
+    public QName(final String namespaceURI, final String localPart) {
+        this(namespaceURI, localPart, XMLConstants.DEFAULT_NS_PREFIX);
+    }
+
+    /** 
+     * <p><code>QName</code> constructor specifying the Namespace URI,
+     * local part and prefix.</p>
+     *
+     * <p>If the Namespace URI is <code>null</code>, it is set to
+     * {@link javax.xml.XMLConstants#NULL_NS_URI
+     * XMLConstants.NULL_NS_URI}.  This value represents no
+     * explicitly defined Namespace as defined by the <a
+     * href="http://www.w3.org/TR/REC-xml-names/#ns-qualnames">Namespaces
+     * in XML</a> specification.  This action preserves compatible
+     * behavior with QName 1.0.  Explicitly providing the {@link
+     * javax.xml.XMLConstants#NULL_NS_URI
+     * XMLConstants.NULL_NS_URI} value is the preferred coding
+     * style.</p>
+     * 
+     * <p>If the local part is <code>null</code> an
+     * <code>IllegalArgumentException</code> is thrown.
+     * A local part of "" is allowed to preserve
+     * compatible behavior with QName 1.0. </p>
+     * 
+     * <p>If the prefix is <code>null</code>, an
+     * <code>IllegalArgumentException</code> is thrown.  Use {@link
+     * javax.xml.XMLConstants#DEFAULT_NS_PREFIX
+     * XMLConstants.DEFAULT_NS_PREFIX} to explicitly indicate that no
+     * prefix is present or the prefix is not relevant.</p>
+     *
+     * <p>The Namespace URI is not validated as a
+     * <a href="http://www.ietf.org/rfc/rfc2396.txt">URI reference</a>.
+     * The local part and prefix are not validated as a
+     * <a href="http://www.w3.org/TR/REC-xml-names/#NT-NCName">NCName</a>
+     * as specified in <a href="http://www.w3.org/TR/REC-xml-names/">Namespaces
+     * in XML</a>.</p>
+     *
+     * @param namespaceURI Namespace URI of the <code>QName<code>
+     * @param localPart    local part of the <code>QName<code>
+     * @param prefix       prefix of the <code>QName<code>
+     */
+    public QName(String namespaceURI, String localPart, String prefix) {
+
+        // map null Namespace URI to default to preserve compatibility with QName 1.0
+        if (namespaceURI == null) {
+            this.namespaceURI = XMLConstants.NULL_NS_URI;
+        } else {
+            this.namespaceURI = namespaceURI;
+        }
+
+        // local part is required.  "" is allowed to preserve compatibility with QName 1.0        
+        if (localPart == null) {
+            throw new IllegalArgumentException("local part cannot be \"null\" when creating a QName");
+        }
+        this.localPart = localPart;
+
+        // prefix is required        
+        if (prefix == null) {
+            throw new IllegalArgumentException("prefix cannot be \"null\" when creating a QName");
+        }
+        this.prefix = prefix;
+    }
+
+    /** 
+     * <p><code>QName</code> constructor specifying the local part.</p>
+     *
+     * <p>If the local part is <code>null</code> an
+     * <code>IllegalArgumentException</code> is thrown.
+     * A local part of "" is allowed to preserve
+     * compatible behavior with QName 1.0. </p>
+     *
+     * <p>When using this constructor, the Namespace URI is set to
+     * {@link javax.xml.XMLConstants#NULL_NS_URI
+     * XMLConstants.NULL_NS_URI} and the prefix is set to {@link
+     * javax.xml.XMLConstants#DEFAULT_NS_PREFIX
+     * XMLConstants.DEFAULT_NS_PREFIX}.</p>
+     *
+     * <p><em>In an XML context, all Element and Attribute names exist
+     * in the context of a Namespace.  Making this explicit during the
+     * construction of a <code>QName</code> helps prevent hard to
+     * diagnosis XML validity errors.  The constructors {@link
+     * #QName(String namespaceURI, String localPart) QName(String
+     * namespaceURI, String localPart)} and
+     * {@link #QName(String namespaceURI, String localPart, String prefix)} 
+     * are preferred.</em></p>
+     * 
+     * <p>The local part is not validated as a
+     * <a href="http://www.w3.org/TR/REC-xml-names/#NT-NCName">NCName</a>
+     * as specified in <a href="http://www.w3.org/TR/REC-xml-names/">Namespaces
+     * in XML</a>.</p>
+     *
+     * @param localPart local part of the <code>QName</code>
+     * @see #QName(String namespaceURI, String localPart) QName(String
+     * namespaceURI, String localPart)
+     * @see #QName(String namespaceURI, String localPart, String
+     * prefix) QName(String namespaceURI, String localPart, String
+     * prefix)
+     */
+    public QName(String localPart) {
+        this(
+            XMLConstants.NULL_NS_URI,
+            localPart,
+            XMLConstants.DEFAULT_NS_PREFIX);
+    }
+    
+    /** 
+     * <p>Get the Namespace URI of this <code>QName</code>.</p>
+     *
+     * @return Namespace URI of this <code>QName</code>
+     */
+    public String getNamespaceURI() {
+        return namespaceURI;
+    }
+
+    /**
+     * <p>Get the local part of this <code>QName</code>.</p>
+     *
+     *  @return local part of this <code>QName</code>
+     */
+    public String getLocalPart() {
+        return localPart;
+    }
+
+    /** 
+     * <p>Get the prefix of this <code>QName</code>.</p>
+     *
+     * <p>The prefix assigned to a <code>QName</code> might
+     * <strong><em>NOT</em></strong> be valid in a different
+     * context. For example, a <code>QName</code> may be assigned a
+     * prefix in the context of parsing a document but that prefix may
+     * be invalid in the context of a different document.</p>
+     *
+     *  @return prefix of this <code>QName</code>
+     */
+    public String getPrefix() {
+        return prefix;
+    }
+
+    /**
+     * <p>Test this <code>QName</code> for equality with another
+     * <code>Object</code>.</p>
+     *
+     * <p>If the <code>Object</code> to be tested is not a
+     * <code>QName</code> or is <code>null</code>, then this method
+     * returns <code>false</code>.</p>
+     *
+     * <p>Two <code>QName</code>s are considered equal if and only if
+     * both the Namespace URI and local part are equal. This method
+     * uses <code>String.equals()</code> to check equality of the
+     * Namespace URI and local part. The prefix is
+     * <strong><em>NOT</em></strong> used to determine equality.</p>
+     *
+     * <p>This method satisfies the general contract of {@link
+     * java.lang.Object#equals(Object) Object.equals(Object)}</p>
+     *
+     * @param objectToTest the <code>Object</code> to test for
+     * equality with this <code>QName</code>
+     * @return <code>true</code> if the given <code>Object</code> is
+     * equal to this <code>QName</code> else <code>false</code>
+     */
+    public final boolean equals(Object objectToTest) {
+        if (objectToTest == null || !(objectToTest instanceof QName)) {
+            return false;
+        }
+
+        QName qName = (QName) objectToTest;
+
+        return namespaceURI.equals(qName.namespaceURI)
+            && localPart.equals(qName.localPart);
+    }
+
+    /**
+     * <p>Generate the hash code for this <code>QName</code>.</p>
+     *
+     * <p>The hash code is calculated using both the Namespace URI and
+     * the local part of the <code>QName</code>.  The prefix is
+     * <strong><em>NOT</em></strong> used to calculate the hash
+     * code.</p>
+     *
+     * <p>This method satisfies the general contract of {@link
+     * java.lang.Object#hashCode() Object.hashCode()}.</p>
+     *
+     * @return hash code for this <code>QName</code> <code>Object</code>
+     */
+    public final int hashCode() {
+        return namespaceURI.hashCode() ^ localPart.hashCode();
+    }
+
+	/** 
+	 * <p><code>String</code> representation of this
+	 * <code>QName</code>.</p>
+	 *
+	 * <p>The commonly accepted way of representing a <code>QName</code>
+	 * as a <code>String</code> was <a href="http://jclark.com/xml/xmlns.htm">defined</a>
+	 * by James Clark.  Although this is not a <em>standard</em>
+	 * specification, it is in common use,  e.g. {@link javax.xml.transform.Transformer#setParameter(String name, Object value)}.
+	 * This implementation represents a <code>QName</code> as:
+	 * "{" + Namespace URI + "}" + local part.  If the Namespace URI
+	 * <code>.equals(XMLConstants.NULL_NS_URI)</code>, only the
+	 * local part is returned.  An appropriate use of this method is
+	 * for debugging or logging for human consumption.</p>
+	 *
+	 * <p>Note the prefix value is <strong><em>NOT</em></strong>
+	 * returned as part of the <code>String</code> representation.</p>
+	 *  
+	 * <p>This method satisfies the general contract of {@link
+	 * java.lang.Object#toString() Object.toString()}.</p>
+	 *
+	 *  @return <code>String</code> representation of this <code>QName</code>
+	 */
+    public String toString() {
+        if (namespaceURI.equals(XMLConstants.NULL_NS_URI)) {
+            return localPart;
+        } else {
+            return "{" + namespaceURI + "}" + localPart;
+        }
+    }
+
+    /** 
+     * <p><code>QName</code> derived from parsing the formatted
+     * <code>String</code>.</p>
+     *
+     * <p>If the <code>String</code> is <code>null</code> or does not conform to
+     * {@link #toString() QName.toString()} formatting, an
+     * <code>IllegalArgumentException</code> is thrown.</p>
+     *  
+     * <p><em>The <code>String</code> <strong>MUST</strong> be in the
+     * form returned by {@link #toString() QName.toString()}.</em></p>
+
+	 * <p>The commonly accepted way of representing a <code>QName</code>
+	 * as a <code>String</code> was <a href="http://jclark.com/xml/xmlns.htm">defined</a>
+	 * by James Clark.  Although this is not a <em>standard</em>
+	 * specification, it is in common use,  e.g. {@link javax.xml.transform.Transformer#setParameter(String name, Object value)}.
+     * This implementation parses a <code>String</code> formatted
+     * as: "{" + Namespace URI + "}" + local part.  If the Namespace
+     * URI <code>.equals(XMLConstants.NULL_NS_URI)</code>, only the
+     * local part should be provided.</p>
+     *
+     * <p>The prefix value <strong><em>CANNOT</em></strong> be
+     * represented in the <code>String</code> and will be set to
+     * {@link javax.xml.XMLConstants#DEFAULT_NS_PREFIX
+     * XMLConstants.DEFAULT_NS_PREFIX}.</p>
+     *
+     * <p>This method does not do full validation of the resulting
+     * <code>QName</code>. 
+     * <p>The Namespace URI is not validated as a
+     * <a href="http://www.ietf.org/rfc/rfc2396.txt">URI reference</a>.
+     * The local part is not validated as a
+     * <a href="http://www.w3.org/TR/REC-xml-names/#NT-NCName">NCName</a>
+     * as specified in
+     * <a href="http://www.w3.org/TR/REC-xml-names/">Namespaces in XML</a>.</p>
+     *
+     * @param qNameAsString <code>String</code> representation
+     * of the <code>QName</code>
+     * @return <code>QName</code> corresponding to the given <code>String</code>
+     * @see #toString() QName.toString()
+     */
+    public static QName valueOf(String qNameAsString) {
+
+        // null is not valid
+        if (qNameAsString == null) {
+            throw new IllegalArgumentException("cannot create QName from \"null\" or \"\" String");
+        }
+
+        // "" local part is valid to preserve compatible behavior with QName 1.0
+        if (qNameAsString.length() == 0) {
+            return new QName(
+                XMLConstants.NULL_NS_URI,
+                qNameAsString,
+                XMLConstants.DEFAULT_NS_PREFIX);
+        }
+
+        // local part only?
+        if (qNameAsString.charAt(0) != '{') {
+            return new QName(
+                XMLConstants.NULL_NS_URI,
+                qNameAsString,
+                XMLConstants.DEFAULT_NS_PREFIX);
+        }
+
+        // Namespace URI improperly specified?
+        if (qNameAsString.startsWith("{" + XMLConstants.NULL_NS_URI + "}")) {
+            throw new IllegalArgumentException(
+                "Namespace URI .equals(XMLConstants.NULL_NS_URI), "
+                + ".equals(\"" + XMLConstants.NULL_NS_URI + "\"), "
+                + "only the local part, "
+                + "\"" + qNameAsString.substring(2 + XMLConstants.NULL_NS_URI.length()) + "\", "
+                + "should be provided.");
+        }
+
+        // Namespace URI and local part specified
+        int endOfNamespaceURI = qNameAsString.indexOf('}');
+        if (endOfNamespaceURI == -1) {
+            throw new IllegalArgumentException(
+                "cannot create QName from \""
+                    + qNameAsString
+                    + "\", missing closing \"}\"");
+        }
+        return new QName(
+            qNameAsString.substring(1, endOfNamespaceURI),
+            qNameAsString.substring(endOfNamespaceURI + 1),
+            XMLConstants.DEFAULT_NS_PREFIX);
+    }
+}
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/owlapi-bin.jar has changed
Binary file WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/owlapi-src.jar has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/refreshTool.py	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,16 @@
+'''
+@author  Sumedha Ganjoo
+@see     LICENSE (MIT style license file).
+'''
+
+import os.path
+import sys
+
+outputfile=open(sys.argv[2],'w')
+outputfile.seek(0,0)
+outputfile.write('\n Tool added...For independent use, find the tool under Web Service Tools on the left side window, \n and for use in workflows find the tool under Web Service Workflow Tools. \n If the tool is not visible click on "Galaxy" on the top left corner of this window to refresh the page.')
+
+
+
+
+    
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/refreshTool.py~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,16 @@
+'''
+@author  Sumedha Ganjoo
+@see     LICENSE (MIT style license file).
+'''
+
+import os.path
+import sys
+
+outputfile=open(sys.argv[2],'w')
+outputfile.seek(0,0)
+outputfile.write('\n Tool added...For independent use, find the tool under Web Service Tools on the left side window, \n and for use in workflows find the tool under Web Service Workflow Tools. \n If the tool is not visible click on "Galaxy" on the top left corner of this window to refresh the page.')
+
+
+
+
+    
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/refreshTool.xml	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,34 @@
+<tool id="WebService_REFRESH_ID" name="Step c: Add tool(s) to Galaxy" version="1.1.0">
+<description> </description>
+<command interpreter="python">
+	refreshTool.py
+	$input
+	$output
+</command>
+  <inputs>
+   <param name="input" type="select" display="radio" size="250" label="Execute to ">
+   <option value="refresh">Add Tool</option> 
+   </param>
+   
+  </inputs>
+  <outputs>
+     <data format="tabular" name="output" />
+  </outputs>
+  <tests>
+  </tests>
+  <help>
+
+.. class:: infomark
+
+**TIP: After step c refresh the page.**
+
+**Your tool(s) can now be found under Web Service Tools and Web Service Workflow Tools in the tools section on the left.**
+      
+Web Service Tools are used to invoke web services independently.
+Web Service Workflow Tools can be used in creating workflows.
+  
+*NOTE: Step a, Step b and Step c merely add this tool to Galaxy. To use the tool, go to the Tools section on left
+and find the tool under Select Web Service Tools and Select Web Service Workflow Tools.*
+  </help>
+</tool>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/refreshTool.xml~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,34 @@
+<tool id="WebService_REFRESH_ID" name="Step c: Add tool(s) to Galaxy" version="1.1.0">
+<description> </description>
+<command interpreter="python">
+	refreshTool.py
+	$input
+	$output
+</command>
+  <inputs>
+   <param name="input" type="select" display="radio" size="250" label="Execute to ">
+   <option value="refresh">Add Tool</option> 
+   </param>
+   
+  </inputs>
+  <outputs>
+     <data format="tabular" name="output" />
+  </outputs>
+  <tests>
+  </tests>
+  <help>
+
+.. class:: infomark
+
+**TIP: After step c refresh the page.**
+
+**Your tool(s) can now be found under Web Service Tools and Web Service Workflow Tools in the tools section on the left.**
+      
+Web Service Tools are used to invoke web services independently.
+Web Service Workflow Tools can be used in creating workflows.
+  
+*NOTE: Step a, Step b and Step c merely add this tool to Galaxy. To use the tool, go to the Tools section on left
+and find the tool under Select Web Service Tools and Select Web Service Workflow Tools.*
+  </help>
+</tool>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/suite_config.xml	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,17 @@
+<suite id="WebService_toolsuite" name="Suite of Web service addition tools" version="1.1.0">
+        <description>This suite contains all the tools required to register Web services to Galaxy
+        </description>
+        <tool id="WebServiceTool_input_url_REST_SOAP" name="Step a: Enter the URL (WSDL/WADL location) " version="1.1.0">
+            <description> This tool takes the URL of an external Web service. The URL should point to the description document of a Web service.
+            </description>
+        </tool>
+        <tool id="WebServiceTool_input_method_REST_SOAP" name="Step b: Select desired Web Service Tools / Operations" version="1.1.0">
+            <description> This tool lets the user choose operations from the Web service description document, as each operation has to be registered with Galaxy individually.
+            </description>
+        </tool>
+        <tool id="WebService_REFRESH_ID" name="Step c: Add tool(s) to Galaxy" version="1.1.0">
+            <description> Adds tool to Galaxy and refreshes toolbox. 
+            </description>
+        </tool>        
+</suite>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/suite_config.xml~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,17 @@
+<suite id="WebService_toolsuite" name="Suite of Web service addition tools" version="1.1.0">
+        <description>This suite contains all the tools required to register Web services to Galaxy
+        </description>
+        <tool id="WebServiceTool_input_url_REST_SOAP" name="Step a: Enter the URL (WSDL/WADL location) " version="1.1.0">
+            <description> This tool takes the URL of an external Web service. The URL should point to the description document of a Web service.
+            </description>
+        </tool>
+        <tool id="WebServiceTool_input_method_REST_SOAP" name="Step b: Select desired Web Service Tools / Operations" version="1.1.0">
+            <description> This tool lets the user choose a method and a resource from the Web service description document, as each method has to be registered with Galaxy individually.
+            </description>
+        </tool>
+        <tool id="REFRESH_ID" name="Step 3: Add tool to Galaxy" version="1.1.0">
+            <description> Adds tool to Galaxy and refreshes toolbox. 
+            </description>
+        </tool>        
+</suite>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/workflowclients/ClientCount.xml	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,3 @@
+<count> 
+6
+</count> 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/workflowclients/ClientCount.xml~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,3 @@
+<count> 
+0
+</count> 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/workflowclients/client_1.py	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,192 @@
+'''
+@author  Chaitanya Guttula, Sumedha Ganjoo
+@see     LICENSE (MIT style license file).
+'''
+# To change this template, choose Tools | Templates
+# and open the template in the editor.
+import warnings
+with warnings.catch_warnings():
+    warnings.simplefilter("ignore")
+    import sys
+    import os
+    import urllib
+    import time
+    
+    """
+    
+    This script takes the values of the input parameters of the
+    web service from the user and invokes the web service.
+    The URL to the WSDL is the command line argument
+
+    """
+    servicetype = sys.argv[2]
+    if servicetype=='SOAP':
+        galaxyhome=os.environ.get('GALAXY_HOME')
+        sys.path.append(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator/')
+        os.chdir(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator/')
+        from creatorEngineComplex import *
+        from wsdl2path import *
+        from paramConverter import *
+        from ZSI.writer import SoapWriter
+        from msHandler import *
+
+        webservice = str(sys.argv[5])
+        operation = str(sys.argv[6])
+        resultfile=open(sys.argv[1],'w')
+        length=len(sys.argv)
+        inputdict={}
+        i=7
+        test=ClientCreator()
+        while(i>=7 and i<(length-1)):
+            key=sys.argv[i]
+            print 'key is : ',key
+            #if(sys.argv[i+1]=='ZSI.TC.String'):
+            val=sys.argv[i+1]
+            while(val.find('__at__')>-1):
+                vlist = val.split('__at__')
+                val = '@'.join(vlist)
+            while(val.find('__sq__')>-1):
+                vlist = val.split('__sq__')
+                val = ''.join(vlist)
+            while(val.find('__gt__')>-1):
+                vlist = val.split('__gt__')
+                val = '>'.join(vlist)
+            while(val.find('***')>-1):
+                vlist = val.split('***')
+                val = '\n'.join(vlist)
+            while(val.find('**')>-1):
+                vlist = val.split('**')
+                val = ' '.join(vlist)
+            #if(val.find(',')>-1):
+            #    print 'found ,'
+            #    vlist = val.split(',')
+            #    val = '\',\''.join(vlist)
+                
+                
+            #if(val.find('__sq__')>-1):
+             #   j=i+4
+              #  val=val.lstrip('__sq__')
+               # while(str(sys.argv[j]).find('__sq__')==-1):
+                #    val=val+' '+sys.argv[j]
+                 #   j=j+1
+                #val=val+' '+(str(sys.argv[j]).rstrip('__sq__'))
+                #i=j-3
+
+        #elif((sys.argv[i+1]=='ZSI.TC.Integer')or (sys.argv[i+1]=='ZSI.TCnumbers.Iint')):
+        #   val=int(sys.argv[i+1])
+       #elif(sys.argv[i+1]=='ZSI.TC.Decimal'):
+         #   val=float(sys.argv[i+1])
+        #elif(sys.argv[i+2]=='Yes'):
+         #   valFile=open(sys.argv[i+3],'r')
+          #  val=valFile.read()
+        #else:
+        #   val=sys.argv[i+1]
+            if val == 'fileInput':
+                f = open(sys.argv[i+2])
+                #line = f.readline()
+                val = ''
+                #for j in line:
+                #   val = val+j
+                #linestripped = line.strip('\n')
+                for line in f:
+                    #line = f.readline().strip('\n')
+                    #line = line.strip(' ')
+                        
+                    val = val+line
+                val = val.strip("\n")
+                print val
+                i = i+1
+            
+            if(val != "0"): 
+                inputdict[key]= val
+            #resultfile.write('value is :'+ val+'\n')
+            
+            i=i+2
+        if len(inputdict) == 0:
+            inputdic = {}
+        else:
+            inputdic = flat2nestedDict(inputdict)    
+        print 'The webservice is : ',operation,' ',webservice #added
+        result = None
+        try:
+            result = test.invokeOp(operation,webservice,inputdic)
+        except:
+            pass
+        print 'The result before is ',result
+        while result == None:
+            time.sleep(2)
+            print 'in loop'
+            try:
+                result = test.invokeOp(operation,webservice,inputdic)
+            except:
+                pass
+            print 'result in loop ',result
+        
+        print 'The result after is',result
+
+        mshandler = MessageHandler()
+        resultDict={}
+        resultDict=mshandler.flatten(result)   #mshandler.msParser(responseInstance)
+        flat =  nested2flatDict(resultDict)
+	result=flat
+
+        # Writing the output to he o/p file when the result is parsed
+        for r in result:
+           if type(result[r])==list:
+                   for i in result[r]:
+                           resultfile.write(str(i)+'\n')
+                           print str(i)
+           else:
+                   resultfile.write(str(result[r])+'\n')
+
+        #Writes the result without parsinf in the XML format it gets.
+        #sw = SoapWriter(header=False, envelope=False);
+        #res = test.opname2outputClassOb(operation,webservice)
+        #res_tc = getattr(res,'typecode')
+        #ofwhat = res_tc.ofwhat;
+        #for tc in ofwhat :
+        #    sw.serialize(getattr(result, tc.aname), tc);
+        #    doc = sw.dom.getDocument();
+        #    fp = open(sys.argv[1], 'w');
+        #    try :
+        #        doc.writexml(fp, '\t', '', '\n');
+        #    finally :
+        #        fp.close();
+   
+
+    elif servicetype == 'REST':
+
+        outputFile = open(sys.argv[1],'w')
+        resUrl = sys.argv[3]
+
+        if(resUrl.find('__tilda__')>-1):
+            ulist = resUrl.split('__tilda__')
+            resUrl = '~'.join(ulist)
+    
+        paramdict={}
+        length=(len(sys.argv))
+
+        i=6
+        while( i>=6 and i<(length-1)):
+            key=sys.argv[i]
+            val=sys.argv[i+1]
+            if val=='fileInput':
+                print '##########fileInput found#############'
+                f=open(sys.argv[i+2])
+                line = f.readline().strip('\n')
+                line = line.strip(' ')
+                val = line        
+                i=i+1
+    
+            while(val.find('**')>-1):
+                vlist = val.split('**')
+        	val = ' '.join(vlist)
+            print key + '\t' + val
+            paramdict[key]=val
+            i=i+2
+
+        params = urllib.urlencode(paramdict)
+        data = urllib.urlopen(resUrl, params).read()
+        outputFile.write(data)
+        outputFile.close()
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/workflowclients/client_1.py~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,185 @@
+'''
+@author  Chaitanya Guttula, Sumedha Ganjoo
+@see     LICENSE (MIT style license file).
+'''
+# To change this template, choose Tools | Templates
+# and open the template in the editor.
+import warnings
+with warnings.catch_warnings():
+    warnings.simplefilter("ignore")
+    import sys
+    import os
+    import urllib
+    import time
+    
+    """
+    
+    This script takes the values of the input parameters of the
+    web service from the user and invokes the web service.
+    The URL to the WSDL is the command line argument
+
+    """
+    servicetype = sys.argv[2]
+    if servicetype=='SOAP':
+        galaxyhome=os.environ.get('GALAXY_HOME')
+        sys.path.append(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator/')
+        os.chdir(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator/')
+        from creatorEngineComplex import *
+        from wsdl2path import *
+        from paramConverter import *
+        from ZSI.writer import SoapWriter
+
+        webservice = str(sys.argv[5])
+        operation = str(sys.argv[6])
+        resultfile=open(sys.argv[1],'w')
+        length=len(sys.argv)
+        inputdict={}
+        i=7
+        test=ClientCreator()
+        while(i>=7 and i<(length-1)):
+            key=sys.argv[i]
+            print 'key is : ',key
+            #if(sys.argv[i+1]=='ZSI.TC.String'):
+            val=sys.argv[i+1]
+            while(val.find('__at__')>-1):
+                vlist = val.split('__at__')
+                val = '@'.join(vlist)
+            while(val.find('__sq__')>-1):
+                vlist = val.split('__sq__')
+                val = ''.join(vlist)
+            while(val.find('__gt__')>-1):
+                vlist = val.split('__gt__')
+                val = '>'.join(vlist)
+            while(val.find('***')>-1):
+                vlist = val.split('***')
+                val = '\n'.join(vlist)
+            while(val.find('**')>-1):
+                vlist = val.split('**')
+                val = ' '.join(vlist)
+            #if(val.find(',')>-1):
+            #    print 'found ,'
+            #    vlist = val.split(',')
+            #    val = '\',\''.join(vlist)
+                
+                
+            #if(val.find('__sq__')>-1):
+             #   j=i+4
+              #  val=val.lstrip('__sq__')
+               # while(str(sys.argv[j]).find('__sq__')==-1):
+                #    val=val+' '+sys.argv[j]
+                 #   j=j+1
+                #val=val+' '+(str(sys.argv[j]).rstrip('__sq__'))
+                #i=j-3
+
+        #elif((sys.argv[i+1]=='ZSI.TC.Integer')or (sys.argv[i+1]=='ZSI.TCnumbers.Iint')):
+        #   val=int(sys.argv[i+1])
+       #elif(sys.argv[i+1]=='ZSI.TC.Decimal'):
+         #   val=float(sys.argv[i+1])
+        #elif(sys.argv[i+2]=='Yes'):
+         #   valFile=open(sys.argv[i+3],'r')
+          #  val=valFile.read()
+        #else:
+        #   val=sys.argv[i+1]
+            if val == 'fileInput':
+                f = open(sys.argv[i+2])
+                #line = f.readline()
+                val = ''
+                #for j in line:
+                #   val = val+j
+                #linestripped = line.strip('\n')
+                for line in f:
+                    #line = f.readline().strip('\n')
+                    #line = line.strip(' ')
+                        
+                    val = val+line
+                val = val.strip("\n")
+                print val
+                i = i+1
+            
+            if(val != "0"): 
+                inputdict[key]= val
+            #resultfile.write('value is :'+ val+'\n')
+            
+            i=i+2
+        if len(inputdict) == 0:
+            inputdic = {}
+        else:
+            inputdic = flat2nestedDict(inputdict)    
+        print 'The webservice is : ',operation,' ',webservice #added
+        result = None
+        try:
+            result = test.invokeOp(operation,webservice,inputdic)
+        except:
+            pass
+        print 'The result before is ',result
+        while result == None:
+            time.sleep(2)
+            print 'in loop'
+            try:
+                result = test.invokeOp(operation,webservice,inputdic)
+            except:
+                pass
+            print 'result in loop ',result
+        
+        print 'The result after is',result
+
+        # Writing the output to he o/p file when the result is parsed
+        for r in result:
+            if type(result[r])==list:
+                    for i in result[r]:
+                            resultfile.write(str(i)+'\n')
+                            print str(i)
+            else:
+                    resultfile.write(str(result[r])+'\n')
+
+        #Writes the result without parsinf in the XML format it gets.
+        #sw = SoapWriter(header=False, envelope=False);
+        #res = test.opname2outputClassOb(operation,webservice)
+        #res_tc = getattr(res,'typecode')
+        #ofwhat = res_tc.ofwhat;
+        #for tc in ofwhat :
+        #    sw.serialize(getattr(result, tc.aname), tc);
+        #    doc = sw.dom.getDocument();
+        #    fp = open(sys.argv[1], 'w');
+        #    try :
+        #        doc.writexml(fp, '\t', '', '\n');
+        #    finally :
+        #        fp.close();
+   
+
+    elif servicetype == 'REST':
+
+        outputFile = open(sys.argv[1],'w')
+        resUrl = sys.argv[3]
+
+        if(resUrl.find('__tilda__')>-1):
+            ulist = resUrl.split('__tilda__')
+            resUrl = '~'.join(ulist)
+    
+        paramdict={}
+        length=(len(sys.argv))
+
+        i=6
+        while( i>=6 and i<(length-1)):
+            key=sys.argv[i]
+            val=sys.argv[i+1]
+            if val=='fileInput':
+                print '##########fileInput found#############'
+                f=open(sys.argv[i+2])
+                line = f.readline().strip('\n')
+                line = line.strip(' ')
+                val = line        
+                i=i+1
+    
+            while(val.find('**')>-1):
+                vlist = val.split('**')
+        	val = ' '.join(vlist)
+            print key + '\t' + val
+            paramdict[key]=val
+            i=i+2
+
+        params = urllib.urlencode(paramdict)
+        data = urllib.urlopen(resUrl, params).read()
+        outputFile.write(data)
+        outputFile.close()
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/workflowclients/client_1.xml~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,60 @@
+<tool id="client_1" name="genesbymolecularweight">
+  <description> Client for method: genesbymolecularweight , Web service: http://eupathdb.org/webservices/GeneQuestions/GenesByMolecularWeight.wadl </description>
+  <command interpreter="python">
+  client_1.py 
+  $output 
+  http://eupathdb.org/webservices/GeneQuestions/GenesByMolecularWeight.xml
+  organism
+  $param0
+  min_molecular_weight
+  $param1
+  max_molecular_weight
+  $param2
+</command>
+  <inputs>
+<param name="param0" type="select" label="organism" help="see tip below">
+ <option value="Entamoeba**dispar" >Entamoeba dispar</option>
+  <option value="Entamoeba**histolytica" >Entamoeba histolytica</option>
+  <option value="Entamoeba**invadens" >Entamoeba invadens</option>
+  <option value="Cryptosporidium**parvum" >Cryptosporidium parvum</option>
+  <option value="Cryptosporidium**hominis" >Cryptosporidium hominis</option>
+  <option value="Cryptosporidium**muris" >Cryptosporidium muris</option>
+  <option value="Giardia**Assemblage**A**isolate**WB" >Giardia Assemblage A isolate WB</option>
+  <option value="Giardia**Assemblage**B**isolate**GS" >Giardia Assemblage B isolate GS</option>
+  <option value="Giardia**Assemblage**E**isolate**P15" >Giardia Assemblage E isolate P15</option>
+  <option value="Encephalitozoon**cuniculi" >Encephalitozoon cuniculi</option>
+  <option value="Encephalitozoon**intestinalis" >Encephalitozoon intestinalis</option>
+  <option value="Plasmodium**falciparum" >Plasmodium falciparum</option>
+  <option value="Plasmodium**vivax" >Plasmodium vivax</option>
+  <option value="Plasmodium**yoelii" >Plasmodium yoelii</option>
+  <option value="Plasmodium**berghei" >Plasmodium berghei</option>
+  <option value="Plasmodium**chabaudi" >Plasmodium chabaudi</option>
+  <option value="Plasmodium**knowlesi" >Plasmodium knowlesi</option>
+  <option value="Toxoplasma**gondii" >Toxoplasma gondii</option>
+  <option value="Neospora**caninum" >Neospora caninum</option>
+  <option value="Trichomonas**vaginalis" >Trichomonas vaginalis</option>
+  <option value="Trypanosoma**cruzi" >Trypanosoma cruzi</option>
+  <option value="Leishmania**braziliensis" >Leishmania braziliensis</option>
+  <option value="Leishmania**infantum" >Leishmania infantum</option>
+  <option value="Leishmania**major" >Leishmania major</option>
+  <option value="Leishmania**mexicana" >Leishmania mexicana</option>
+  <option value="Trypanosoma**brucei" >Trypanosoma brucei</option>
+  <option value="Trypanosoma**congolense" >Trypanosoma congolense</option>
+  <option value="Trypanosoma**vivax" >Trypanosoma vivax</option>
+     </param> 
+<param format="text" size = "150" name = "param1"  type="text" label="min_molecular_weight" help="see tip below" />
+<param format="text" size = "150" name = "param2"  type="text" label="max_molecular_weight" help="see tip below" />
+</inputs>
+  <outputs>
+    <data format="tabular" name="output" />
+  </outputs>
+  <help>
+.. class:: infomark
+
+**TIP:** organism type is xsd:string
+
+**TIP:** min_molecular_weight type is xsd:string
+
+**TIP:** max_molecular_weight type is xsd:string
+  </help>
+</tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/workflowclients/client_10.xml~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,50 @@
+<tool id="client_10" name="poll    ">
+  <description> Client for method: poll , Web service: http://om.cs.uga.edu/demo/clustalW2.wadl </description>
+  <command interpreter="python">
+  #client_1.py 
+  $output 
+  http://www.ebi.ac.uk/Tools/services/restwublast/result
+  jobId
+#if $source0.source0_source=="user" $source0.user_param0 #else $source0.cached_param0 #end if
+  resultType
+#if $source1.source1_source=="user" $source1.user_param1 #else $source1.cached_param1 #end if
+#if $cond_source.optional_param_source=="yes"#else 
+#end if
+</command>
+  <inputs>
+<conditional name="source0">
+    <param name="source0_source" type="select" label="jobId Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+      <param format="text" size = "150" name = "user_param0"  type="text" label="Enter sequenceIDs" help="see tip below" />
+ </when>
+ <when value="cached">
+    <param name = "cached_param0" type="data" label="Choose the step from which to get the sequence IDs"/> 
+ </when></conditional><conditional name="source1">
+    <param name="source1_source" type="select" label="resultType Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+      <param format="text" size = "150" name = "user_param1"  type="text" label="Enter database name" help="see tip below" />
+ </when>
+ <when value="cached">
+    <param name = "cached_param1" type="data" label="Choose the step from which to get the database name"/> 
+ </when></conditional>  
+</inputs>
+  <outputs>
+    <data format="tabular" name="output" />
+  </outputs>
+  <help>
+
+.. class:: infomark
+
+**TIP:** jobId type is xsd:string
+
+.. class:: infomark
+
+**TIP:** resultType type is xsd:string
+  </help>
+</tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/workflowclients/client_14.xml~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,431 @@
+<tool id="client_14" name="run">
+  <description> Client for operation : run , Web service: wublast.wublast_services </description>
+  <command interpreter="python">
+  	client_1.py
+	#if $cond_source.optional_param_source=="no":
+  	$output
+	$servicetype
+      $url
+      $method
+wublast.wublast_services         run
+	"_parameters|_sequence"
+	 #if $source0.source0_source=="user":
+	 $source0.user_param0
+	 #else:
+	 fileInput
+	 $source0.cached_param0
+	 #end if
+	"_parameters|_stype"
+	 #if $source1.source1_source=="user":
+	 $source1.user_param1
+	 #else:
+	 fileInput
+	 $source1.cached_param1
+	 #end if
+	"_parameters|_program"
+	 #if $source2.source2_source=="user":
+	 $source2.user_param2
+	 #else:
+	 fileInput
+	 $source2.cached_param2
+	 #end if
+	"_email"
+	 #if $source3.source3_source=="user":
+	 $source3.user_param3
+	 #else:
+	 fileInput
+	 $source3.cached_param3
+	 #end if
+	"_parameters|_database|_string|$|"
+	 #if $source4.source4_source=="user":
+	 $source4.user_param4
+	 #else:
+	 fileInput
+	 $source4.cached_param4
+	 #end if
+   	#else:
+  	$output
+	$servicetype
+      $url
+      $method
+wublast.wublast_services            run
+	"_parameters|_sequence"
+	 #if $source0.source0_source=="user":
+	 $source0.user_param0
+	 #else:
+	 fileInput
+	 $source0.cached_param0
+	 #end if
+	"_parameters|_stype"
+	 #if $source1.source1_source=="user":
+	 $source1.user_param1
+	 #else:
+	 fileInput
+	 $source1.cached_param1
+	 #end if
+	"_parameters|_program"
+	 #if $source2.source2_source=="user":
+	 $source2.user_param2
+	 #else:
+	 fileInput
+	 $source2.cached_param2
+	 #end if
+	"_email"
+	 #if $source3.source3_source=="user":
+	 $source3.user_param3
+	 #else:
+	 fileInput
+	 $source3.cached_param3
+	 #end if
+	"_parameters|_database|_string|$|"
+	 #if $source4.source4_source=="user":
+	 $source4.user_param4
+	 #else:
+	 fileInput
+	 $source4.cached_param4
+	 #end if
+	"_parameters|_sensitivity"
+	 #if $cond_source.source5.source5_source=="user":
+	 $cond_source.source5.user_param5
+	 #else:
+	 fileInput
+	 $cond_source.source5.cached_param5
+	 #end if
+	"_parameters|_topcombon"
+	 #if $cond_source.source6.source6_source=="user":
+	 $cond_source.source6.user_param6
+	 #else:
+	 fileInput
+	 $cond_source.source6.cached_param6
+	 #end if
+	"_parameters|_filter"
+	 #if $cond_source.source7.source7_source=="user":
+	 $cond_source.source7.user_param7
+	 #else:
+	 fileInput
+	 $cond_source.source7.cached_param7
+	 #end if
+	"_parameters|_alignments"
+	 #if $cond_source.source8.source8_source=="user":
+	 $cond_source.source8.user_param8
+	 #else:
+	 fileInput
+	 $cond_source.source8.cached_param8
+	 #end if
+	"_parameters|_scores"
+	 #if $cond_source.source9.source9_source=="user":
+	 $cond_source.source9.user_param9
+	 #else:
+	 fileInput
+	 $cond_source.source9.cached_param9
+	 #end if
+	"_parameters|_viewfilter"
+	 #if $cond_source.source10.source10_source=="user":
+	 $cond_source.source10.user_param10
+	 #else:
+	 fileInput
+	 $cond_source.source10.cached_param10
+	 #end if
+	"_parameters|_sort"
+	 #if $cond_source.source11.source11_source=="user":
+	 $cond_source.source11.user_param11
+	 #else:
+	 fileInput
+	 $cond_source.source11.cached_param11
+	 #end if
+	"_parameters|_strand"
+	 #if $cond_source.source12.source12_source=="user":
+	 $cond_source.source12.user_param12
+	 #else:
+	 fileInput
+	 $cond_source.source12.cached_param12
+	 #end if
+	"_parameters|_align"
+	 #if $cond_source.source13.source13_source=="user":
+	 $cond_source.source13.user_param13
+	 #else:
+	 fileInput
+	 $cond_source.source13.cached_param13
+	 #end if
+	"_parameters|_matrix"
+	 #if $cond_source.source14.source14_source=="user":
+	 $cond_source.source14.user_param14
+	 #else:
+	 fileInput
+	 $cond_source.source14.cached_param14
+	 #end if
+	"_title"
+	 #if $cond_source.source15.source15_source=="user":
+	 $cond_source.source15.user_param15
+	 #else:
+	 fileInput
+	 $cond_source.source15.cached_param15
+	 #end if
+	"_parameters|_stats"
+	 #if $cond_source.source16.source16_source=="user":
+	 $cond_source.source16.user_param16
+	 #else:
+	 fileInput
+	 $cond_source.source16.cached_param16
+	 #end if
+	"_parameters|_exp"
+	 #if $cond_source.source17.source17_source=="user":
+	 $cond_source.source17.user_param17
+	 #else:
+	 fileInput
+	 $cond_source.source17.cached_param17
+	 #end if
+   	#end if
+</command>
+  <inputs>
+     <param name="servicetype" type="hidden" value="SOAP" />
+     <param name="url" type="hidden" value="http://www.cs.uga.edu/~guttula/wublast.wsdl" />
+     <param name="method" type="hidden" value="run" />
+<conditional name="source0">
+    <param name="source0_source" type="select" label="sequence Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+      <param format="text" size = "150" name = "user_param0"  type="text" label="Enter sequence" help="see tip below" />
+ </when>
+ <when value="cached">
+    <param name = "cached_param0" type="data" label="Choose the step from which to get the parameter sequence"/> 
+ </when>
+   </conditional><conditional name="source1">
+    <param name="source1_source" type="select" label="stype Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+      <param format="text" size = "150" name = "user_param1"  type="text" label="Enter stype" help="see tip below" />
+ </when>
+ <when value="cached">
+    <param name = "cached_param1" type="data" label="Choose the step from which to get the parameter stype"/> 
+ </when>
+   </conditional><conditional name="source2">
+    <param name="source2_source" type="select" label="program Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+      <param format="text" size = "150" name = "user_param2"  type="text" label="Enter program" help="see tip below" />
+ </when>
+ <when value="cached">
+    <param name = "cached_param2" type="data" label="Choose the step from which to get the parameter program"/> 
+ </when>
+   </conditional><conditional name="source3">
+    <param name="source3_source" type="select" label="email Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+      <param format="text" size = "150" name = "user_param3"  type="text" label="Enter email" help="see tip below" />
+ </when>
+ <when value="cached">
+    <param name = "cached_param3" type="data" label="Choose the step from which to get the parameter email"/> 
+ </when>
+   </conditional><conditional name="source4">
+    <param name="source4_source" type="select" label="database Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+      <param format="text" size = "150" name = "user_param4"  type="text" label="Enter database" help="see tip below" />
+ </when>
+ <when value="cached">
+    <param name = "cached_param4" type="data" label="Choose the step from which to get the parameter database"/> 
+ </when>
+   </conditional>  <conditional name="cond_source">
+  <param name="optional_param_source" type="select" label="Display Additional Parameters"> 
+ <option value="no" selected="true">no</option> 
+ <option value="yes">yes</option> 
+ </param> 
+    <when value="no"> 
+     </when>
+    <when value="yes"> 
+
+<conditional name="source5">
+  <param name="source5_source" type="select" label="sensitivity Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param5"  type="text" label="Enter sensitivity" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param5" type="data" label="Choose the step from which to get the parameter sensitivity"/> 
+  </when>
+   </conditional>
+
+<conditional name="source6">
+  <param name="source6_source" type="select" label="topcombon Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param6"  type="text" label="Enter topcombon" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param6" type="data" label="Choose the step from which to get the parameter topcombon"/> 
+  </when>
+   </conditional>
+
+<conditional name="source7">
+  <param name="source7_source" type="select" label="filter Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param7"  type="text" label="Enter filter" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param7" type="data" label="Choose the step from which to get the parameter filter"/> 
+  </when>
+   </conditional>
+
+<conditional name="source8">
+  <param name="source8_source" type="select" label="alignments Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param8"  type="text" label="Enter alignments" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param8" type="data" label="Choose the step from which to get the parameter alignments"/> 
+  </when>
+   </conditional>
+
+<conditional name="source9">
+  <param name="source9_source" type="select" label="scores Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param9"  type="text" label="Enter scores" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param9" type="data" label="Choose the step from which to get the parameter scores"/> 
+  </when>
+   </conditional>
+
+<conditional name="source10">
+  <param name="source10_source" type="select" label="viewfilter Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param10"  type="text" label="Enter viewfilter" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param10" type="data" label="Choose the step from which to get the parameter viewfilter"/> 
+  </when>
+   </conditional>
+
+<conditional name="source11">
+  <param name="source11_source" type="select" label="sort Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param11"  type="text" label="Enter sort" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param11" type="data" label="Choose the step from which to get the parameter sort"/> 
+  </when>
+   </conditional>
+
+<conditional name="source12">
+  <param name="source12_source" type="select" label="strand Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param12"  type="text" label="Enter strand" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param12" type="data" label="Choose the step from which to get the parameter strand"/> 
+  </when>
+   </conditional>
+
+<conditional name="source13">
+  <param name="source13_source" type="select" label="align Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param13"  type="text" label="Enter align" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param13" type="data" label="Choose the step from which to get the parameter align"/> 
+  </when>
+   </conditional>
+
+<conditional name="source14">
+  <param name="source14_source" type="select" label="matrix Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param14"  type="text" label="Enter matrix" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param14" type="data" label="Choose the step from which to get the parameter matrix"/> 
+  </when>
+   </conditional>
+
+<conditional name="source15">
+  <param name="source15_source" type="select" label="title Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param15"  type="text" label="Enter title" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param15" type="data" label="Choose the step from which to get the parameter title"/> 
+  </when>
+   </conditional>
+
+<conditional name="source16">
+  <param name="source16_source" type="select" label="stats Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param16"  type="text" label="Enter stats" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param16" type="data" label="Choose the step from which to get the parameter stats"/> 
+  </when>
+   </conditional>
+
+<conditional name="source17">
+  <param name="source17_source" type="select" label="exp Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param17"  type="text" label="Enter exp" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param17" type="data" label="Choose the step from which to get the parameter exp"/> 
+  </when>
+   </conditional>
+ </when>
+ </conditional>
+</inputs>
+  <outputs>
+    <data format="tabular" name="output" />
+  </outputs>
+  <help>
+
+.. class:: infomark
+
+**TIP:** About sequence: type is String
+
+.. class:: infomark
+
+**TIP:** About stype: type is String
+
+.. class:: infomark
+
+**TIP:** About program: type is String
+
+.. class:: infomark
+
+**TIP:** About email: type is String
+
+.. class:: infomark
+
+**TIP:** About database: type is String
+  </help>
+</tool>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/workflowclients/client_16.xml~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,431 @@
+<tool id="client_16" name="run">
+  <description> Client for operation : run , Web service: wublast.wublast_services </description>
+  <command interpreter="python">
+  	client_2.py
+	#if $cond_source.optional_param_source=="no":
+  	$output
+	$servicetype
+      $url
+      $method
+wublast.wublast_services         run
+	"_parameters|_sequence"
+	 #if $source0.source0_source=="user":
+	 $source0.user_param0
+	 #else:
+	 fileInput
+	 $source0.cached_param0
+	 #end if
+	"_parameters|_stype"
+	 #if $source1.source1_source=="user":
+	 $source1.user_param1
+	 #else:
+	 fileInput
+	 $source1.cached_param1
+	 #end if
+	"_parameters|_program"
+	 #if $source2.source2_source=="user":
+	 $source2.user_param2
+	 #else:
+	 fileInput
+	 $source2.cached_param2
+	 #end if
+	"_email"
+	 #if $source3.source3_source=="user":
+	 $source3.user_param3
+	 #else:
+	 fileInput
+	 $source3.cached_param3
+	 #end if
+	"_parameters|_database|_string|$|"
+	 #if $source4.source4_source=="user":
+	 $source4.user_param4
+	 #else:
+	 fileInput
+	 $source4.cached_param4
+	 #end if
+   	#else:
+  	$output
+	$servicetype
+      $url
+      $method
+wublast.wublast_services            run
+	"_parameters|_sequence"
+	 #if $source0.source0_source=="user":
+	 $source0.user_param0
+	 #else:
+	 fileInput
+	 $source0.cached_param0
+	 #end if
+	"_parameters|_stype"
+	 #if $source1.source1_source=="user":
+	 $source1.user_param1
+	 #else:
+	 fileInput
+	 $source1.cached_param1
+	 #end if
+	"_parameters|_program"
+	 #if $source2.source2_source=="user":
+	 $source2.user_param2
+	 #else:
+	 fileInput
+	 $source2.cached_param2
+	 #end if
+	"_email"
+	 #if $source3.source3_source=="user":
+	 $source3.user_param3
+	 #else:
+	 fileInput
+	 $source3.cached_param3
+	 #end if
+	"_parameters|_database|_string|$|"
+	 #if $source4.source4_source=="user":
+	 $source4.user_param4
+	 #else:
+	 fileInput
+	 $source4.cached_param4
+	 #end if
+	"_parameters|_sensitivity"
+	 #if $cond_source.source5.source5_source=="user":
+	 $cond_source.source5.user_param5
+	 #else:
+	 fileInput
+	 $cond_source.source5.cached_param5
+	 #end if
+	"_parameters|_topcombon"
+	 #if $cond_source.source6.source6_source=="user":
+	 $cond_source.source6.user_param6
+	 #else:
+	 fileInput
+	 $cond_source.source6.cached_param6
+	 #end if
+	"_parameters|_filter"
+	 #if $cond_source.source7.source7_source=="user":
+	 $cond_source.source7.user_param7
+	 #else:
+	 fileInput
+	 $cond_source.source7.cached_param7
+	 #end if
+	"_parameters|_alignments"
+	 #if $cond_source.source8.source8_source=="user":
+	 $cond_source.source8.user_param8
+	 #else:
+	 fileInput
+	 $cond_source.source8.cached_param8
+	 #end if
+	"_parameters|_scores"
+	 #if $cond_source.source9.source9_source=="user":
+	 $cond_source.source9.user_param9
+	 #else:
+	 fileInput
+	 $cond_source.source9.cached_param9
+	 #end if
+	"_parameters|_viewfilter"
+	 #if $cond_source.source10.source10_source=="user":
+	 $cond_source.source10.user_param10
+	 #else:
+	 fileInput
+	 $cond_source.source10.cached_param10
+	 #end if
+	"_parameters|_sort"
+	 #if $cond_source.source11.source11_source=="user":
+	 $cond_source.source11.user_param11
+	 #else:
+	 fileInput
+	 $cond_source.source11.cached_param11
+	 #end if
+	"_parameters|_strand"
+	 #if $cond_source.source12.source12_source=="user":
+	 $cond_source.source12.user_param12
+	 #else:
+	 fileInput
+	 $cond_source.source12.cached_param12
+	 #end if
+	"_parameters|_align"
+	 #if $cond_source.source13.source13_source=="user":
+	 $cond_source.source13.user_param13
+	 #else:
+	 fileInput
+	 $cond_source.source13.cached_param13
+	 #end if
+	"_parameters|_matrix"
+	 #if $cond_source.source14.source14_source=="user":
+	 $cond_source.source14.user_param14
+	 #else:
+	 fileInput
+	 $cond_source.source14.cached_param14
+	 #end if
+	"_title"
+	 #if $cond_source.source15.source15_source=="user":
+	 $cond_source.source15.user_param15
+	 #else:
+	 fileInput
+	 $cond_source.source15.cached_param15
+	 #end if
+	"_parameters|_stats"
+	 #if $cond_source.source16.source16_source=="user":
+	 $cond_source.source16.user_param16
+	 #else:
+	 fileInput
+	 $cond_source.source16.cached_param16
+	 #end if
+	"_parameters|_exp"
+	 #if $cond_source.source17.source17_source=="user":
+	 $cond_source.source17.user_param17
+	 #else:
+	 fileInput
+	 $cond_source.source17.cached_param17
+	 #end if
+   	#end if
+</command>
+  <inputs>
+     <param name="servicetype" type="hidden" value="SOAP" />
+     <param name="url" type="hidden" value="http://www.cs.uga.edu/~guttula/wublast.wsdl" />
+     <param name="method" type="hidden" value="run" />
+<conditional name="source0">
+    <param name="source0_source" type="select" label="sequence Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+      <param format="text" size = "150" name = "user_param0"  type="text" label="Enter sequence" help="see tip below" />
+ </when>
+ <when value="cached">
+    <param name = "cached_param0" type="data" label="Choose the step from which to get the parameter sequence"/> 
+ </when>
+   </conditional><conditional name="source1">
+    <param name="source1_source" type="select" label="stype Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+      <param format="text" size = "150" name = "user_param1"  type="text" label="Enter stype" help="see tip below" />
+ </when>
+ <when value="cached">
+    <param name = "cached_param1" type="data" label="Choose the step from which to get the parameter stype"/> 
+ </when>
+   </conditional><conditional name="source2">
+    <param name="source2_source" type="select" label="program Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+      <param format="text" size = "150" name = "user_param2"  type="text" label="Enter program" help="see tip below" />
+ </when>
+ <when value="cached">
+    <param name = "cached_param2" type="data" label="Choose the step from which to get the parameter program"/> 
+ </when>
+   </conditional><conditional name="source3">
+    <param name="source3_source" type="select" label="email Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+      <param format="text" size = "150" name = "user_param3"  type="text" label="Enter email" help="see tip below" />
+ </when>
+ <when value="cached">
+    <param name = "cached_param3" type="data" label="Choose the step from which to get the parameter email"/> 
+ </when>
+   </conditional><conditional name="source4">
+    <param name="source4_source" type="select" label="database Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+      <param format="text" size = "150" name = "user_param4"  type="text" label="Enter database" help="see tip below" />
+ </when>
+ <when value="cached">
+    <param name = "cached_param4" type="data" label="Choose the step from which to get the parameter database"/> 
+ </when>
+   </conditional>  <conditional name="cond_source">
+  <param name="optional_param_source" type="select" label="Display Additional Parameters"> 
+ <option value="no" selected="true">no</option> 
+ <option value="yes">yes</option> 
+ </param> 
+    <when value="no"> 
+     </when>
+    <when value="yes"> 
+
+<conditional name="source5">
+  <param name="source5_source" type="select" label="sensitivity Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param5"  type="text" label="Enter sensitivity" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param5" type="data" label="Choose the step from which to get the parameter sensitivity"/> 
+  </when>
+   </conditional>
+
+<conditional name="source6">
+  <param name="source6_source" type="select" label="topcombon Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param6"  type="text" label="Enter topcombon" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param6" type="data" label="Choose the step from which to get the parameter topcombon"/> 
+  </when>
+   </conditional>
+
+<conditional name="source7">
+  <param name="source7_source" type="select" label="filter Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param7"  type="text" label="Enter filter" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param7" type="data" label="Choose the step from which to get the parameter filter"/> 
+  </when>
+   </conditional>
+
+<conditional name="source8">
+  <param name="source8_source" type="select" label="alignments Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param8"  type="text" label="Enter alignments" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param8" type="data" label="Choose the step from which to get the parameter alignments"/> 
+  </when>
+   </conditional>
+
+<conditional name="source9">
+  <param name="source9_source" type="select" label="scores Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param9"  type="text" label="Enter scores" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param9" type="data" label="Choose the step from which to get the parameter scores"/> 
+  </when>
+   </conditional>
+
+<conditional name="source10">
+  <param name="source10_source" type="select" label="viewfilter Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param10"  type="text" label="Enter viewfilter" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param10" type="data" label="Choose the step from which to get the parameter viewfilter"/> 
+  </when>
+   </conditional>
+
+<conditional name="source11">
+  <param name="source11_source" type="select" label="sort Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param11"  type="text" label="Enter sort" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param11" type="data" label="Choose the step from which to get the parameter sort"/> 
+  </when>
+   </conditional>
+
+<conditional name="source12">
+  <param name="source12_source" type="select" label="strand Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param12"  type="text" label="Enter strand" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param12" type="data" label="Choose the step from which to get the parameter strand"/> 
+  </when>
+   </conditional>
+
+<conditional name="source13">
+  <param name="source13_source" type="select" label="align Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param13"  type="text" label="Enter align" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param13" type="data" label="Choose the step from which to get the parameter align"/> 
+  </when>
+   </conditional>
+
+<conditional name="source14">
+  <param name="source14_source" type="select" label="matrix Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param14"  type="text" label="Enter matrix" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param14" type="data" label="Choose the step from which to get the parameter matrix"/> 
+  </when>
+   </conditional>
+
+<conditional name="source15">
+  <param name="source15_source" type="select" label="title Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param15"  type="text" label="Enter title" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param15" type="data" label="Choose the step from which to get the parameter title"/> 
+  </when>
+   </conditional>
+
+<conditional name="source16">
+  <param name="source16_source" type="select" label="stats Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param16"  type="text" label="Enter stats" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param16" type="data" label="Choose the step from which to get the parameter stats"/> 
+  </when>
+   </conditional>
+
+<conditional name="source17">
+  <param name="source17_source" type="select" label="exp Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param17"  type="text" label="Enter exp" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param17" type="data" label="Choose the step from which to get the parameter exp"/> 
+  </when>
+   </conditional>
+ </when>
+ </conditional>
+</inputs>
+  <outputs>
+    <data format="tabular" name="output" />
+  </outputs>
+  <help>
+
+.. class:: infomark
+
+**TIP:** About sequence: type is String
+
+.. class:: infomark
+
+**TIP:** About stype: type is String
+
+.. class:: infomark
+
+**TIP:** About program: type is String
+
+.. class:: infomark
+
+**TIP:** About email: type is String
+
+.. class:: infomark
+
+**TIP:** About database: type is String
+  </help>
+</tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/workflowclients/client_17.xml~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,62 @@
+<tool id="client_17" name="run">
+  <description> Client for operation : run , Web service: wublast.wublast_services </description>
+  <command interpreter="python">
+ #if $cond_source.optional_param_source=="no" #client_3.py $output $servicetype wublast.wublast_services  run	"_parameters|_sequence" $param0	"_parameters|_stype" $param1	"_parameters|_program" $param2	"_email" $param3	"_parameters|_database|_string|$|" $param4 #else #client_3.py $output $servicetype wublast.wublast_services    run
+	"_parameters|_sequence" $param0	"_parameters|_stype" $param1	"_parameters|_program" $param2	"_email" $param3	"_parameters|_database|_string|$|" $param4	"_parameters|_sensitivity" $param5	"_parameters|_topcombon" $param6	"_parameters|_filter" $param7	"_parameters|_alignments" $param8	"_parameters|_scores" $param9	"_parameters|_viewfilter" $param10	"_parameters|_sort" $param11	"_parameters|_strand" $param12	"_parameters|_align" $param13	"_parameters|_matrix" $param14	"_title" $param15	"_parameters|_stats" $param16	"_parameters|_exp" $param17 #end if 
+</command>
+  <inputs>
+    <param name="servicetype" type="hidden" value="SOAP" />
+<param format="text" size = "150" name = "param0"  type="text" label="Enter sequence" help="see tip below" />
+<param format="text" size = "150" name = "param1"  type="text" label="Enter stype" help="see tip below" />
+<param format="text" size = "150" name = "param2"  type="text" label="Enter program" help="see tip below" />
+<param format="text" size = "150" name = "param3"  type="text" label="Enter email" help="see tip below" />
+<param format="text" size = "150" name = "param4"  type="text" label="Enter database" help="see tip below" />
+
+ <conditional name="cond_source"> 
+ <param name="optional_param_source" type="select" label="Show Additional Parameters">
+ <option value="no" selected="true">no</option> 
+ <option value="yes">yes</option> 
+ </param>
+<when value="no"> 
+ </when><when value="yes"> 
+<param format="text" size = "150" name = "param5"  type="text" label="Enter sensitivity" help="see tip below" />
+<param format="text" size = "150" name = "param6"  type="text" label="Enter topcombon" help="see tip below" />
+<param format="text" size = "150" name = "param7"  type="text" label="Enter filter" help="see tip below" />
+<param format="text" size = "150" name = "param8"  type="text" label="Enter alignments" help="see tip below" />
+<param format="text" size = "150" name = "param9"  type="text" label="Enter scores" help="see tip below" />
+<param format="text" size = "150" name = "param10"  type="text" label="Enter viewfilter" help="see tip below" />
+<param format="text" size = "150" name = "param11"  type="text" label="Enter sort" help="see tip below" />
+<param format="text" size = "150" name = "param12"  type="text" label="Enter strand" help="see tip below" />
+<param format="text" size = "150" name = "param13"  type="text" label="Enter align" help="see tip below" />
+<param format="text" size = "150" name = "param14"  type="text" label="Enter matrix" help="see tip below" />
+<param format="text" size = "150" name = "param15"  type="text" label="Enter title" help="see tip below" />
+<param format="text" size = "150" name = "param16"  type="text" label="Enter stats" help="see tip below" />
+<param format="text" size = "150" name = "param17"  type="text" label="Enter exp" help="see tip below" />
+</when>
+</conditional></inputs>
+  <outputs>
+    <data format="tabular" name="output" />
+  </outputs>
+  <help>
+
+.. class:: infomark
+
+**TIP:** About sequence: type is String
+
+.. class:: infomark
+
+**TIP:** About stype: type is String
+
+.. class:: infomark
+
+**TIP:** About program: type is String
+
+.. class:: infomark
+
+**TIP:** About email: type is String
+
+.. class:: infomark
+
+**TIP:** About database: type is String
+  </help>
+</tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/workflowclients/client_2.py~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,160 @@
+# To change this template, choose Tools | Templates
+# and open the template in the editor.
+import warnings
+with warnings.catch_warnings():
+    warnings.simplefilter("ignore")
+
+    import sys
+    import os
+    import time
+    galaxyhome=os.environ.get('GALAXY_HOME')
+    sys.path.append(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator/')    
+    from creatorEngineComplex import *
+    from wsdl2path import *
+    from paramConverter import *
+    from ZSI.writer import SoapWriter
+    from collections import deque
+
+__author__="Shefali Shastri"
+
+def main():
+    """
+
+    This script takes the values of the input parameters of the
+    web service from the user and invokes the web service.
+    The URL to the WSDL is the command line argument
+
+    """
+    with warnings.catch_warnings():
+        warnings.simplefilter("ignore")
+
+        #galaxyhome=os.environ.get('GALAXY_HOME')
+        #sys.path.append(galaxyhome+'/tools/SOAPclient/clients/clientGenerator/')
+        os.chdir(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator/')
+        webservice = str(sys.argv[5])
+        #print 'WS ', webservice
+        operation = str(sys.argv[6])
+        #print 'OP ',operation
+        resultfile=open(sys.argv[1],'w')
+        length=len(sys.argv)
+        inputdict={}
+        i=7
+        test=ClientCreator()
+        while(i>=7 and i<(length-1)):
+            key=sys.argv[i]
+            print 'key is : ',key
+            #if(sys.argv[i+1]=='ZSI.TC.String'):
+            val=sys.argv[i+1]
+            while(val.find('__at__')>-1):
+                vlist = val.split('__at__')
+                val = '@'.join(vlist)
+            while(val.find('__sq__')>-1):
+                vlist = val.split('__sq__')
+                val = ''.join(vlist)
+            while(val.find('__gt__')>-1):
+                vlist = val.split('__gt__')
+                val = '>'.join(vlist)
+            while(val.find('***')>-1):
+                vlist = val.split('***')
+                val = '\n'.join(vlist)
+            while(val.find('**')>-1):
+                vlist = val.split('**')
+                val = ' '.join(vlist)
+            while(val.find('__ob__')>-1):
+                vlist = val.split('__ob__')
+                val = '['.join(vlist)
+            while(val.find('__cb__')>-1):
+                vlist = val.split('__cb__')
+                val = ']'.join(vlist)
+            
+            print 'value is : ',val
+            
+                #if(val.find('__sq__')>-1):
+                 #   j=i+4
+                  #  val=val.lstrip('__sq__')
+                   # while(str(sys.argv[j]).find('__sq__')==-1):
+                    #    val=val+' '+sys.argv[j]
+                     #   j=j+1
+                    #val=val+' '+(str(sys.argv[j]).rstrip('__sq__'))
+                    #i=j-3
+
+            #elif((sys.argv[i+1]=='ZSI.TC.Integer')or (sys.argv[i+1]=='ZSI.TCnumbers.Iint')):
+             #   val=int(sys.argv[i+1])
+            #elif(sys.argv[i+1]=='ZSI.TC.Decimal'):
+             #   val=float(sys.argv[i+1])
+            #elif(sys.argv[i+2]=='Yes'):
+             #   valFile=open(sys.argv[i+3],'r')
+              #  val=valFile.read()
+            #else:
+             #   val=sys.argv[i+1]
+            if val == 'fileInput':
+                f = open(sys.argv[i+2])
+                #line = f.readline()
+                val = ''
+                #for j in line:
+                 #   val = val+j
+                #linestripped = line.strip('\n')
+                for line in f:
+                    #line = f.readline().strip('\n')
+                    #line = line.strip(' ')
+                    
+                    val = val+line
+                val = val.strip("\n")
+                print val
+                i = i+1
+                
+            if(val != "0"): 
+                inputdict[key] = val
+            #resultfile.write('value is :'+ val+'\n')
+            
+            i=i+2
+        print inputdict
+        if len(inputdict) == 0:
+            print 'empty inputs'
+            inputdic = {}
+        else:
+            inputdic = flat2nestedDict(inputdict)    
+        print 'the inputs are',inputdic
+        result = None
+        try:
+            result = test.invokeOp(operation,webservice,inputdic)
+        except:
+            pass
+        print 'The result before is ',result
+        #print ps
+        while result == None:
+            time.sleep(2)
+            print 'in loop'
+            result = test.invokeOp(operation,webservice,inputdic)
+        
+        print 'The result after is',result
+
+        # Writing the output to he o/p file when the result is parsed
+        for r in result:
+            if type(result[r])==list:
+                    for i in result[r]:
+                            resultfile.write(str(i)+'\n')
+                            print str(i)
+            else:
+                    resultfile.write(str(result[r])+'\n')
+
+        #Writes the result without parsinf in the XML format it gets.
+        #sw = SoapWriter(header=False, envelope=False);
+        #res = test.opname2outputClassOb(operation,webservice)
+        #res_tc = getattr(res,'typecode')
+        #ofwhat = res_tc.ofwhat;
+        #for tc in ofwhat :
+        #    sw.serialize(getattr(result, tc.aname), tc);
+        #    doc = sw.dom.getDocument();
+        #    fp = open(sys.argv[1], 'w');
+        #    try :
+        #        doc.writexml(fp, '\t', '', '\n');
+        #    finally :
+        #        fp.close();
+    
+
+
+
+if __name__ == "__main__":
+    main();
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/workflowclients/client_2.xml~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,239 @@
+<tool id="client_2" name="genesbymolecularweight    ">
+  <description> Client for method: genesbymolecularweight , Web service: http://eupathdb.org/webservices/GeneQuestions/GenesByMolecularWeight.wadl </description>
+  <command interpreter="python"> 
+  	client_1.py 
+	#if $cond_source.optional_param_source=="no":
+  	$output 
+	http://eupathdb.org/webservices/GeneQuestions/GenesByMolecularWeight.xml
+	organism
+	 #if $source0.source0_source=="user": 
+	 $source0.user_param0 
+         #else: 
+	 $source0.cached_param0 
+	 #end if
+	min_molecular_weight
+	 #if $source1.source1_source=="user":
+	 $source1.user_param1 
+	 #else:
+	 $source1.cached_param1 
+	 #end if
+	max_molecular_weight
+	 #if $source2.source2_source=="user":
+ 	 $source2.user_param2 
+	 #else:
+	 $source2.cached_param2 
+	 #end if
+   	#else:
+	organism
+	 #if $source0.source0_source=="user": 
+	 $source0.user_param0 
+         #else: 
+	 $source0.cached_param0 
+	 #end if
+	min_molecular_weight
+	 #if $source1.source1_source=="user":
+	 $source1.user_param1 
+	 #else:
+	 $source1.cached_param1 
+	 #end if
+	max_molecular_weight
+	 #if $source2.source2_source=="user":
+ 	 $source2.user_param2 
+	 #else:
+	 $source2.cached_param2 
+	 #end if
+	o-fields
+	 #if $cond_source.source3.source3_source=="user": 
+	 $cond_source.source3.user_param3 
+	 #else:
+	 $cond_source.source3.cached_param3 
+	 #end if
+	o-tables
+    	 #if $cond_source.source4.source4_source=="user":
+     	 $cond_source.source4.user_param4 
+    	 #else:
+     	 $cond_source.source4.cached_param4 
+    	 #end if 
+   	#end if
+</command>
+  <inputs>
+<conditional name="source0">
+    <param name="source0_source" type="select" label="Organism Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+    <param name="user_param0" type="select" label="Select Organism" help="see tip below">
+      <option value="Entamoeba**dispar" >Entamoeba dispar</option>
+       <option value="Entamoeba**histolytica" >Entamoeba histolytica</option>
+       <option value="Entamoeba**invadens" >Entamoeba invadens</option>
+       <option value="Cryptosporidium**parvum" >Cryptosporidium parvum</option>
+       <option value="Cryptosporidium**hominis" >Cryptosporidium hominis</option>
+       <option value="Cryptosporidium**muris" >Cryptosporidium muris</option>
+       <option value="Giardia**Assemblage**A**isolate**WB" >Giardia Assemblage A isolate WB</option>
+       <option value="Giardia**Assemblage**B**isolate**GS" >Giardia Assemblage B isolate GS</option>
+       <option value="Giardia**Assemblage**E**isolate**P15" >Giardia Assemblage E isolate P15</option>
+       <option value="Encephalitozoon**cuniculi" >Encephalitozoon cuniculi</option>
+       <option value="Encephalitozoon**intestinalis" >Encephalitozoon intestinalis</option>
+       <option value="Plasmodium**falciparum" >Plasmodium falciparum</option>
+       <option value="Plasmodium**vivax" >Plasmodium vivax</option>
+       <option value="Plasmodium**yoelii" >Plasmodium yoelii</option>
+       <option value="Plasmodium**berghei" >Plasmodium berghei</option>
+       <option value="Plasmodium**chabaudi" >Plasmodium chabaudi</option>
+       <option value="Plasmodium**knowlesi" >Plasmodium knowlesi</option>
+       <option value="Toxoplasma**gondii" >Toxoplasma gondii</option>
+       <option value="Neospora**caninum" >Neospora caninum</option>
+       <option value="Trichomonas**vaginalis" >Trichomonas vaginalis</option>
+       <option value="Trypanosoma**cruzi" >Trypanosoma cruzi</option>
+       <option value="Leishmania**braziliensis" >Leishmania braziliensis</option>
+       <option value="Leishmania**infantum" >Leishmania infantum</option>
+       <option value="Leishmania**major" >Leishmania major</option>
+       <option value="Leishmania**mexicana" >Leishmania mexicana</option>
+       <option value="Trypanosoma**brucei" >Trypanosoma brucei</option>
+       <option value="Trypanosoma**congolense" >Trypanosoma congolense</option>
+       <option value="Trypanosoma**vivax" >Trypanosoma vivax</option>
+     </param> 
+ </when>
+ <when value="cached">
+    <param name = "cached_param0" type="data" label="Choose the step from which to get the parameter Organism"/> 
+ </when></conditional><conditional name="source1">
+    <param name="source1_source" type="select" label="Min Molecular Weight (Daltons) Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+      <param format="text" size = "150" name = "user_param1"  type="text" label="Enter Min Molecular Weight (Daltons)" help="see tip below" />
+ </when>
+ <when value="cached">
+    <param name = "cached_param1" type="data" label="Choose the step from which to get the parameter Min Molecular Weight (Daltons)"/> 
+ </when></conditional><conditional name="source2">
+    <param name="source2_source" type="select" label="Max Molecular Weight (Daltons) Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+      <param format="text" size = "150" name = "user_param2"  type="text" label="Enter Max Molecular Weight (Daltons)" help="see tip below" />
+ </when>
+ <when value="cached">
+    <param name = "cached_param2" type="data" label="Choose the step from which to get the parameter Max Molecular Weight (Daltons)"/> 
+ </when></conditional>  <conditional name="cond_source">
+  <param name="optional_param_source" type="select" label="Display Additional Parameters"> 
+ <option value="no" selected="true">no</option> 
+ <option value="yes">yes</option> 
+ </param> 
+    <when value="no"> 
+     </when>
+    <when value="yes"> 
+
+<conditional name="source3">
+  <param name="source3_source" type="select" label="Output Fields Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param name="user_param3" type="select" label="Select Output Fields" help="see tip below">
+ <option value="all" >all</option>
+  <option value="none" selected="true">none</option>
+  <option value="primary_key" >primary_key</option>
+  <option value="formatted_gene_id" >formatted_gene_id</option>
+  <option value="external_db_name" >external_db_name</option>
+  <option value="sequence_id" >sequence_id</option>
+  <option value="chromosome" >chromosome</option>
+  <option value="location_text" >location_text</option>
+  <option value="strand" >strand</option>
+  <option value="gene_type" >gene_type</option>
+  <option value="exon_count" >exon_count</option>
+  <option value="transcript_length" >transcript_length</option>
+  <option value="cds_length" >cds_length</option>
+  <option value="product" >product</option>
+  <option value="protein_length" >protein_length</option>
+  <option value="tm_count" >tm_count</option>
+  <option value="molecular_weight" >molecular_weight</option>
+  <option value="isoelectric_point" >isoelectric_point</option>
+  <option value="ec_numbers_string" >ec_numbers_string</option>
+  <option value="ortholog_number" >ortholog_number</option>
+  <option value="paralog_number" >paralog_number</option>
+  <option value="orthomcl_name" >orthomcl_name</option>
+  <option value="signalp_scores" >signalp_scores</option>
+  <option value="signalp_peptide" >signalp_peptide</option>
+  <option value="ann_go_function" >ann_go_function</option>
+  <option value="ann_go_process" >ann_go_process</option>
+  <option value="ann_go_component" >ann_go_component</option>
+  <option value="pred_go_function" >pred_go_function</option>
+  <option value="pred_go_process" >pred_go_process</option>
+  <option value="pred_go_component" >pred_go_component</option>
+  <option value="organism" >organism</option>
+  <option value="protein_sequence" >protein_sequence</option>
+  <option value="transcript_sequence" >transcript_sequence</option>
+  <option value="cds" >cds</option>
+  <option value="wdk_weight" >wdk_weight</option>
+     </param> 
+ </when>
+<when value="cached">
+ <param name = "cached_param3" type="data" label="Choose the step from which to get the parameter Output Fields"/> 
+  </when></conditional>
+
+<conditional name="source4">
+  <param name="source4_source" type="select" label="Output Tables Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param name="user_param4" type="select" label="Select Output Tables" help="see tip below">
+ <option value="all" >all</option>
+  <option value="none" selected="true">none</option>
+  <option value="SNPs" >SNPs</option>
+  <option value="GeneModelDump" >GeneModelDump</option>
+  <option value="InterPro" >InterPro</option>
+  <option value="TMHMM" >TMHMM</option>
+  <option value="LowComplexity" >LowComplexity</option>
+  <option value="SignalP" >SignalP</option>
+  <option value="BlastP" >BlastP</option>
+  <option value="Genbank" >Genbank</option>
+  <option value="SageTags" >SageTags</option>
+  <option value="Notes" >Notes</option>
+  <option value="UserComments" >UserComments</option>
+  <option value="CommunityExpComments" >CommunityExpComments</option>
+  <option value="EcNumber" >EcNumber</option>
+  <option value="MassSpec" >MassSpec</option>
+  <option value="GoTerms" >GoTerms</option>
+  <option value="Aliases" >Aliases</option>
+  <option value="Phenotype" >Phenotype</option>
+  <option value="Y2hInteractions" >Y2hInteractions</option>
+  <option value="Orthologs" >Orthologs</option>
+  <option value="MetabolicPathways" >MetabolicPathways</option>
+  <option value="TaskComments" >TaskComments</option>
+  <option value="ArrayElements" >ArrayElements</option>
+  <option value="TwoChannelDiffExpr" >TwoChannelDiffExpr</option>
+  <option value="ProteinExpression" >ProteinExpression</option>
+  <option value="Mr4Reagents" >Mr4Reagents</option>
+  <option value="ProteinDatabase" >ProteinDatabase</option>
+  <option value="GeneLinkouts" >GeneLinkouts</option>
+  <option value="3dPreds" >3dPreds</option>
+  <option value="PdbSimilarities" >PdbSimilarities</option>
+  <option value="Epitopes" >Epitopes</option>
+  <option value="IsolateOverlap" >IsolateOverlap</option>
+     </param> 
+ </when>
+<when value="cached">
+ <param name = "cached_param4" type="data" label="Choose the step from which to get the parameter Output Tables"/> 
+  </when></conditional>
+ </when>
+ </conditional>
+</inputs>
+  <outputs>
+    <data format="tabular" name="output" />
+  </outputs>
+  <help>
+
+.. class:: infomark
+
+**TIP:** Organism type is xsd:string
+
+.. class:: infomark
+
+**TIP:** Min Molecular Weight (Daltons) type is xsd:string
+
+.. class:: infomark
+
+**TIP:** Max Molecular Weight (Daltons) type is xsd:string
+  </help>
+</tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/workflowclients/client_38.xml~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,279 @@
+<tool id="client_38" name="genesbygenetype    ">
+  <description> Client for method: genesbygenetype , Web service: http://eupathdb.org/eupathdb/webservices/GeneQuestions/GenesByGeneType.wadl </description>
+  <command interpreter="python">
+  	client_1.py
+	#if $cond_source.optional_param_source=="no":
+  	$output
+	$servicetype
+      $url
+        $method
+     http://eupathdb.org/webservices/GeneQuestions
+	organism
+	 #if $source0.source0_source=="user":
+	 $source0.user_param0
+	 #else:
+	 fileInput
+	 $source0.cached_param0
+	 #end if
+	includePseudogenes
+	 #if $source1.source1_source=="user":
+	 $source1.user_param1
+	 #else:
+	 fileInput
+	 $source1.cached_param1
+	 #end if
+	geneType
+	 #if $source2.source2_source=="user":
+	 $source2.user_param2
+	 #else:
+	 fileInput
+	 $source2.cached_param2
+	 #end if
+   	#else:
+  	$output
+	$servicetype
+    $url
+    $method
+http://eupathdb.org/webservices/GeneQuestions
+	organism
+	 #if $source0.source0_source=="user":
+	 $source0.user_param0
+	 #else:
+	 fileInput
+	 $source0.cached_param0
+	 #end if
+	includePseudogenes
+	 #if $source1.source1_source=="user":
+	 $source1.user_param1
+	 #else:
+	 fileInput
+	 $source1.cached_param1
+	 #end if
+	geneType
+	 #if $source2.source2_source=="user":
+	 $source2.user_param2
+	 #else:
+	 fileInput
+	 $source2.cached_param2
+	 #end if
+	o-fields
+	 #if $cond_source.source3.source3_source=="user":
+	 $cond_source.source3.user_param3
+	 #else:
+	 fileInput
+	 $cond_source.source3.cached_param3
+	 #end if
+	o-tables
+	 #if $cond_source.source4.source4_source=="user":
+	 $cond_source.source4.user_param4
+	 #else:
+	 fileInput
+	 $cond_source.source4.cached_param4
+	 #end if
+   	#end if
+</command>
+  <inputs>
+     <param name="servicetype" type="hidden" value="REST"/>
+     <param name="url" type="hidden" value="http://eupathdb.org/eupathdb/webservices/GeneQuestions/GenesByGeneType.wadl" />
+     <param name="method" type="hidden" value="http://eupathdb.org/webservices/GeneQuestions" />
+<conditional name="source0">
+    <param name="source0_source" type="select" label="Organism Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+    <param name="user_param0" type="select" label="Select Organism" help="see tip below">
+      <option value="Entamoeba**dispar" >Entamoeba dispar</option>
+       <option value="Entamoeba**histolytica" >Entamoeba histolytica</option>
+       <option value="Entamoeba**invadens" >Entamoeba invadens</option>
+       <option value="Cryptosporidium**parvum" >Cryptosporidium parvum</option>
+       <option value="Cryptosporidium**hominis" >Cryptosporidium hominis</option>
+       <option value="Cryptosporidium**muris" >Cryptosporidium muris</option>
+       <option value="Giardia**Assemblage**A**isolate**WB" >Giardia Assemblage A isolate WB</option>
+       <option value="Giardia**Assemblage**B**isolate**GS" >Giardia Assemblage B isolate GS</option>
+       <option value="Giardia**Assemblage**E**isolate**P15" >Giardia Assemblage E isolate P15</option>
+       <option value="Encephalitozoon**cuniculi" >Encephalitozoon cuniculi</option>
+       <option value="Encephalitozoon**intestinalis" >Encephalitozoon intestinalis</option>
+       <option value="Enterocytozoon**bieneusi" >Enterocytozoon bieneusi</option>
+       <option value="Babesia**bovis" >Babesia bovis</option>
+       <option value="Theileria**annulata" >Theileria annulata</option>
+       <option value="Theileria**parva" >Theileria parva</option>
+       <option value="Plasmodium**falciparum" >Plasmodium falciparum</option>
+       <option value="Plasmodium**vivax" >Plasmodium vivax</option>
+       <option value="Plasmodium**yoelii" >Plasmodium yoelii</option>
+       <option value="Plasmodium**berghei" >Plasmodium berghei</option>
+       <option value="Plasmodium**chabaudi" >Plasmodium chabaudi</option>
+       <option value="Plasmodium**knowlesi" >Plasmodium knowlesi</option>
+       <option value="Toxoplasma**gondii" >Toxoplasma gondii</option>
+       <option value="Neospora**caninum" >Neospora caninum</option>
+       <option value="Trichomonas**vaginalis" >Trichomonas vaginalis</option>
+       <option value="Trypanosoma**cruzi" >Trypanosoma cruzi</option>
+       <option value="Leishmania**braziliensis" >Leishmania braziliensis</option>
+       <option value="Leishmania**infantum" >Leishmania infantum</option>
+       <option value="Leishmania**major" >Leishmania major</option>
+       <option value="Leishmania**mexicana" >Leishmania mexicana</option>
+       <option value="Trypanosoma**brucei" >Trypanosoma brucei</option>
+       <option value="Trypanosoma**congolense" >Trypanosoma congolense</option>
+       <option value="Trypanosoma**vivax" >Trypanosoma vivax</option>
+     </param> 
+ </when>
+ <when value="cached">
+    <param name = "cached_param0" type="data" label="Choose the step from which to get the parameter Organism"/> 
+ </when></conditional><conditional name="source1">
+    <param name="source1_source" type="select" label="Include Pseudogenes Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+    <param name="user_param1" type="select" label="Select Include Pseudogenes" help="see tip below">
+      <option value="No" selected="true">No</option>
+       <option value="Yes" >Yes</option>
+       <option value="Pseudogenes**Only" >Pseudogenes Only</option>
+     </param> 
+ </when>
+ <when value="cached">
+    <param name = "cached_param1" type="data" label="Choose the step from which to get the parameter Include Pseudogenes"/> 
+ </when></conditional><conditional name="source2">
+    <param name="source2_source" type="select" label="Gene type Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+    <param name="user_param2" type="select" label="Select Gene type" help="see tip below">
+      <option value="protein**coding" selected="true">protein coding</option>
+       <option value="snRNA**encoding" >snRNA encoding</option>
+       <option value="tRNA**encoding" >tRNA encoding</option>
+       <option value="rRNA**encoding" >rRNA encoding</option>
+       <option value="misc**RNA" >misc RNA</option>
+       <option value="snoRNA**encoding" >snoRNA encoding</option>
+       <option value="SRP**RNA**encoding" >SRP RNA encoding</option>
+       <option value="RNase**P**RNA" >RNase P RNA</option>
+       <option value="RNase**MRP**RNA" >RNase MRP RNA</option>
+       <option value="repeat**region" >repeat region</option>
+       <option value="scRNA**encoding" >scRNA encoding</option>
+     </param> 
+ </when>
+ <when value="cached">
+    <param name = "cached_param2" type="data" label="Choose the step from which to get the parameter Gene type"/> 
+ </when></conditional>  <conditional name="cond_source">
+  <param name="optional_param_source" type="select" label="Display Additional Parameters"> 
+ <option value="no" selected="true">no</option> 
+ <option value="yes">yes</option> 
+ </param> 
+    <when value="no"> 
+     </when>
+    <when value="yes"> 
+
+<conditional name="source3">
+  <param name="source3_source" type="select" label="Output Fields Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param name="user_param3" type="select" label="Select Output Fields" help="see tip below">
+ <option value="all" >all</option>
+  <option value="none" selected="true">none</option>
+  <option value="primary_key" >primary_key</option>
+  <option value="formatted_gene_id" >formatted_gene_id</option>
+  <option value="sequence_id" >sequence_id</option>
+  <option value="chromosome" >chromosome</option>
+  <option value="chromosome_order_num" >chromosome_order_num</option>
+  <option value="location_text" >location_text</option>
+  <option value="strand" >strand</option>
+  <option value="gene_type" >gene_type</option>
+  <option value="exon_count" >exon_count</option>
+  <option value="transcript_length" >transcript_length</option>
+  <option value="cds_length" >cds_length</option>
+  <option value="product" >product</option>
+  <option value="protein_length" >protein_length</option>
+  <option value="tm_count" >tm_count</option>
+  <option value="molecular_weight" >molecular_weight</option>
+  <option value="isoelectric_point" >isoelectric_point</option>
+  <option value="ec_numbers_string" >ec_numbers_string</option>
+  <option value="ortholog_number" >ortholog_number</option>
+  <option value="paralog_number" >paralog_number</option>
+  <option value="orthomcl_name" >orthomcl_name</option>
+  <option value="signalp_scores" >signalp_scores</option>
+  <option value="signalp_peptide" >signalp_peptide</option>
+  <option value="ann_go_function" >ann_go_function</option>
+  <option value="ann_go_process" >ann_go_process</option>
+  <option value="ann_go_component" >ann_go_component</option>
+  <option value="pred_go_function" >pred_go_function</option>
+  <option value="pred_go_process" >pred_go_process</option>
+  <option value="pred_go_component" >pred_go_component</option>
+  <option value="organism" >organism</option>
+  <option value="is_pseudo" >is_pseudo</option>
+  <option value="protein_sequence" >protein_sequence</option>
+  <option value="transcript_sequence" >transcript_sequence</option>
+  <option value="cds" >cds</option>
+  <option value="wdk_weight" >wdk_weight</option>
+     </param> 
+ </when>
+<when value="cached">
+ <param name = "cached_param3" type="data" label="Choose the step from which to get the parameter Output Fields"/> 
+  </when></conditional>
+
+<conditional name="source4">
+  <param name="source4_source" type="select" label="Output Tables Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param name="user_param4" type="select" label="Select Output Tables" help="see tip below">
+ <option value="all" >all</option>
+  <option value="none" selected="true">none</option>
+  <option value="SNPs" >SNPs</option>
+  <option value="GeneModelDump" >GeneModelDump</option>
+  <option value="InterPro" >InterPro</option>
+  <option value="TMHMM" >TMHMM</option>
+  <option value="LowComplexity" >LowComplexity</option>
+  <option value="SignalP" >SignalP</option>
+  <option value="BlastP" >BlastP</option>
+  <option value="Genbank" >Genbank</option>
+  <option value="SageTags" >SageTags</option>
+  <option value="Notes" >Notes</option>
+  <option value="UserComments" >UserComments</option>
+  <option value="CommunityExpComments" >CommunityExpComments</option>
+  <option value="EcNumber" >EcNumber</option>
+  <option value="MassSpec" >MassSpec</option>
+  <option value="GoTerms" >GoTerms</option>
+  <option value="Phenotype" >Phenotype</option>
+  <option value="Y2hInteractions" >Y2hInteractions</option>
+  <option value="Orthologs" >Orthologs</option>
+  <option value="MetabolicPathways" >MetabolicPathways</option>
+  <option value="TaskComments" >TaskComments</option>
+  <option value="ArrayElements" >ArrayElements</option>
+  <option value="TwoChannelDiffExpr" >TwoChannelDiffExpr</option>
+  <option value="ProteinExpression" >ProteinExpression</option>
+  <option value="Mr4Reagents" >Mr4Reagents</option>
+  <option value="ProteinDatabase" >ProteinDatabase</option>
+  <option value="GeneLinkouts" >GeneLinkouts</option>
+  <option value="3dPreds" >3dPreds</option>
+  <option value="PdbSimilarities" >PdbSimilarities</option>
+  <option value="Epitopes" >Epitopes</option>
+  <option value="IsolateOverlap" >IsolateOverlap</option>
+     </param> 
+ </when>
+<when value="cached">
+ <param name = "cached_param4" type="data" label="Choose the step from which to get the parameter Output Tables"/> 
+  </when></conditional>
+ </when>
+ </conditional>
+</inputs>
+  <outputs>
+    <data format="tabular" name="output" />
+  </outputs>
+  <help>
+Replace white space with ** in all parameter values
+
+.. class:: infomark
+
+**TIP:** Organism type is xsd:string
+
+.. class:: infomark
+
+**TIP:** Include Pseudogenes type is xsd:string
+
+.. class:: infomark
+
+**TIP:** Gene type type is xsd:string
+  </help>
+</tool>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/workflowclients/client_4.xml~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,250 @@
+<tool id="client_4" name="genesbymolecularweight    ">
+  <description> Client for method: genesbymolecularweight , Web service: http://eupathdb.org/webservices/GeneQuestions/GenesByMolecularWeight.wadl </description>
+  <command interpreter="python">
+  	client_1.py
+	#if $cond_source.optional_param_source=="no":
+  	$output
+	http://eupathdb.org/webservices/GeneQuestions/GenesByMolecularWeight.xml
+	organism
+	 #if $source0.source0_source=="user":
+	 $source0.user_param0
+	 #else:
+	 fileInput
+	 $source0.cached_param0
+	 #end if
+	min_molecular_weight
+	 #if $source1.source1_source=="user":
+	 $source1.user_param1
+	 #else:
+	 fileInput
+	 $source1.cached_param1
+	 #end if
+	max_molecular_weight
+	 #if $source2.source2_source=="user":
+	 $source2.user_param2
+	 #else:
+	 fileInput
+	 $source2.cached_param2
+	 #end if
+   	#else:
+  	$output
+	http://eupathdb.org/webservices/GeneQuestions/GenesByMolecularWeight.xml
+	organism
+	 #if $source0.source0_source=="user":
+	 $source0.user_param0
+	 #else:
+	 fileInput
+	 $source0.cached_param0
+	 #end if
+	min_molecular_weight
+	 #if $source1.source1_source=="user":
+	 $source1.user_param1
+	 #else:
+	 fileInput
+	 $source1.cached_param1
+	 #end if
+	max_molecular_weight
+	 #if $source2.source2_source=="user":
+	 $source2.user_param2
+	 #else:
+	 fileInput
+	 $source2.cached_param2
+	 #end if
+	o-fields
+	 #if $source3.source3_source=="user":
+	 $source3.user_param3
+	 #else:
+	 fileInput
+	 $source3.cached_param3
+	 #end if
+	o-tables
+	 #if $source4.source4_source=="user":
+	 $source4.user_param4
+	 #else:
+	 fileInput
+	 $source4.cached_param4
+	 #end if
+   	#end if
+</command>
+  <inputs>
+<conditional name="source0">
+    <param name="source0_source" type="select" label="Organism Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+    <param name="user_param0" type="select" label="Select Organism" help="see tip below">
+      <option value="Entamoeba**dispar" >Entamoeba dispar</option>
+       <option value="Entamoeba**histolytica" >Entamoeba histolytica</option>
+       <option value="Entamoeba**invadens" >Entamoeba invadens</option>
+       <option value="Cryptosporidium**parvum" >Cryptosporidium parvum</option>
+       <option value="Cryptosporidium**hominis" >Cryptosporidium hominis</option>
+       <option value="Cryptosporidium**muris" >Cryptosporidium muris</option>
+       <option value="Giardia**Assemblage**A**isolate**WB" >Giardia Assemblage A isolate WB</option>
+       <option value="Giardia**Assemblage**B**isolate**GS" >Giardia Assemblage B isolate GS</option>
+       <option value="Giardia**Assemblage**E**isolate**P15" >Giardia Assemblage E isolate P15</option>
+       <option value="Encephalitozoon**cuniculi" >Encephalitozoon cuniculi</option>
+       <option value="Encephalitozoon**intestinalis" >Encephalitozoon intestinalis</option>
+       <option value="Enterocytozoon**bieneusi" >Enterocytozoon bieneusi</option>
+       <option value="Plasmodium**falciparum" >Plasmodium falciparum</option>
+       <option value="Plasmodium**vivax" >Plasmodium vivax</option>
+       <option value="Plasmodium**yoelii" >Plasmodium yoelii</option>
+       <option value="Plasmodium**berghei" >Plasmodium berghei</option>
+       <option value="Plasmodium**chabaudi" >Plasmodium chabaudi</option>
+       <option value="Plasmodium**knowlesi" >Plasmodium knowlesi</option>
+       <option value="Toxoplasma**gondii" >Toxoplasma gondii</option>
+       <option value="Neospora**caninum" >Neospora caninum</option>
+       <option value="Trichomonas**vaginalis" >Trichomonas vaginalis</option>
+       <option value="Trypanosoma**cruzi" >Trypanosoma cruzi</option>
+       <option value="Leishmania**braziliensis" >Leishmania braziliensis</option>
+       <option value="Leishmania**infantum" >Leishmania infantum</option>
+       <option value="Leishmania**major" >Leishmania major</option>
+       <option value="Leishmania**mexicana" >Leishmania mexicana</option>
+       <option value="Trypanosoma**brucei" >Trypanosoma brucei</option>
+       <option value="Trypanosoma**congolense" >Trypanosoma congolense</option>
+       <option value="Trypanosoma**vivax" >Trypanosoma vivax</option>
+     </param> 
+ </when>
+ <when value="cached">
+    <param name = "cached_param0" type="data" label="Choose the step from which to get the parameter Organism"/> 
+ </when></conditional><conditional name="source1">
+    <param name="source1_source" type="select" label="Min Molecular Weight (Daltons) Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+      <param format="text" size = "150" name = "user_param1"  value="10000"  type="text" label="Enter Min Molecular Weight (Daltons)" help="see tip below" />
+ </when>
+ <when value="cached">
+    <param name = "cached_param1" type="data" label="Choose the step from which to get the parameter Min Molecular Weight (Daltons)"/> 
+ </when></conditional><conditional name="source2">
+    <param name="source2_source" type="select" label="Max Molecular Weight (Daltons) Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+      <param format="text" size = "150" name = "user_param2"  value="50000"  type="text" label="Enter Max Molecular Weight (Daltons)" help="see tip below" />
+ </when>
+ <when value="cached">
+    <param name = "cached_param2" type="data" label="Choose the step from which to get the parameter Max Molecular Weight (Daltons)"/> 
+ </when></conditional>  <conditional name="cond_source">
+  <param name="optional_param_source" type="select" label="Display Additional Parameters"> 
+ <option value="no" selected="true">no</option> 
+ <option value="yes">yes</option> 
+ </param> 
+    <when value="no"> 
+     </when>
+    <when value="yes"> 
+
+<conditional name="source3">
+  <param name="source3_source" type="select" label="Output Fields Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param name="user_param3" type="select" label="Select Output Fields" help="see tip below">
+ <option value="all" >all</option>
+  <option value="none" selected="true">none</option>
+  <option value="primary_key" >primary_key</option>
+  <option value="formatted_gene_id" >formatted_gene_id</option>
+  <option value="external_db_name" >external_db_name</option>
+  <option value="sequence_id" >sequence_id</option>
+  <option value="chromosome" >chromosome</option>
+  <option value="location_text" >location_text</option>
+  <option value="strand" >strand</option>
+  <option value="gene_type" >gene_type</option>
+  <option value="exon_count" >exon_count</option>
+  <option value="transcript_length" >transcript_length</option>
+  <option value="cds_length" >cds_length</option>
+  <option value="product" >product</option>
+  <option value="protein_length" >protein_length</option>
+  <option value="tm_count" >tm_count</option>
+  <option value="molecular_weight" >molecular_weight</option>
+  <option value="isoelectric_point" >isoelectric_point</option>
+  <option value="ec_numbers_string" >ec_numbers_string</option>
+  <option value="ortholog_number" >ortholog_number</option>
+  <option value="paralog_number" >paralog_number</option>
+  <option value="orthomcl_name" >orthomcl_name</option>
+  <option value="signalp_scores" >signalp_scores</option>
+  <option value="signalp_peptide" >signalp_peptide</option>
+  <option value="ann_go_function" >ann_go_function</option>
+  <option value="ann_go_process" >ann_go_process</option>
+  <option value="ann_go_component" >ann_go_component</option>
+  <option value="pred_go_function" >pred_go_function</option>
+  <option value="pred_go_process" >pred_go_process</option>
+  <option value="pred_go_component" >pred_go_component</option>
+  <option value="organism" >organism</option>
+  <option value="protein_sequence" >protein_sequence</option>
+  <option value="transcript_sequence" >transcript_sequence</option>
+  <option value="cds" >cds</option>
+  <option value="wdk_weight" >wdk_weight</option>
+     </param> 
+ </when>
+<when value="cached">
+ <param name = "cached_param3" type="data" label="Choose the step from which to get the parameter Output Fields"/> 
+  </when></conditional>
+
+<conditional name="source4">
+  <param name="source4_source" type="select" label="Output Tables Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param name="user_param4" type="select" label="Select Output Tables" help="see tip below">
+ <option value="all" >all</option>
+  <option value="none" selected="true">none</option>
+  <option value="SNPs" >SNPs</option>
+  <option value="GeneModelDump" >GeneModelDump</option>
+  <option value="InterPro" >InterPro</option>
+  <option value="TMHMM" >TMHMM</option>
+  <option value="LowComplexity" >LowComplexity</option>
+  <option value="SignalP" >SignalP</option>
+  <option value="BlastP" >BlastP</option>
+  <option value="Genbank" >Genbank</option>
+  <option value="SageTags" >SageTags</option>
+  <option value="Notes" >Notes</option>
+  <option value="UserComments" >UserComments</option>
+  <option value="CommunityExpComments" >CommunityExpComments</option>
+  <option value="EcNumber" >EcNumber</option>
+  <option value="GoTerms" >GoTerms</option>
+  <option value="Aliases" >Aliases</option>
+  <option value="Phenotype" >Phenotype</option>
+  <option value="Y2hInteractions" >Y2hInteractions</option>
+  <option value="Orthologs" >Orthologs</option>
+  <option value="MetabolicPathways" >MetabolicPathways</option>
+  <option value="TaskComments" >TaskComments</option>
+  <option value="ArrayElements" >ArrayElements</option>
+  <option value="TwoChannelDiffExpr" >TwoChannelDiffExpr</option>
+  <option value="ProteinExpression" >ProteinExpression</option>
+  <option value="Mr4Reagents" >Mr4Reagents</option>
+  <option value="ProteinDatabase" >ProteinDatabase</option>
+  <option value="GeneLinkouts" >GeneLinkouts</option>
+  <option value="3dPreds" >3dPreds</option>
+  <option value="PdbSimilarities" >PdbSimilarities</option>
+  <option value="Epitopes" >Epitopes</option>
+  <option value="IsolateOverlap" >IsolateOverlap</option>
+     </param> 
+ </when>
+<when value="cached">
+ <param name = "cached_param4" type="data" label="Choose the step from which to get the parameter Output Tables"/> 
+  </when></conditional>
+ </when>
+ </conditional>
+</inputs>
+  <outputs>
+    <data format="tabular" name="output" />
+  </outputs>
+  <help>
+Replace white space with ** in all parameter values
+
+.. class:: infomark
+
+**TIP:** Organism type is xsd:string
+
+.. class:: infomark
+
+**TIP:** Min Molecular Weight (Daltons) type is xsd:string
+
+.. class:: infomark
+
+**TIP:** Max Molecular Weight (Daltons) type is xsd:string
+  </help>
+</tool>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/workflowclients/client_45.xml~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,431 @@
+<tool id="client_45" name="wublast.run">
+  <description> Client for operation : run , Web service : wublast.wublast_services </description>
+  <command interpreter="python">
+  	client_1.py
+	#if $cond_source.optional_param_source=="no":
+  	$output
+	$servicetype
+      $url
+      $method
+wublast.wublast_services         run
+	"_parameters|_sequence"
+	 #if $source0.source0_source=="user":
+	 $source0.user_param0
+	 #else:
+	 fileInput
+	 $source0.cached_param0
+	 #end if
+	"_parameters|_stype"
+	 #if $source1.source1_source=="user":
+	 $source1.user_param1
+	 #else:
+	 fileInput
+	 $source1.cached_param1
+	 #end if
+	"_parameters|_program"
+	 #if $source2.source2_source=="user":
+	 $source2.user_param2
+	 #else:
+	 fileInput
+	 $source2.cached_param2
+	 #end if
+	"_email"
+	 #if $source3.source3_source=="user":
+	 $source3.user_param3
+	 #else:
+	 fileInput
+	 $source3.cached_param3
+	 #end if
+	"_parameters|_database|_string|$|"
+	 #if $source4.source4_source=="user":
+	 $source4.user_param4
+	 #else:
+	 fileInput
+	 $source4.cached_param4
+	 #end if
+   	#else:
+  	$output
+	$servicetype
+      $url
+      $method
+wublast.wublast_services            run
+	"_parameters|_sequence"
+	 #if $source0.source0_source=="user":
+	 $source0.user_param0
+	 #else:
+	 fileInput
+	 $source0.cached_param0
+	 #end if
+	"_parameters|_stype"
+	 #if $source1.source1_source=="user":
+	 $source1.user_param1
+	 #else:
+	 fileInput
+	 $source1.cached_param1
+	 #end if
+	"_parameters|_program"
+	 #if $source2.source2_source=="user":
+	 $source2.user_param2
+	 #else:
+	 fileInput
+	 $source2.cached_param2
+	 #end if
+	"_email"
+	 #if $source3.source3_source=="user":
+	 $source3.user_param3
+	 #else:
+	 fileInput
+	 $source3.cached_param3
+	 #end if
+	"_parameters|_database|_string|$|"
+	 #if $source4.source4_source=="user":
+	 $source4.user_param4
+	 #else:
+	 fileInput
+	 $source4.cached_param4
+	 #end if
+	"_parameters|_sensitivity"
+	 #if $cond_source.source5.source5_source=="user":
+	 $cond_source.source5.user_param5
+	 #else:
+	 fileInput
+	 $cond_source.source5.cached_param5
+	 #end if
+	"_parameters|_topcombon"
+	 #if $cond_source.source6.source6_source=="user":
+	 $cond_source.source6.user_param6
+	 #else:
+	 fileInput
+	 $cond_source.source6.cached_param6
+	 #end if
+	"_parameters|_filter"
+	 #if $cond_source.source7.source7_source=="user":
+	 $cond_source.source7.user_param7
+	 #else:
+	 fileInput
+	 $cond_source.source7.cached_param7
+	 #end if
+	"_parameters|_alignments"
+	 #if $cond_source.source8.source8_source=="user":
+	 $cond_source.source8.user_param8
+	 #else:
+	 fileInput
+	 $cond_source.source8.cached_param8
+	 #end if
+	"_parameters|_scores"
+	 #if $cond_source.source9.source9_source=="user":
+	 $cond_source.source9.user_param9
+	 #else:
+	 fileInput
+	 $cond_source.source9.cached_param9
+	 #end if
+	"_parameters|_viewfilter"
+	 #if $cond_source.source10.source10_source=="user":
+	 $cond_source.source10.user_param10
+	 #else:
+	 fileInput
+	 $cond_source.source10.cached_param10
+	 #end if
+	"_parameters|_sort"
+	 #if $cond_source.source11.source11_source=="user":
+	 $cond_source.source11.user_param11
+	 #else:
+	 fileInput
+	 $cond_source.source11.cached_param11
+	 #end if
+	"_parameters|_strand"
+	 #if $cond_source.source12.source12_source=="user":
+	 $cond_source.source12.user_param12
+	 #else:
+	 fileInput
+	 $cond_source.source12.cached_param12
+	 #end if
+	"_parameters|_align"
+	 #if $cond_source.source13.source13_source=="user":
+	 $cond_source.source13.user_param13
+	 #else:
+	 fileInput
+	 $cond_source.source13.cached_param13
+	 #end if
+	"_parameters|_matrix"
+	 #if $cond_source.source14.source14_source=="user":
+	 $cond_source.source14.user_param14
+	 #else:
+	 fileInput
+	 $cond_source.source14.cached_param14
+	 #end if
+	"_title"
+	 #if $cond_source.source15.source15_source=="user":
+	 $cond_source.source15.user_param15
+	 #else:
+	 fileInput
+	 $cond_source.source15.cached_param15
+	 #end if
+	"_parameters|_stats"
+	 #if $cond_source.source16.source16_source=="user":
+	 $cond_source.source16.user_param16
+	 #else:
+	 fileInput
+	 $cond_source.source16.cached_param16
+	 #end if
+	"_parameters|_exp"
+	 #if $cond_source.source17.source17_source=="user":
+	 $cond_source.source17.user_param17
+	 #else:
+	 fileInput
+	 $cond_source.source17.cached_param17
+	 #end if
+   	#end if
+</command>
+  <inputs>
+     <param name="servicetype" type="hidden" value="SOAP" />
+     <param name="url" type="hidden" value="http://www.cs.uga.edu/~guttula/wublast.wsdl" />
+     <param name="method" type="hidden" value="run" />
+<conditional name="source0">
+    <param name="source0_source" type="select" label="sequence Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+      <param format="text" size = "150" name = "user_param0"  type="text" label="Enter sequence" help="see tip below" />
+ </when>
+ <when value="cached">
+    <param name = "cached_param0" type="data" label="Choose the step from which to get the parameter sequence"/> 
+ </when>
+   </conditional><conditional name="source1">
+    <param name="source1_source" type="select" label="stype Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+      <param format="text" size = "150" name = "user_param1"  type="text" label="Enter stype" help="see tip below" />
+ </when>
+ <when value="cached">
+    <param name = "cached_param1" type="data" label="Choose the step from which to get the parameter stype"/> 
+ </when>
+   </conditional><conditional name="source2">
+    <param name="source2_source" type="select" label="program Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+      <param format="text" size = "150" name = "user_param2"  type="text" label="Enter program" help="see tip below" />
+ </when>
+ <when value="cached">
+    <param name = "cached_param2" type="data" label="Choose the step from which to get the parameter program"/> 
+ </when>
+   </conditional><conditional name="source3">
+    <param name="source3_source" type="select" label="email Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+      <param format="text" size = "150" name = "user_param3"  type="text" label="Enter email" help="see tip below" />
+ </when>
+ <when value="cached">
+    <param name = "cached_param3" type="data" label="Choose the step from which to get the parameter email"/> 
+ </when>
+   </conditional><conditional name="source4">
+    <param name="source4_source" type="select" label="database Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+      <param format="text" size = "150" name = "user_param4"  type="text" label="Enter database" help="see tip below" />
+ </when>
+ <when value="cached">
+    <param name = "cached_param4" type="data" label="Choose the step from which to get the parameter database"/> 
+ </when>
+   </conditional>  <conditional name="cond_source">
+  <param name="optional_param_source" type="select" label="Display Additional Parameters"> 
+ <option value="no" selected="true">no</option> 
+ <option value="yes">yes</option> 
+ </param> 
+    <when value="no"> 
+     </when>
+    <when value="yes"> 
+
+<conditional name="source5">
+  <param name="source5_source" type="select" label="sensitivity Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param5"  type="text" label="Enter sensitivity" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param5" type="data" label="Choose the step from which to get the parameter sensitivity"/> 
+  </when>
+   </conditional>
+
+<conditional name="source6">
+  <param name="source6_source" type="select" label="topcombon Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param6"  type="text" label="Enter topcombon" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param6" type="data" label="Choose the step from which to get the parameter topcombon"/> 
+  </when>
+   </conditional>
+
+<conditional name="source7">
+  <param name="source7_source" type="select" label="filter Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param7"  type="text" label="Enter filter" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param7" type="data" label="Choose the step from which to get the parameter filter"/> 
+  </when>
+   </conditional>
+
+<conditional name="source8">
+  <param name="source8_source" type="select" label="alignments Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param8"  type="text" label="Enter alignments" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param8" type="data" label="Choose the step from which to get the parameter alignments"/> 
+  </when>
+   </conditional>
+
+<conditional name="source9">
+  <param name="source9_source" type="select" label="scores Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param9"  type="text" label="Enter scores" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param9" type="data" label="Choose the step from which to get the parameter scores"/> 
+  </when>
+   </conditional>
+
+<conditional name="source10">
+  <param name="source10_source" type="select" label="viewfilter Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param10"  type="text" label="Enter viewfilter" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param10" type="data" label="Choose the step from which to get the parameter viewfilter"/> 
+  </when>
+   </conditional>
+
+<conditional name="source11">
+  <param name="source11_source" type="select" label="sort Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param11"  type="text" label="Enter sort" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param11" type="data" label="Choose the step from which to get the parameter sort"/> 
+  </when>
+   </conditional>
+
+<conditional name="source12">
+  <param name="source12_source" type="select" label="strand Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param12"  type="text" label="Enter strand" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param12" type="data" label="Choose the step from which to get the parameter strand"/> 
+  </when>
+   </conditional>
+
+<conditional name="source13">
+  <param name="source13_source" type="select" label="align Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param13"  type="text" label="Enter align" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param13" type="data" label="Choose the step from which to get the parameter align"/> 
+  </when>
+   </conditional>
+
+<conditional name="source14">
+  <param name="source14_source" type="select" label="matrix Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param14"  type="text" label="Enter matrix" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param14" type="data" label="Choose the step from which to get the parameter matrix"/> 
+  </when>
+   </conditional>
+
+<conditional name="source15">
+  <param name="source15_source" type="select" label="title Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param15"  type="text" label="Enter title" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param15" type="data" label="Choose the step from which to get the parameter title"/> 
+  </when>
+   </conditional>
+
+<conditional name="source16">
+  <param name="source16_source" type="select" label="stats Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param16"  type="text" label="Enter stats" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param16" type="data" label="Choose the step from which to get the parameter stats"/> 
+  </when>
+   </conditional>
+
+<conditional name="source17">
+  <param name="source17_source" type="select" label="exp Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param17"  type="text" label="Enter exp" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param17" type="data" label="Choose the step from which to get the parameter exp"/> 
+  </when>
+   </conditional>
+ </when>
+ </conditional>
+</inputs>
+  <outputs>
+    <data format="tabular" name="output" />
+  </outputs>
+  <help>
+
+.. class:: infomark
+
+**TIP:** About sequence: type is String
+
+.. class:: infomark
+
+**TIP:** About stype: type is String
+
+.. class:: infomark
+
+**TIP:** About program: type is String
+
+.. class:: infomark
+
+**TIP:** About email: type is String
+
+.. class:: infomark
+
+**TIP:** About database: type is String
+  </help>
+</tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/workflowclients/client_5.xml~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,115 @@
+<tool id="client_5" name="getDDBJEntry    ">
+  <description> Client for method: getDDBJEntry , Web service: http://cs.uga.edu/~ganjoo/galaxy/DDBJGetEntry.wadl </description>
+  <command interpreter="python">
+  	client_1.py
+	#if $cond_source.optional_param_source=="no":
+  	$output
+	http://www.xml.nig.ac.jp/rest/Invoke
+	service
+	 #if $source0.source0_source=="user":
+	 $source0.user_param0
+	 #else:
+	 $source0.cached_param0
+	 #end if
+	method
+	 #if $source1.source1_source=="user":
+	 $source1.user_param1
+	 #else:
+	 $source1.cached_param1
+	 #end if
+	accession
+	 #if $source2.source2_source=="user":
+	 $source2.user_param2
+	 #else:
+	 $source2.cached_param2
+	 #end if
+   	#else:
+  	$output
+	http://www.xml.nig.ac.jp/rest/Invoke
+	service
+	 #if $source0.source0_source=="user":
+	 $source0.user_param0
+	 #else:
+	 $source0.cached_param0
+	 #end if
+	method
+	 #if $source1.source1_source=="user":
+	 $source1.user_param1
+	 #else:
+	 $source1.cached_param1
+	 #end if
+	accession
+	 #if $source2.source2_source=="user":
+	 $source2.user_param2
+	 #else:
+	 fileInput
+	 $source2.cached_param2
+	 #end if
+   	#end if
+</command>
+  <inputs>
+<conditional name="source0">
+    <param name="source0_source" type="select" label="Service to be invoked  Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+    <param name="user_param0" type="select" label="Select Service to be invoked " help="see tip below">
+      <option value="GetEntry" >GetEntry</option>
+     </param> 
+ </when>
+ <when value="cached">
+    <param name = "cached_param0" type="data" label="Choose the step from which to get the parameter Service to be invoked "/> 
+ </when></conditional><conditional name="source1">
+    <param name="source1_source" type="select" label="Method to be used Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+    <param name="user_param1" type="select" label="Select Method to be used" help="see tip below">
+      <option value="getDDBJEntry" selected="true">getDDBJEntry</option>
+     </param> 
+ </when>
+ <when value="cached">
+    <param name = "cached_param1" type="data" label="Choose the step from which to get the parameter Method to be used"/> 
+ </when></conditional><conditional name="source2">
+    <param name="source2_source" type="select" label="DDBJ accession number Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+      <param format="text" size = "150" name = "user_param2"  type="text" label="Enter DDBJ accession number" help="see tip below" />
+ </when>
+ <when value="cached">
+    <param name = "cached_param2" type="data" format="tabular" label="Choose the step from which to get the parameter DDBJ accession number"/> 
+ </when></conditional> 
+ 
+  <conditional name="cond_source">
+  <param name="optional_param_source" type="select" label="Display Additional Parameters"> 
+ <option value="no" selected="true">no</option> 
+ <option value="yes">yes</option> 
+ </param> 
+    <when value="no"> 
+     </when>
+    <when value="yes"> 
+ </when>
+ </conditional>
+</inputs>
+  <outputs>
+    <data format="tabular" name="output" />
+  </outputs>
+  <help>
+
+.. class:: infomark
+
+**TIP:** Service to be invoked  type is xsd:string
+
+.. class:: infomark
+
+**TIP:** Method to be used type is xsd:string
+
+.. class:: infomark
+
+**TIP:** DDBJ accession number type is xsd:string
+  </help>
+</tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/workflowclients/client_55.xml~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,135 @@
+<tool id="client_55" name="wublast.getResult">
+  <description> Client for operation : getResult , Web service : wublast.wublast_services </description>
+  <command interpreter="python">
+  	client_1.py
+	#if $cond_source.optional_param_source=="no":
+  	$output
+	$servicetype
+      $url
+      $method
+wublast.wublast_services         getResult
+	"_type"
+	 #if $source0.source0_source=="user":
+	 $source0.user_param0
+	 #else:
+	 fileInput
+	 $source0.cached_param0
+	 #end if
+	"_jobId"
+	 #if $source1.source1_source=="user":
+	 $source1.user_param1
+	 #else:
+	 fileInput
+	 $source1.cached_param1
+	 #end if
+   	#else:
+  	$output
+	$servicetype
+      $url
+      $method
+wublast.wublast_services            getResult
+	"_type"
+	 #if $source0.source0_source=="user":
+	 $source0.user_param0
+	 #else:
+	 fileInput
+	 $source0.cached_param0
+	 #end if
+	"_jobId"
+	 #if $source1.source1_source=="user":
+	 $source1.user_param1
+	 #else:
+	 fileInput
+	 $source1.cached_param1
+	 #end if
+	"_parameters|_parameter|0|_name"
+	 #if $cond_source.source2.source2_source=="user":
+	 $cond_source.source2.user_param2
+	 #else:
+	 fileInput
+	 $cond_source.source2.cached_param2
+	 #end if
+	"_parameters|_parameter|0|_value|_string|$|"
+	 #if $cond_source.source3.source3_source=="user":
+	 $cond_source.source3.user_param3
+	 #else:
+	 fileInput
+	 $cond_source.source3.cached_param3
+	 #end if
+   	#end if
+</command>
+  <inputs>
+     <param name="servicetype" type="hidden" value="SOAP" />
+     <param name="url" type="hidden" value="http://www.cs.uga.edu/~guttula/wublast.wsdl" />
+     <param name="method" type="hidden" value="getResult" />
+<conditional name="source0">
+    <param name="source0_source" type="select" label="type Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+      <param format="text" size = "150" name = "user_param0"  type="text" label="Enter type" help="see tip below" />
+ </when>
+ <when value="cached">
+    <param name = "cached_param0" type="data" label="Choose the step from which to get the parameter type"/> 
+ </when>
+   </conditional><conditional name="source1">
+    <param name="source1_source" type="select" label="jobId Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+      <param format="text" size = "150" name = "user_param1"  type="text" label="Enter jobId" help="see tip below" />
+ </when>
+ <when value="cached">
+    <param name = "cached_param1" type="data" label="Choose the step from which to get the parameter jobId"/> 
+ </when>
+   </conditional>  <conditional name="cond_source">
+  <param name="optional_param_source" type="select" label="Display Additional Parameters"> 
+ <option value="no" selected="true">no</option> 
+ <option value="yes">yes</option> 
+ </param> 
+    <when value="no"> 
+     </when>
+    <when value="yes"> 
+
+<conditional name="source2">
+  <param name="source2_source" type="select" label="name Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param2"  type="text" label="Enter name" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param2" type="data" label="Choose the step from which to get the parameter name"/> 
+  </when>
+   </conditional>
+
+<conditional name="source3">
+  <param name="source3_source" type="select" label="value Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param3"  type="text" label="Enter value" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param3" type="data" label="Choose the step from which to get the parameter value"/> 
+  </when>
+   </conditional>
+ </when>
+ </conditional>
+</inputs>
+  <outputs>
+    <data format="tabular" name="output" />
+  </outputs>
+  <help>
+
+.. class:: infomark
+
+**TIP:** About type: type is String
+
+.. class:: infomark
+
+**TIP:** About jobId: type is String
+  </help>
+</tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/workflowclients/client_57.xml~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,155 @@
+<tool id="client_57" name="fetchBatch">
+  <description> Client for operation : fetchBatch , Web service : WSDbfetchDoclit.WSDBFetchDoclitServerService_services </description>
+  <command interpreter="python">
+  	client_1.py
+	#if $cond_source.optional_param_source=="no":
+  	$output
+	$servicetype
+      $url
+      $method
+WSDbfetchDoclit.WSDBFetchDoclitServerService_services         fetchBatch
+	"_format"
+	 #if $source0.source0_source=="user":
+	 $source0.user_param0
+	 #else:
+	 fileInput
+	 $source0.cached_param0
+	 #end if
+	"_db"
+	 #if $source1.source1_source=="user":
+	 $source1.user_param1
+	 #else:
+	 fileInput
+	 $source1.cached_param1
+	 #end if
+	"_style"
+	 #if $source2.source2_source=="user":
+	 $source2.user_param2
+	 #else:
+	 fileInput
+	 $source2.cached_param2
+	 #end if
+	"_ids"
+	 #if $source3.source3_source=="user":
+	 $source3.user_param3
+	 #else:
+	 fileInput
+	 $source3.cached_param3
+	 #end if
+   	#else:
+  	$output
+	$servicetype
+      $url
+      $method
+WSDbfetchDoclit.WSDBFetchDoclitServerService_services            fetchBatch
+	"_format"
+	 #if $source0.source0_source=="user":
+	 $source0.user_param0
+	 #else:
+	 fileInput
+	 $source0.cached_param0
+	 #end if
+	"_db"
+	 #if $source1.source1_source=="user":
+	 $source1.user_param1
+	 #else:
+	 fileInput
+	 $source1.cached_param1
+	 #end if
+	"_style"
+	 #if $source2.source2_source=="user":
+	 $source2.user_param2
+	 #else:
+	 fileInput
+	 $source2.cached_param2
+	 #end if
+	"_ids"
+	 #if $source3.source3_source=="user":
+	 $source3.user_param3
+	 #else:
+	 fileInput
+	 $source3.cached_param3
+	 #end if
+   	#end if
+</command>
+  <inputs>
+     <param name="servicetype" type="hidden" value="SOAP" />
+     <param name="url" type="hidden" value="http://www.ebi.ac.uk/ws/services/WSDbfetchDoclit?wsdl" />
+     <param name="method" type="hidden" value="fetchBatch" />
+<conditional name="source0">
+    <param name="source0_source" type="select" label="format Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+      <param format="text" size = "150" name = "user_param0"  type="text" label="Enter format" help="see tip below" />
+ </when>
+ <when value="cached">
+    <param name = "cached_param0" type="data" label="Choose the step from which to get the parameter format"/> 
+ </when>
+   </conditional><conditional name="source1">
+    <param name="source1_source" type="select" label="db Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+      <param format="text" size = "150" name = "user_param1"  type="text" label="Enter db" help="see tip below" />
+ </when>
+ <when value="cached">
+    <param name = "cached_param1" type="data" label="Choose the step from which to get the parameter db"/> 
+ </when>
+   </conditional><conditional name="source2">
+    <param name="source2_source" type="select" label="style Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+      <param format="text" size = "150" name = "user_param2"  type="text" label="Enter style" help="see tip below" />
+ </when>
+ <when value="cached">
+    <param name = "cached_param2" type="data" label="Choose the step from which to get the parameter style"/> 
+ </when>
+   </conditional><conditional name="source3">
+    <param name="source3_source" type="select" label="ids Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+      <param format="text" size = "150" name = "user_param3"  type="text" label="Enter ids" help="see tip below" />
+ </when>
+ <when value="cached">
+    <param name = "cached_param3" type="data" label="Choose the step from which to get the parameter ids"/> 
+ </when>
+   </conditional>  <conditional name="cond_source">
+  <param name="optional_param_source" type="select" label="Display Additional Parameters"> 
+ <option value="no" selected="true">no</option> 
+ <option value="yes">yes</option> 
+ </param> 
+    <when value="no"> 
+     </when>
+    <when value="yes"> 
+ </when>
+ </conditional>
+</inputs>
+  <outputs>
+    <data format="tabular" name="output" />
+  </outputs>
+  <help>
+
+.. class:: infomark
+
+**TIP:** About format: type is String
+
+.. class:: infomark
+
+**TIP:** About db: type is String
+
+.. class:: infomark
+
+**TIP:** About style: type is String
+
+.. class:: infomark
+
+**TIP:** About ids: type is String
+  </help>
+</tool>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/workflowclients/client_59.xml~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,135 @@
+<tool id="client_59" name="getResult">
+  <description> Client for operation : getResult , Web service : clustalw2.clustalw2_services </description>
+  <command interpreter="python">
+  	client_1.py
+	#if $cond_source.optional_param_source=="no":
+  	$output
+	$servicetype
+      $url
+      $method
+clustalw2.clustalw2_services         getResult
+	"_type"
+	 #if $source0.source0_source=="user":
+	 $source0.user_param0
+	 #else:
+	 fileInput
+	 $source0.cached_param0
+	 #end if
+	"_jobId"
+	 #if $source1.source1_source=="user":
+	 $source1.user_param1
+	 #else:
+	 fileInput
+	 $source1.cached_param1
+	 #end if
+   	#else:
+  	$output
+	$servicetype
+      $url
+      $method
+clustalw2.clustalw2_services            getResult
+	"_type"
+	 #if $source0.source0_source=="user":
+	 $source0.user_param0
+	 #else:
+	 fileInput
+	 $source0.cached_param0
+	 #end if
+	"_jobId"
+	 #if $source1.source1_source=="user":
+	 $source1.user_param1
+	 #else:
+	 fileInput
+	 $source1.cached_param1
+	 #end if
+	"_parameters|_parameter|0|_name"
+	 #if $cond_source.source2.source2_source=="user":
+	 $cond_source.source2.user_param2
+	 #else:
+	 fileInput
+	 $cond_source.source2.cached_param2
+	 #end if
+	"_parameters|_parameter|0|_value|_string|$|"
+	 #if $cond_source.source3.source3_source=="user":
+	 $cond_source.source3.user_param3
+	 #else:
+	 fileInput
+	 $cond_source.source3.cached_param3
+	 #end if
+   	#end if
+</command>
+  <inputs>
+     <param name="servicetype" type="hidden" value="SOAP" />
+     <param name="url" type="hidden" value="http://www.ebi.ac.uk/Tools/services/soap/clustalw2?wsdl" />
+     <param name="method" type="hidden" value="getResult" />
+<conditional name="source0">
+    <param name="source0_source" type="select" label="type Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+      <param format="text" size = "150" name = "user_param0"  type="text" label="Enter type" help="see tip below" />
+ </when>
+ <when value="cached">
+    <param name = "cached_param0" type="data" label="Choose the step from which to get the parameter type"/> 
+ </when>
+   </conditional><conditional name="source1">
+    <param name="source1_source" type="select" label="jobId Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+      <param format="text" size = "150" name = "user_param1"  type="text" label="Enter jobId" help="see tip below" />
+ </when>
+ <when value="cached">
+    <param name = "cached_param1" type="data" label="Choose the step from which to get the parameter jobId"/> 
+ </when>
+   </conditional>  <conditional name="cond_source">
+  <param name="optional_param_source" type="select" label="Display Additional Parameters"> 
+ <option value="no" selected="true">no</option> 
+ <option value="yes">yes</option> 
+ </param> 
+    <when value="no"> 
+     </when>
+    <when value="yes"> 
+
+<conditional name="source2">
+  <param name="source2_source" type="select" label="name Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param2"  type="text" label="Enter name" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param2" type="data" label="Choose the step from which to get the parameter name"/> 
+  </when>
+   </conditional>
+
+<conditional name="source3">
+  <param name="source3_source" type="select" label="value Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param3"  type="text" label="Enter value" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param3" type="data" label="Choose the step from which to get the parameter value"/> 
+  </when>
+   </conditional>
+ </when>
+ </conditional>
+</inputs>
+  <outputs>
+    <data format="tabular" name="output" />
+  </outputs>
+  <help>
+
+.. class:: infomark
+
+**TIP:** About type: type is String
+
+.. class:: infomark
+
+**TIP:** About jobId: type is String
+  </help>
+</tool>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/workflowclients/client_61.xml~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,524 @@
+<tool id="client_61" name="run">
+  <description> Client for operation : run , Web service : clustalw2.clustalw2_services </description>
+  <command interpreter="python">
+  	client_1.py
+	#if $cond_source.optional_param_source=="no":
+  	$output
+	$servicetype
+      $url
+      $method
+clustalw2.clustalw2_services         run
+	"_email"
+	 #if $source0.source0_source=="user":
+	 $source0.user_param0
+	 #else:
+	 fileInput
+	 $source0.cached_param0
+	 #end if
+   	#else:
+  	$output
+	$servicetype
+      $url
+      $method
+clustalw2.clustalw2_services            run
+	"_email"
+	 #if $source0.source0_source=="user":
+	 $source0.user_param0
+	 #else:
+	 fileInput
+	 $source0.cached_param0
+	 #end if
+	"_parameters|_sequence"
+	 #if $cond_source.source1.source1_source=="user":
+	 $cond_source.source1.user_param1
+	 #else:
+	 fileInput
+	 $cond_source.source1.cached_param1
+	 #end if
+	"_parameters|_pwmatrix"
+	 #if $cond_source.source2.source2_source=="user":
+	 $cond_source.source2.user_param2
+	 #else:
+	 fileInput
+	 $cond_source.source2.cached_param2
+	 #end if
+	"_parameters|_dnamatrix"
+	 #if $cond_source.source3.source3_source=="user":
+	 $cond_source.source3.user_param3
+	 #else:
+	 fileInput
+	 $cond_source.source3.cached_param3
+	 #end if
+	"_parameters|_gapopen"
+	 #if $cond_source.source4.source4_source=="user":
+	 $cond_source.source4.user_param4
+	 #else:
+	 fileInput
+	 $cond_source.source4.cached_param4
+	 #end if
+	"_parameters|_pairgap"
+	 #if $cond_source.source5.source5_source=="user":
+	 $cond_source.source5.user_param5
+	 #else:
+	 fileInput
+	 $cond_source.source5.cached_param5
+	 #end if
+	"_parameters|_pwdnamatrix"
+	 #if $cond_source.source6.source6_source=="user":
+	 $cond_source.source6.user_param6
+	 #else:
+	 fileInput
+	 $cond_source.source6.cached_param6
+	 #end if
+	"_parameters|_outorder"
+	 #if $cond_source.source7.source7_source=="user":
+	 $cond_source.source7.user_param7
+	 #else:
+	 fileInput
+	 $cond_source.source7.cached_param7
+	 #end if
+	"_parameters|_iteration"
+	 #if $cond_source.source8.source8_source=="user":
+	 $cond_source.source8.user_param8
+	 #else:
+	 fileInput
+	 $cond_source.source8.cached_param8
+	 #end if
+	"_parameters|_noendgaps"
+	 #if $cond_source.source9.source9_source=="user":
+	 $cond_source.source9.user_param9
+	 #else:
+	 fileInput
+	 $cond_source.source9.cached_param9
+	 #end if
+	"_parameters|_pwgapopen"
+	 #if $cond_source.source10.source10_source=="user":
+	 $cond_source.source10.user_param10
+	 #else:
+	 fileInput
+	 $cond_source.source10.cached_param10
+	 #end if
+	"_parameters|_ktup"
+	 #if $cond_source.source11.source11_source=="user":
+	 $cond_source.source11.user_param11
+	 #else:
+	 fileInput
+	 $cond_source.source11.cached_param11
+	 #end if
+	"_parameters|_alignment"
+	 #if $cond_source.source12.source12_source=="user":
+	 $cond_source.source12.user_param12
+	 #else:
+	 fileInput
+	 $cond_source.source12.cached_param12
+	 #end if
+	"_parameters|_matrix"
+	 #if $cond_source.source13.source13_source=="user":
+	 $cond_source.source13.user_param13
+	 #else:
+	 fileInput
+	 $cond_source.source13.cached_param13
+	 #end if
+	"_parameters|_score"
+	 #if $cond_source.source14.source14_source=="user":
+	 $cond_source.source14.user_param14
+	 #else:
+	 fileInput
+	 $cond_source.source14.cached_param14
+	 #end if
+	"_title"
+	 #if $cond_source.source15.source15_source=="user":
+	 $cond_source.source15.user_param15
+	 #else:
+	 fileInput
+	 $cond_source.source15.cached_param15
+	 #end if
+	"_parameters|_gapext"
+	 #if $cond_source.source16.source16_source=="user":
+	 $cond_source.source16.user_param16
+	 #else:
+	 fileInput
+	 $cond_source.source16.cached_param16
+	 #end if
+	"_parameters|_clustering"
+	 #if $cond_source.source17.source17_source=="user":
+	 $cond_source.source17.user_param17
+	 #else:
+	 fileInput
+	 $cond_source.source17.cached_param17
+	 #end if
+	"_parameters|_numiter"
+	 #if $cond_source.source18.source18_source=="user":
+	 $cond_source.source18.user_param18
+	 #else:
+	 fileInput
+	 $cond_source.source18.cached_param18
+	 #end if
+	"_parameters|_pwgapext"
+	 #if $cond_source.source19.source19_source=="user":
+	 $cond_source.source19.user_param19
+	 #else:
+	 fileInput
+	 $cond_source.source19.cached_param19
+	 #end if
+	"_parameters|_topdiags"
+	 #if $cond_source.source20.source20_source=="user":
+	 $cond_source.source20.user_param20
+	 #else:
+	 fileInput
+	 $cond_source.source20.cached_param20
+	 #end if
+	"_parameters|_window"
+	 #if $cond_source.source21.source21_source=="user":
+	 $cond_source.source21.user_param21
+	 #else:
+	 fileInput
+	 $cond_source.source21.cached_param21
+	 #end if
+	"_parameters|_gapdist"
+	 #if $cond_source.source22.source22_source=="user":
+	 $cond_source.source22.user_param22
+	 #else:
+	 fileInput
+	 $cond_source.source22.cached_param22
+	 #end if
+	"_parameters|_type"
+	 #if $cond_source.source23.source23_source=="user":
+	 $cond_source.source23.user_param23
+	 #else:
+	 fileInput
+	 $cond_source.source23.cached_param23
+	 #end if
+	"_parameters|_output"
+	 #if $cond_source.source24.source24_source=="user":
+	 $cond_source.source24.user_param24
+	 #else:
+	 fileInput
+	 $cond_source.source24.cached_param24
+	 #end if
+   	#end if
+</command>
+  <inputs>
+     <param name="servicetype" type="hidden" value="SOAP" />
+     <param name="url" type="hidden" value="http://www.ebi.ac.uk/Tools/services/soap/clustalw2?wsdl" />
+     <param name="method" type="hidden" value="run" />
+<conditional name="source0">
+    <param name="source0_source" type="select" label="email Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+      <param format="text" size = "150" name = "user_param0"  type="text" label="Enter email" help="see tip below" />
+ </when>
+ <when value="cached">
+    <param name = "cached_param0" type="data" label="Choose the step from which to get the parameter email"/> 
+ </when>
+   </conditional>  <conditional name="cond_source">
+  <param name="optional_param_source" type="select" label="Display Additional Parameters"> 
+ <option value="no" selected="true">no</option> 
+ <option value="yes">yes</option> 
+ </param> 
+    <when value="no"> 
+     </when>
+    <when value="yes"> 
+
+<conditional name="source1">
+  <param name="source1_source" type="select" label="sequence Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param1"  type="text" label="Enter sequence" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param1" type="data" label="Choose the step from which to get the parameter sequence"/> 
+  </when>
+   </conditional>
+
+<conditional name="source2">
+  <param name="source2_source" type="select" label="pwmatrix Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param2"  type="text" label="Enter pwmatrix" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param2" type="data" label="Choose the step from which to get the parameter pwmatrix"/> 
+  </when>
+   </conditional>
+
+<conditional name="source3">
+  <param name="source3_source" type="select" label="dnamatrix Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param3"  type="text" label="Enter dnamatrix" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param3" type="data" label="Choose the step from which to get the parameter dnamatrix"/> 
+  </when>
+   </conditional>
+
+<conditional name="source4">
+  <param name="source4_source" type="select" label="gapopen Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param4"  type="text" label="Enter gapopen" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param4" type="data" label="Choose the step from which to get the parameter gapopen"/> 
+  </when>
+   </conditional>
+
+<conditional name="source5">
+  <param name="source5_source" type="select" label="pairgap Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param5"  type="text" label="Enter pairgap" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param5" type="data" label="Choose the step from which to get the parameter pairgap"/> 
+  </when>
+   </conditional>
+
+<conditional name="source6">
+  <param name="source6_source" type="select" label="pwdnamatrix Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param6"  type="text" label="Enter pwdnamatrix" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param6" type="data" label="Choose the step from which to get the parameter pwdnamatrix"/> 
+  </when>
+   </conditional>
+
+<conditional name="source7">
+  <param name="source7_source" type="select" label="outorder Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param7"  type="text" label="Enter outorder" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param7" type="data" label="Choose the step from which to get the parameter outorder"/> 
+  </when>
+   </conditional>
+
+<conditional name="source8">
+  <param name="source8_source" type="select" label="iteration Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param8"  type="text" label="Enter iteration" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param8" type="data" label="Choose the step from which to get the parameter iteration"/> 
+  </when>
+   </conditional>
+
+<conditional name="source9">
+  <param name="source9_source" type="select" label="noendgaps Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param9"  type="text" label="Enter noendgaps" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param9" type="data" label="Choose the step from which to get the parameter noendgaps"/> 
+  </when>
+   </conditional>
+
+<conditional name="source10">
+  <param name="source10_source" type="select" label="pwgapopen Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param10"  type="text" label="Enter pwgapopen" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param10" type="data" label="Choose the step from which to get the parameter pwgapopen"/> 
+  </when>
+   </conditional>
+
+<conditional name="source11">
+  <param name="source11_source" type="select" label="ktup Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param11"  type="text" label="Enter ktup" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param11" type="data" label="Choose the step from which to get the parameter ktup"/> 
+  </when>
+   </conditional>
+
+<conditional name="source12">
+  <param name="source12_source" type="select" label="alignment Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param12"  type="text" label="Enter alignment" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param12" type="data" label="Choose the step from which to get the parameter alignment"/> 
+  </when>
+   </conditional>
+
+<conditional name="source13">
+  <param name="source13_source" type="select" label="matrix Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param13"  type="text" label="Enter matrix" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param13" type="data" label="Choose the step from which to get the parameter matrix"/> 
+  </when>
+   </conditional>
+
+<conditional name="source14">
+  <param name="source14_source" type="select" label="score Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param14"  type="text" label="Enter score" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param14" type="data" label="Choose the step from which to get the parameter score"/> 
+  </when>
+   </conditional>
+
+<conditional name="source15">
+  <param name="source15_source" type="select" label="title Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param15"  type="text" label="Enter title" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param15" type="data" label="Choose the step from which to get the parameter title"/> 
+  </when>
+   </conditional>
+
+<conditional name="source16">
+  <param name="source16_source" type="select" label="gapext Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param16"  type="text" label="Enter gapext" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param16" type="data" label="Choose the step from which to get the parameter gapext"/> 
+  </when>
+   </conditional>
+
+<conditional name="source17">
+  <param name="source17_source" type="select" label="clustering Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param17"  type="text" label="Enter clustering" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param17" type="data" label="Choose the step from which to get the parameter clustering"/> 
+  </when>
+   </conditional>
+
+<conditional name="source18">
+  <param name="source18_source" type="select" label="numiter Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param18"  type="text" label="Enter numiter" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param18" type="data" label="Choose the step from which to get the parameter numiter"/> 
+  </when>
+   </conditional>
+
+<conditional name="source19">
+  <param name="source19_source" type="select" label="pwgapext Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param19"  type="text" label="Enter pwgapext" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param19" type="data" label="Choose the step from which to get the parameter pwgapext"/> 
+  </when>
+   </conditional>
+
+<conditional name="source20">
+  <param name="source20_source" type="select" label="topdiags Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param20"  type="text" label="Enter topdiags" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param20" type="data" label="Choose the step from which to get the parameter topdiags"/> 
+  </when>
+   </conditional>
+
+<conditional name="source21">
+  <param name="source21_source" type="select" label="window Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param21"  type="text" label="Enter window" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param21" type="data" label="Choose the step from which to get the parameter window"/> 
+  </when>
+   </conditional>
+
+<conditional name="source22">
+  <param name="source22_source" type="select" label="gapdist Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param22"  type="text" label="Enter gapdist" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param22" type="data" label="Choose the step from which to get the parameter gapdist"/> 
+  </when>
+   </conditional>
+
+<conditional name="source23">
+  <param name="source23_source" type="select" label="type Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param23"  type="text" label="Enter type" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param23" type="data" label="Choose the step from which to get the parameter type"/> 
+  </when>
+   </conditional>
+
+<conditional name="source24">
+  <param name="source24_source" type="select" label="output Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param24"  type="text" label="Enter output" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param24" type="data" label="Choose the step from which to get the parameter output"/> 
+  </when>
+   </conditional>
+ </when>
+ </conditional>
+</inputs>
+  <outputs>
+    <data format="tabular" name="output" />
+  </outputs>
+  <help>
+
+.. class:: infomark
+
+**TIP:** About email: type is String
+  </help>
+</tool>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/workflowclients/client_7.xml~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,483 @@
+<tool id="client_7" name="runclustalW2    ">
+  <description> Client for method: runclustalW2 , Web service: http://om.cs.uga.edu/demo/clusatlW2.wadl </description>
+  <command interpreter="python">
+  #client_1.py 
+  $output 
+  http://www.ebi.ac.uk/Tools/services/restclustalw2/run
+  email
+#if $source0.source0_source=="user" $source0.user_param0 #else $source0.cached_param0 #end if
+#if $cond_source.optional_param_source=="yes"  type
+#if $cond_source.source1.source1_source=="user" $cond_source.source1.user_param1 #else $cond_source.source1.cached_param1 #end if
+  title
+#if $cond_source.source2.source2_source=="user" $cond_source.source2.user_param2 #else $cond_source.source2.cached_param2 #end if
+  output
+#if $cond_source.source3.source3_source=="user" $cond_source.source3.user_param3 #else $cond_source.source3.cached_param3 #end if
+  alignments
+#if $cond_source.source4.source4_source=="user" $cond_source.source4.user_param4 #else $cond_source.source4.cached_param4 #end if
+  outorder
+#if $cond_source.source5.source5_source=="user" $cond_source.source5.user_param5 #else $cond_source.source5.cached_param5 #end if
+  sequence
+#if $cond_source.source6.source6_source=="user" $cond_source.source6.user_param6 #else $cond_source.source6.cached_param6 #end if
+  ktup
+#if $cond_source.source7.source7_source=="user" $cond_source.source7.user_param7 #else $cond_source.source7.cached_param7 #end if
+  window
+#if $cond_source.source8.source8_source=="user" $cond_source.source8.user_param8 #else $cond_source.source8.cached_param8 #end if
+  score
+#if $cond_source.source9.source9_source=="user" $cond_source.source9.user_param9 #else $cond_source.source9.cached_param9 #end if
+  topdiag
+#if $cond_source.source10.source10_source=="user" $cond_source.source10.user_param10 #else $cond_source.source10.cached_param10 #end if
+  pairgap
+#if $cond_source.source11.source11_source=="user" $cond_source.source11.user_param11 #else $cond_source.source11.cached_param11 #end if
+  pwmatrix
+#if $cond_source.source12.source12_source=="user" $cond_source.source12.user_param12 #else $cond_source.source12.cached_param12 #end if
+  pwdnamatrix
+#if $cond_source.source13.source13_source=="user" $cond_source.source13.user_param13 #else $cond_source.source13.cached_param13 #end if
+  pwgapopen
+#if $cond_source.source14.source14_source=="user" $cond_source.source14.user_param14 #else $cond_source.source14.cached_param14 #end if
+  pwgapext
+#if $cond_source.source15.source15_source=="user" $cond_source.source15.user_param15 #else $cond_source.source15.cached_param15 #end if
+  matrix
+#if $cond_source.source16.source16_source=="user" $cond_source.source16.user_param16 #else $cond_source.source16.cached_param16 #end if
+  dnamatrix
+#if $cond_source.source17.source17_source=="user" $cond_source.source17.user_param17 #else $cond_source.source17.cached_param17 #end if
+  gapopen
+#if $cond_source.source18.source18_source=="user" $cond_source.source18.user_param18 #else $cond_source.source18.cached_param18 #end if
+  noendgaps
+#if $cond_source.source19.source19_source=="user" $cond_source.source19.user_param19 #else $cond_source.source19.cached_param19 #end if
+  gapext
+#if $cond_source.source20.source20_source=="user" $cond_source.source20.user_param20 #else $cond_source.source20.cached_param20 #end if
+  gapext
+#if $cond_source.source21.source21_source=="user" $cond_source.source21.user_param21 #else $cond_source.source21.cached_param21 #end if
+  iteration
+#if $cond_source.source22.source22_source=="user" $cond_source.source22.user_param22 #else $cond_source.source22.cached_param22 #end if
+  numiter
+#if $cond_source.source23.source23_source=="user" $cond_source.source23.user_param23 #else $cond_source.source23.cached_param23 #end if
+#else 
+#end if
+</command>
+  <inputs>
+<conditional name="source0">
+    <param name="source0_source" type="select" label="id Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+      <param format="text" size = "150" name = "user_param0"  type="text" label="Enter email" help="see tip below" />
+ </when>
+ <when value="cached">
+    <param name = "cached_param0" type="data" label="Choose the step from which to get the parameter id"/> 
+ </when></conditional>  <conditional name="cond_source">
+  <param name="optional_param_source" type="select" label="Display Additional Parameters"> 
+ <option value="no" selected="true">no</option> 
+ <option value="yes">yes</option> 
+ </param> 
+    <when value="no"> 
+     </when>
+    <when value="yes"> 
+
+<conditional name="source1">
+  <param name="source1_source" type="select" label="type Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param name="user_param1" type="select" label="Select type" help="see tip below">
+ <option value="protein" selected="true">protein</option>
+  <option value="dna" >dna</option>
+     </param> 
+ </when>
+<when value="cached">
+ <param name = "cached_param1" type="data" label="Choose the step from which to get the parameter type"/> 
+  </when></conditional>
+
+<conditional name="source2">
+  <param name="source2_source" type="select" label="title Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param2"  type="text" label="Enter title" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param2" type="data" label="Choose the step from which to get the parameter title"/> 
+  </when></conditional>
+
+<conditional name="source3">
+  <param name="source3_source" type="select" label="output Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param name="user_param3" type="select" label="Select output" help="see tip below">
+ <option value="aln1" selected="true">aln1</option>
+  <option value="aln2" >aln2</option>
+  <option value="gcg" >gcg</option>
+  <option value="phylip" >phylip</option>
+  <option value="nexus" >nexus</option>
+  <option value="pir" >pir</option>
+  <option value="gde" >gde</option>
+  <option value="fasta" >fasta</option>
+     </param> 
+ </when>
+<when value="cached">
+ <param name = "cached_param3" type="data" label="Choose the step from which to get the parameter output"/> 
+  </when></conditional>
+
+<conditional name="source4">
+  <param name="source4_source" type="select" label="alignments Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param name="user_param4" type="select" label="Select alignments" help="see tip below">
+ <option value="slow" selected="true">slow</option>
+  <option value="fast" >fast</option>
+     </param> 
+ </when>
+<when value="cached">
+ <param name = "cached_param4" type="data" label="Choose the step from which to get the parameter alignments"/> 
+  </when></conditional>
+
+<conditional name="source5">
+  <param name="source5_source" type="select" label="outorder Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param name="user_param5" type="select" label="Select outorder" help="see tip below">
+ <option value="aligned" selected="true">aligned</option>
+  <option value="input" >input</option>
+     </param> 
+ </when>
+<when value="cached">
+ <param name = "cached_param5" type="data" label="Choose the step from which to get the parameter outorder"/> 
+  </when></conditional>
+
+<conditional name="source6">
+  <param name="source6_source" type="select" label="sequence Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param6"  type="text" label="Enter sequence" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param6" type="data" label="Choose the step from which to get the parameter sequence"/> 
+  </when></conditional>
+
+<conditional name="source7">
+  <param name="source7_source" type="select" label="ktup Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param name="user_param7" type="select" label="Select ktup" help="see tip below">
+ <option value="1" selected="true">1</option>
+  <option value="2" >2</option>
+  <option value="3" >3</option>
+  <option value="4" >4</option>
+  <option value="5" >5</option>
+     </param> 
+ </when>
+<when value="cached">
+ <param name = "cached_param7" type="data" label="Choose the step from which to get the parameter ktup"/> 
+  </when></conditional>
+
+<conditional name="source8">
+  <param name="source8_source" type="select" label="window Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param name="user_param8" type="select" label="Select window" help="see tip below">
+ <option value="10" >10</option>
+  <option value="9" >9</option>
+  <option value="8" >8</option>
+  <option value="7" >7</option>
+  <option value="6" >6</option>
+  <option value="5" selected="true">5</option>
+  <option value="4" >4</option>
+  <option value="3" >3</option>
+  <option value="2" >2</option>
+  <option value="1" >1</option>
+  <option value="0" >0</option>
+     </param> 
+ </when>
+<when value="cached">
+ <param name = "cached_param8" type="data" label="Choose the step from which to get the parameter window"/> 
+  </when></conditional>
+
+<conditional name="source9">
+  <param name="source9_source" type="select" label="score Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param name="user_param9" type="select" label="Select score" help="see tip below">
+ <option value="percent" selected="true">percent</option>
+  <option value="absolute" >absolute</option>
+     </param> 
+ </when>
+<when value="cached">
+ <param name = "cached_param9" type="data" label="Choose the step from which to get the parameter score"/> 
+  </when></conditional>
+
+<conditional name="source10">
+  <param name="source10_source" type="select" label="topdiag Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param name="user_param10" type="select" label="Select topdiag" help="see tip below">
+ <option value="10" >10</option>
+  <option value="9" >9</option>
+  <option value="8" >8</option>
+  <option value="7" >7</option>
+  <option value="6" >6</option>
+  <option value="5" selected="true">5</option>
+  <option value="4" >4</option>
+  <option value="3" >3</option>
+  <option value="2" >2</option>
+  <option value="1" >1</option>
+     </param> 
+ </when>
+<when value="cached">
+ <param name = "cached_param10" type="data" label="Choose the step from which to get the parameter topdiag"/> 
+  </when></conditional>
+
+<conditional name="source11">
+  <param name="source11_source" type="select" label="pairgap Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param name="user_param11" type="select" label="Select pairgap" help="see tip below">
+ <option value="1" >1</option>
+  <option value="2" >2</option>
+  <option value="3" selected="true">3</option>
+  <option value="4" >4</option>
+  <option value="5" >5</option>
+  <option value="10" >10</option>
+  <option value="25" >25</option>
+  <option value="50" >50</option>
+  <option value="100" >100</option>
+  <option value="250" >250</option>
+  <option value="500" >500</option>
+     </param> 
+ </when>
+<when value="cached">
+ <param name = "cached_param11" type="data" label="Choose the step from which to get the parameter pairgap"/> 
+  </when></conditional>
+
+<conditional name="source12">
+  <param name="source12_source" type="select" label="pwmatrix Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param name="user_param12" type="select" label="Select pwmatrix" help="see tip below">
+ <option value="blosum" >blosum</option>
+  <option value="pam" >pam</option>
+  <option value="gonnet" selected="true">gonnet</option>
+  <option value="id" >id</option>
+     </param> 
+ </when>
+<when value="cached">
+ <param name = "cached_param12" type="data" label="Choose the step from which to get the parameter pwmatrix"/> 
+  </when></conditional>
+
+<conditional name="source13">
+  <param name="source13_source" type="select" label="pwdnamatrix Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param name="user_param13" type="select" label="Select pwdnamatrix" help="see tip below">
+ <option value="iub" selected="true">iub</option>
+  <option value="clustalw" >clustalw</option>
+     </param> 
+ </when>
+<when value="cached">
+ <param name = "cached_param13" type="data" label="Choose the step from which to get the parameter pwdnamatrix"/> 
+  </when></conditional>
+
+<conditional name="source14">
+  <param name="source14_source" type="select" label="pwgapopen Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param name="user_param14" type="select" label="Select pwgapopen" help="see tip below">
+ <option value="100" >100</option>
+  <option value="50" >50</option>
+  <option value="25" >25</option>
+  <option value="10" selected="true">10</option>
+  <option value="5" >5</option>
+  <option value="2" >2</option>
+  <option value="1" >1</option>
+     </param> 
+ </when>
+<when value="cached">
+ <param name = "cached_param14" type="data" label="Choose the step from which to get the parameter pwgapopen"/> 
+  </when></conditional>
+
+<conditional name="source15">
+  <param name="source15_source" type="select" label="pwgapext Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param name="user_param15" type="select" label="Select pwgapext" help="see tip below">
+ <option value="0.05" >0.05</option>
+  <option value="0.1" selected="true">0.1</option>
+  <option value="0.5" >0.5</option>
+  <option value="1.0" >1.0</option>
+  <option value="2.5" >2.5</option>
+  <option value="5.0" >5.0</option>
+  <option value="7.5" >7.5</option>
+  <option value="10.0" >10.0</option>
+     </param> 
+ </when>
+<when value="cached">
+ <param name = "cached_param15" type="data" label="Choose the step from which to get the parameter pwgapext"/> 
+  </when></conditional>
+
+<conditional name="source16">
+  <param name="source16_source" type="select" label="matrix Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param name="user_param16" type="select" label="Select matrix" help="see tip below">
+ <option value="blosum" >blosum</option>
+  <option value="pam" >pam</option>
+  <option value="gonnet" selected="true">gonnet</option>
+  <option value="id" >id</option>
+     </param> 
+ </when>
+<when value="cached">
+ <param name = "cached_param16" type="data" label="Choose the step from which to get the parameter matrix"/> 
+  </when></conditional>
+
+<conditional name="source17">
+  <param name="source17_source" type="select" label="dnamatrix Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param name="user_param17" type="select" label="Select dnamatrix" help="see tip below">
+ <option value="iub" selected="true">iub</option>
+  <option value="clustalw" >clustalw</option>
+     </param> 
+ </when>
+<when value="cached">
+ <param name = "cached_param17" type="data" label="Choose the step from which to get the parameter dnamatrix"/> 
+  </when></conditional>
+
+<conditional name="source18">
+  <param name="source18_source" type="select" label="gapopen Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param name="user_param18" type="select" label="Select gapopen" help="see tip below">
+ <option value="100" >100</option>
+  <option value="50" >50</option>
+  <option value="25" >25</option>
+  <option value="10" selected="true">10</option>
+  <option value="5" >5</option>
+  <option value="2" >2</option>
+  <option value="1" >1</option>
+     </param> 
+ </when>
+<when value="cached">
+ <param name = "cached_param18" type="data" label="Choose the step from which to get the parameter gapopen"/> 
+  </when></conditional>
+
+<conditional name="source19">
+  <param name="source19_source" type="select" label="noendgaps Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param name="user_param19" type="select" label="Select noendgaps" help="see tip below">
+ <option value="false" selected="true">false</option>
+  <option value="true" >true</option>
+     </param> 
+ </when>
+<when value="cached">
+ <param name = "cached_param19" type="data" label="Choose the step from which to get the parameter noendgaps"/> 
+  </when></conditional>
+
+<conditional name="source20">
+  <param name="source20_source" type="select" label="gapext Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param name="user_param20" type="select" label="Select gapext" help="see tip below">
+ <option value="0.05" >0.05</option>
+  <option value="0.20" selected="true">0.20</option>
+  <option value="0.5" >0.5</option>
+  <option value="1.0" >1.0</option>
+  <option value="2.5" >2.5</option>
+  <option value="5.0" >5.0</option>
+  <option value="7.5" >7.5</option>
+  <option value="10.0" >10.0</option>
+     </param> 
+ </when>
+<when value="cached">
+ <param name = "cached_param20" type="data" label="Choose the step from which to get the parameter gapext"/> 
+  </when></conditional>
+
+<conditional name="source21">
+  <param name="source21_source" type="select" label="gapext Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param name="user_param21" type="select" label="Select gapext" help="see tip below">
+ <option value="10" >10</option>
+  <option value="9" >9</option>
+  <option value="8" >8</option>
+  <option value="7" >7</option>
+  <option value="6" >6</option>
+  <option value="5" selected="true">5</option>
+  <option value="4" >4</option>
+  <option value="3" >3</option>
+  <option value="2" >2</option>
+  <option value="1" >1</option>
+     </param> 
+ </when>
+<when value="cached">
+ <param name = "cached_param21" type="data" label="Choose the step from which to get the parameter gapext"/> 
+  </when></conditional>
+
+<conditional name="source22">
+  <param name="source22_source" type="select" label="iteration Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param name="user_param22" type="select" label="Select iteration" help="see tip below">
+ <option value="none" >none</option>
+  <option value="tree" >tree</option>
+  <option value="alignment" >alignment</option>
+     </param> 
+ </when>
+<when value="cached">
+ <param name = "cached_param22" type="data" label="Choose the step from which to get the parameter iteration"/> 
+  </when></conditional>
+
+<conditional name="source23">
+  <param name="source23_source" type="select" label="numiter Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param name="user_param23" type="select" label="Select numiter" help="see tip below">
+ <option value="1" selected="true">1</option>
+  <option value="2" >2</option>
+  <option value="3" >3</option>
+  <option value="4" >4</option>
+  <option value="5" >5</option>
+  <option value="6" >6</option>
+  <option value="7" >7</option>
+  <option value="8" >8</option>
+  <option value="9" >9</option>
+  <option value="10" >10</option>
+     </param> 
+ </when>
+<when value="cached">
+ <param name = "cached_param23" type="data" label="Choose the step from which to get the parameter numiter"/> 
+  </when></conditional>
+ </when>
+ </conditional>
+</inputs>
+  <outputs>
+    <data format="tabular" name="output" />
+  </outputs>
+  <help>
+
+.. class:: infomark
+
+**TIP:** email type is xsd:string
+  </help>
+</tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/workflowclients/client_8.xml~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,431 @@
+<tool id="client_8" name="run">
+  <description> Client for operation : run , Web service: wublast.wublast_services </description>
+  <command interpreter="python">
+  	client_1.py
+	#if $cond_source.optional_param_source=="no":
+  	$output
+	$servicetype
+      $url
+      $method
+wublast.wublast_services         run
+	"_parameters|_sequence"
+	 #if $source0.source0_source=="user":
+	 $source0.user_param0
+	 #else:
+	 fileInput
+	 $source0.cached_param0
+	 #end if
+	"_parameters|_stype"
+	 #if $source1.source1_source=="user":
+	 $source1.user_param1
+	 #else:
+	 fileInput
+	 $source1.cached_param1
+	 #end if
+	"_parameters|_program"
+	 #if $source2.source2_source=="user":
+	 $source2.user_param2
+	 #else:
+	 fileInput
+	 $source2.cached_param2
+	 #end if
+	"_email"
+	 #if $source3.source3_source=="user":
+	 $source3.user_param3
+	 #else:
+	 fileInput
+	 $source3.cached_param3
+	 #end if
+	"_parameters|_database|_string|$|"
+	 #if $source4.source4_source=="user":
+	 $source4.user_param4
+	 #else:
+	 fileInput
+	 $source4.cached_param4
+	 #end if
+   	#else:
+  	$output
+	$servicetype
+      $url
+      $method
+wublast.wublast_services            run
+	"_parameters|_sequence"
+	 #if $source0.source0_source=="user":
+	 $source0.user_param0
+	 #else:
+	 fileInput
+	 $source0.cached_param0
+	 #end if
+	"_parameters|_stype"
+	 #if $source1.source1_source=="user":
+	 $source1.user_param1
+	 #else:
+	 fileInput
+	 $source1.cached_param1
+	 #end if
+	"_parameters|_program"
+	 #if $source2.source2_source=="user":
+	 $source2.user_param2
+	 #else:
+	 fileInput
+	 $source2.cached_param2
+	 #end if
+	"_email"
+	 #if $source3.source3_source=="user":
+	 $source3.user_param3
+	 #else:
+	 fileInput
+	 $source3.cached_param3
+	 #end if
+	"_parameters|_database|_string|$|"
+	 #if $source4.source4_source=="user":
+	 $source4.user_param4
+	 #else:
+	 fileInput
+	 $source4.cached_param4
+	 #end if
+	"_parameters|_sensitivity"
+	 #if $cond_source.source5.source5_source=="user":
+	 $cond_source.source5.user_param5
+	 #else:
+	 fileInput
+	 $cond_source.source5.cached_param5
+	 #end if
+	"_parameters|_topcombon"
+	 #if $cond_source.source6.source6_source=="user":
+	 $cond_source.source6.user_param6
+	 #else:
+	 fileInput
+	 $cond_source.source6.cached_param6
+	 #end if
+	"_parameters|_filter"
+	 #if $cond_source.source7.source7_source=="user":
+	 $cond_source.source7.user_param7
+	 #else:
+	 fileInput
+	 $cond_source.source7.cached_param7
+	 #end if
+	"_parameters|_alignments"
+	 #if $cond_source.source8.source8_source=="user":
+	 $cond_source.source8.user_param8
+	 #else:
+	 fileInput
+	 $cond_source.source8.cached_param8
+	 #end if
+	"_parameters|_scores"
+	 #if $cond_source.source9.source9_source=="user":
+	 $cond_source.source9.user_param9
+	 #else:
+	 fileInput
+	 $cond_source.source9.cached_param9
+	 #end if
+	"_parameters|_viewfilter"
+	 #if $cond_source.source10.source10_source=="user":
+	 $cond_source.source10.user_param10
+	 #else:
+	 fileInput
+	 $cond_source.source10.cached_param10
+	 #end if
+	"_parameters|_sort"
+	 #if $cond_source.source11.source11_source=="user":
+	 $cond_source.source11.user_param11
+	 #else:
+	 fileInput
+	 $cond_source.source11.cached_param11
+	 #end if
+	"_parameters|_strand"
+	 #if $cond_source.source12.source12_source=="user":
+	 $cond_source.source12.user_param12
+	 #else:
+	 fileInput
+	 $cond_source.source12.cached_param12
+	 #end if
+	"_parameters|_align"
+	 #if $cond_source.source13.source13_source=="user":
+	 $cond_source.source13.user_param13
+	 #else:
+	 fileInput
+	 $cond_source.source13.cached_param13
+	 #end if
+	"_parameters|_matrix"
+	 #if $cond_source.source14.source14_source=="user":
+	 $cond_source.source14.user_param14
+	 #else:
+	 fileInput
+	 $cond_source.source14.cached_param14
+	 #end if
+	"_title"
+	 #if $cond_source.source15.source15_source=="user":
+	 $cond_source.source15.user_param15
+	 #else:
+	 fileInput
+	 $cond_source.source15.cached_param15
+	 #end if
+	"_parameters|_stats"
+	 #if $cond_source.source16.source16_source=="user":
+	 $cond_source.source16.user_param16
+	 #else:
+	 fileInput
+	 $cond_source.source16.cached_param16
+	 #end if
+	"_parameters|_exp"
+	 #if $cond_source.source17.source17_source=="user":
+	 $cond_source.source17.user_param17
+	 #else:
+	 fileInput
+	 $cond_source.source17.cached_param17
+	 #end if
+   	#end if
+</command>
+  <inputs>
+     <param name="servicetype" type="hidden" value="SOAP" />
+     <param name="url" type="hidden" value="http://www.cs.uga.edu/~guttula/wublast.wsdl" />
+     <param name="method" type="hidden" value="run" />
+<conditional name="source0">
+    <param name="source0_source" type="select" label="sequence Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+      <param format="text" size = "150" name = "user_param0"  type="text" label="Enter sequence" help="see tip below" />
+ </when>
+ <when value="cached">
+    <param name = "cached_param0" type="data" label="Choose the step from which to get the parameter sequence"/> 
+ </when>
+   </conditional><conditional name="source1">
+    <param name="source1_source" type="select" label="stype Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+      <param format="text" size = "150" name = "user_param1"  type="text" label="Enter stype" help="see tip below" />
+ </when>
+ <when value="cached">
+    <param name = "cached_param1" type="data" label="Choose the step from which to get the parameter stype"/> 
+ </when>
+   </conditional><conditional name="source2">
+    <param name="source2_source" type="select" label="program Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+      <param format="text" size = "150" name = "user_param2"  type="text" label="Enter program" help="see tip below" />
+ </when>
+ <when value="cached">
+    <param name = "cached_param2" type="data" label="Choose the step from which to get the parameter program"/> 
+ </when>
+   </conditional><conditional name="source3">
+    <param name="source3_source" type="select" label="email Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+      <param format="text" size = "150" name = "user_param3"  type="text" label="Enter email" help="see tip below" />
+ </when>
+ <when value="cached">
+    <param name = "cached_param3" type="data" label="Choose the step from which to get the parameter email"/> 
+ </when>
+   </conditional><conditional name="source4">
+    <param name="source4_source" type="select" label="database Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+      <param format="text" size = "150" name = "user_param4"  type="text" label="Enter database" help="see tip below" />
+ </when>
+ <when value="cached">
+    <param name = "cached_param4" type="data" label="Choose the step from which to get the parameter database"/> 
+ </when>
+   </conditional>  <conditional name="cond_source">
+  <param name="optional_param_source" type="select" label="Display Additional Parameters"> 
+ <option value="no" selected="true">no</option> 
+ <option value="yes">yes</option> 
+ </param> 
+    <when value="no"> 
+     </when>
+    <when value="yes"> 
+
+<conditional name="source5">
+  <param name="source5_source" type="select" label="sensitivity Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param5"  type="text" label="Enter sensitivity" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param5" type="data" label="Choose the step from which to get the parameter sensitivity"/> 
+  </when>
+   </conditional>
+
+<conditional name="source6">
+  <param name="source6_source" type="select" label="topcombon Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param6"  type="text" label="Enter topcombon" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param6" type="data" label="Choose the step from which to get the parameter topcombon"/> 
+  </when>
+   </conditional>
+
+<conditional name="source7">
+  <param name="source7_source" type="select" label="filter Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param7"  type="text" label="Enter filter" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param7" type="data" label="Choose the step from which to get the parameter filter"/> 
+  </when>
+   </conditional>
+
+<conditional name="source8">
+  <param name="source8_source" type="select" label="alignments Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param8"  type="text" label="Enter alignments" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param8" type="data" label="Choose the step from which to get the parameter alignments"/> 
+  </when>
+   </conditional>
+
+<conditional name="source9">
+  <param name="source9_source" type="select" label="scores Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param9"  type="text" label="Enter scores" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param9" type="data" label="Choose the step from which to get the parameter scores"/> 
+  </when>
+   </conditional>
+
+<conditional name="source10">
+  <param name="source10_source" type="select" label="viewfilter Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param10"  type="text" label="Enter viewfilter" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param10" type="data" label="Choose the step from which to get the parameter viewfilter"/> 
+  </when>
+   </conditional>
+
+<conditional name="source11">
+  <param name="source11_source" type="select" label="sort Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param11"  type="text" label="Enter sort" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param11" type="data" label="Choose the step from which to get the parameter sort"/> 
+  </when>
+   </conditional>
+
+<conditional name="source12">
+  <param name="source12_source" type="select" label="strand Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param12"  type="text" label="Enter strand" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param12" type="data" label="Choose the step from which to get the parameter strand"/> 
+  </when>
+   </conditional>
+
+<conditional name="source13">
+  <param name="source13_source" type="select" label="align Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param13"  type="text" label="Enter align" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param13" type="data" label="Choose the step from which to get the parameter align"/> 
+  </when>
+   </conditional>
+
+<conditional name="source14">
+  <param name="source14_source" type="select" label="matrix Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param14"  type="text" label="Enter matrix" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param14" type="data" label="Choose the step from which to get the parameter matrix"/> 
+  </when>
+   </conditional>
+
+<conditional name="source15">
+  <param name="source15_source" type="select" label="title Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param15"  type="text" label="Enter title" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param15" type="data" label="Choose the step from which to get the parameter title"/> 
+  </when>
+   </conditional>
+
+<conditional name="source16">
+  <param name="source16_source" type="select" label="stats Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param16"  type="text" label="Enter stats" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param16" type="data" label="Choose the step from which to get the parameter stats"/> 
+  </when>
+   </conditional>
+
+<conditional name="source17">
+  <param name="source17_source" type="select" label="exp Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param17"  type="text" label="Enter exp" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param17" type="data" label="Choose the step from which to get the parameter exp"/> 
+  </when>
+   </conditional>
+ </when>
+ </conditional>
+</inputs>
+  <outputs>
+    <data format="tabular" name="output" />
+  </outputs>
+  <help>
+
+.. class:: infomark
+
+**TIP:** About sequence: type is String
+
+.. class:: infomark
+
+**TIP:** About stype: type is String
+
+.. class:: infomark
+
+**TIP:** About program: type is String
+
+.. class:: infomark
+
+**TIP:** About email: type is String
+
+.. class:: infomark
+
+**TIP:** About database: type is String
+  </help>
+</tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/workflowclients/client_86.xml~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,431 @@
+<tool id="client_86" name="wublast.run">
+  <description> Client for operation : run , Web service : wublast.wublast_services </description>
+  <command interpreter="python">
+  	client_1.py
+	#if $cond_source.optional_param_source=="no":
+  	$output
+	$servicetype
+      $url
+      $method
+wublast.wublast_services         run
+	"_parameters|_sequence"
+	 #if $source0.source0_source=="user":
+	 $source0.user_param0
+	 #else:
+	 fileInput
+	 $source0.cached_param0
+	 #end if
+	"_parameters|_stype"
+	 #if $source1.source1_source=="user":
+	 $source1.user_param1
+	 #else:
+	 fileInput
+	 $source1.cached_param1
+	 #end if
+	"_parameters|_program"
+	 #if $source2.source2_source=="user":
+	 $source2.user_param2
+	 #else:
+	 fileInput
+	 $source2.cached_param2
+	 #end if
+	"_email"
+	 #if $source3.source3_source=="user":
+	 $source3.user_param3
+	 #else:
+	 fileInput
+	 $source3.cached_param3
+	 #end if
+	"_parameters|_database|_string|$|"
+	 #if $source4.source4_source=="user":
+	 $source4.user_param4
+	 #else:
+	 fileInput
+	 $source4.cached_param4
+	 #end if
+   	#else:
+  	$output
+	$servicetype
+      $url
+      $method
+wublast.wublast_services            run
+	"_parameters|_sequence"
+	 #if $source0.source0_source=="user":
+	 $source0.user_param0
+	 #else:
+	 fileInput
+	 $source0.cached_param0
+	 #end if
+	"_parameters|_stype"
+	 #if $source1.source1_source=="user":
+	 $source1.user_param1
+	 #else:
+	 fileInput
+	 $source1.cached_param1
+	 #end if
+	"_parameters|_program"
+	 #if $source2.source2_source=="user":
+	 $source2.user_param2
+	 #else:
+	 fileInput
+	 $source2.cached_param2
+	 #end if
+	"_email"
+	 #if $source3.source3_source=="user":
+	 $source3.user_param3
+	 #else:
+	 fileInput
+	 $source3.cached_param3
+	 #end if
+	"_parameters|_database|_string|$|"
+	 #if $source4.source4_source=="user":
+	 $source4.user_param4
+	 #else:
+	 fileInput
+	 $source4.cached_param4
+	 #end if
+	"_parameters|_sensitivity"
+	 #if $cond_source.source5.source5_source=="user":
+	 $cond_source.source5.user_param5
+	 #else:
+	 fileInput
+	 $cond_source.source5.cached_param5
+	 #end if
+	"_parameters|_topcombon"
+	 #if $cond_source.source6.source6_source=="user":
+	 $cond_source.source6.user_param6
+	 #else:
+	 fileInput
+	 $cond_source.source6.cached_param6
+	 #end if
+	"_parameters|_filter"
+	 #if $cond_source.source7.source7_source=="user":
+	 $cond_source.source7.user_param7
+	 #else:
+	 fileInput
+	 $cond_source.source7.cached_param7
+	 #end if
+	"_parameters|_alignments"
+	 #if $cond_source.source8.source8_source=="user":
+	 $cond_source.source8.user_param8
+	 #else:
+	 fileInput
+	 $cond_source.source8.cached_param8
+	 #end if
+	"_parameters|_scores"
+	 #if $cond_source.source9.source9_source=="user":
+	 $cond_source.source9.user_param9
+	 #else:
+	 fileInput
+	 $cond_source.source9.cached_param9
+	 #end if
+	"_parameters|_viewfilter"
+	 #if $cond_source.source10.source10_source=="user":
+	 $cond_source.source10.user_param10
+	 #else:
+	 fileInput
+	 $cond_source.source10.cached_param10
+	 #end if
+	"_parameters|_sort"
+	 #if $cond_source.source11.source11_source=="user":
+	 $cond_source.source11.user_param11
+	 #else:
+	 fileInput
+	 $cond_source.source11.cached_param11
+	 #end if
+	"_parameters|_strand"
+	 #if $cond_source.source12.source12_source=="user":
+	 $cond_source.source12.user_param12
+	 #else:
+	 fileInput
+	 $cond_source.source12.cached_param12
+	 #end if
+	"_parameters|_align"
+	 #if $cond_source.source13.source13_source=="user":
+	 $cond_source.source13.user_param13
+	 #else:
+	 fileInput
+	 $cond_source.source13.cached_param13
+	 #end if
+	"_parameters|_matrix"
+	 #if $cond_source.source14.source14_source=="user":
+	 $cond_source.source14.user_param14
+	 #else:
+	 fileInput
+	 $cond_source.source14.cached_param14
+	 #end if
+	"_title"
+	 #if $cond_source.source15.source15_source=="user":
+	 $cond_source.source15.user_param15
+	 #else:
+	 fileInput
+	 $cond_source.source15.cached_param15
+	 #end if
+	"_parameters|_stats"
+	 #if $cond_source.source16.source16_source=="user":
+	 $cond_source.source16.user_param16
+	 #else:
+	 fileInput
+	 $cond_source.source16.cached_param16
+	 #end if
+	"_parameters|_exp"
+	 #if $cond_source.source17.source17_source=="user":
+	 $cond_source.source17.user_param17
+	 #else:
+	 fileInput
+	 $cond_source.source17.cached_param17
+	 #end if
+   	#end if
+</command>
+  <inputs>
+     <param name="servicetype" type="hidden" value="SOAP" />
+     <param name="url" type="hidden" value="http://www.cs.uga.edu/~guttula/wublast.wsdl" />
+     <param name="method" type="hidden" value="run" />
+<conditional name="source0">
+    <param name="source0_source" type="select" label="sequence Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+      <param format="text" size = "150" name = "user_param0"  type="text" label="Enter sequence" help="see tip below" />
+ </when>
+ <when value="cached">
+    <param name = "cached_param0" type="data" label="Choose the step from which to get the parameter sequence"/> 
+ </when>
+   </conditional><conditional name="source1">
+    <param name="source1_source" type="select" label="stype Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+      <param format="text" size = "150" name = "user_param1"  type="text" label="Enter stype" help="see tip below" />
+ </when>
+ <when value="cached">
+    <param name = "cached_param1" type="data" label="Choose the step from which to get the parameter stype"/> 
+ </when>
+   </conditional><conditional name="source2">
+    <param name="source2_source" type="select" label="program Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+      <param format="text" size = "150" name = "user_param2"  type="text" label="Enter program" help="see tip below" />
+ </when>
+ <when value="cached">
+    <param name = "cached_param2" type="data" label="Choose the step from which to get the parameter program"/> 
+ </when>
+   </conditional><conditional name="source3">
+    <param name="source3_source" type="select" label="email Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+      <param format="text" size = "150" name = "user_param3"  type="text" label="Enter email" help="see tip below" />
+ </when>
+ <when value="cached">
+    <param name = "cached_param3" type="data" label="Choose the step from which to get the parameter email"/> 
+ </when>
+   </conditional><conditional name="source4">
+    <param name="source4_source" type="select" label="database Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+      <param format="text" size = "150" name = "user_param4"  type="text" label="Enter database" help="see tip below" />
+ </when>
+ <when value="cached">
+    <param name = "cached_param4" type="data" label="Choose the step from which to get the parameter database"/> 
+ </when>
+   </conditional>  <conditional name="cond_source">
+  <param name="optional_param_source" type="select" label="Display Optional Parameters"> 
+ <option value="no" selected="true">no</option> 
+ <option value="yes">yes</option> 
+ </param> 
+    <when value="no"> 
+     </when>
+    <when value="yes"> 
+
+<conditional name="source5">
+  <param name="source5_source" type="select" label="sensitivity Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param5"  type="text" label="Enter sensitivity" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param5" type="data" label="Choose the step from which to get the parameter sensitivity"/> 
+  </when>
+   </conditional>
+
+<conditional name="source6">
+  <param name="source6_source" type="select" label="topcombon Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param6"  type="text" label="Enter topcombon" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param6" type="data" label="Choose the step from which to get the parameter topcombon"/> 
+  </when>
+   </conditional>
+
+<conditional name="source7">
+  <param name="source7_source" type="select" label="filter Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param7"  type="text" label="Enter filter" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param7" type="data" label="Choose the step from which to get the parameter filter"/> 
+  </when>
+   </conditional>
+
+<conditional name="source8">
+  <param name="source8_source" type="select" label="alignments Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param8"  type="text" label="Enter alignments" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param8" type="data" label="Choose the step from which to get the parameter alignments"/> 
+  </when>
+   </conditional>
+
+<conditional name="source9">
+  <param name="source9_source" type="select" label="scores Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param9"  type="text" label="Enter scores" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param9" type="data" label="Choose the step from which to get the parameter scores"/> 
+  </when>
+   </conditional>
+
+<conditional name="source10">
+  <param name="source10_source" type="select" label="viewfilter Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param10"  type="text" label="Enter viewfilter" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param10" type="data" label="Choose the step from which to get the parameter viewfilter"/> 
+  </when>
+   </conditional>
+
+<conditional name="source11">
+  <param name="source11_source" type="select" label="sort Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param11"  type="text" label="Enter sort" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param11" type="data" label="Choose the step from which to get the parameter sort"/> 
+  </when>
+   </conditional>
+
+<conditional name="source12">
+  <param name="source12_source" type="select" label="strand Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param12"  type="text" label="Enter strand" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param12" type="data" label="Choose the step from which to get the parameter strand"/> 
+  </when>
+   </conditional>
+
+<conditional name="source13">
+  <param name="source13_source" type="select" label="align Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param13"  type="text" label="Enter align" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param13" type="data" label="Choose the step from which to get the parameter align"/> 
+  </when>
+   </conditional>
+
+<conditional name="source14">
+  <param name="source14_source" type="select" label="matrix Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param14"  type="text" label="Enter matrix" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param14" type="data" label="Choose the step from which to get the parameter matrix"/> 
+  </when>
+   </conditional>
+
+<conditional name="source15">
+  <param name="source15_source" type="select" label="title Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param15"  type="text" label="Enter title" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param15" type="data" label="Choose the step from which to get the parameter title"/> 
+  </when>
+   </conditional>
+
+<conditional name="source16">
+  <param name="source16_source" type="select" label="stats Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param16"  type="text" label="Enter stats" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param16" type="data" label="Choose the step from which to get the parameter stats"/> 
+  </when>
+   </conditional>
+
+<conditional name="source17">
+  <param name="source17_source" type="select" label="exp Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param17"  type="text" label="Enter exp" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param17" type="data" label="Choose the step from which to get the parameter exp"/> 
+  </when>
+   </conditional>
+ </when>
+ </conditional>
+</inputs>
+  <outputs>
+    <data format="tabular" name="output" />
+  </outputs>
+  <help>
+
+.. class:: infomark
+
+**TIP:** About sequence: type is String
+
+.. class:: infomark
+
+**TIP:** About stype: type is String
+
+.. class:: infomark
+
+**TIP:** About program: type is String
+
+.. class:: infomark
+
+**TIP:** About email: type is String
+
+.. class:: infomark
+
+**TIP:** About database: type is String
+  </help>
+</tool>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/workflowclients/client_9.xml~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,240 @@
+<tool id="client_9" name="genesbymolecularweight    ">
+  <description> Client for method: genesbymolecularweight , Web service: http://eupathdb.org/webservices/GeneQuestions/GenesByMolecularWeight.wadl </description>
+  <command interpreter="python">
+  	#client_1.py
+	#if $cond_source.optional_param_source=="no":
+  	$output
+	http://eupathdb.org/webservices/GeneQuestions/GenesByMolecularWeight.xml
+	organism
+	 #if $source0.source0_source=="user"
+	 $source0.user_param0
+	 #else:
+	 $source0.cached_param0
+	 #end if
+	min_molecular_weight
+	 #if $source1.source1_source=="user"
+	 $source1.user_param1
+	 #else:
+	 $source1.cached_param1
+	 #end if
+	max_molecular_weight
+	 #if $source2.source2_source=="user"
+	 $source2.user_param2
+	 #else:
+	 $source2.cached_param2
+	 #end if
+   	#else:  	$output
+	http://eupathdb.org/webservices/GeneQuestions/GenesByMolecularWeight.xml
+	organism
+	 #if $source0.source0_source=="user"
+	 $source0.user_param0
+	 #else:
+	 $source0.cached_param0
+	 #end if
+	min_molecular_weight
+	 #if $source1.source1_source=="user"
+	 $source1.user_param1
+	 #else:
+	 $source1.cached_param1
+	 #end if
+	max_molecular_weight
+	 #if $source2.source2_source=="user"
+	 $source2.user_param2
+	 #else:
+	 $source2.cached_param2
+	 #end if
+	o-fields
+	 #if $source3.source3_source=="user"
+	 $source3.user_param3
+	 #else:
+	 $source3.cached_param3
+	 #end if
+	o-tables
+	 #if $source4.source4_source=="user"
+	 $source4.user_param4
+	 #else:
+	 $source4.cached_param4
+	 #end if
+   	#end if
+</command>
+  <inputs>
+<conditional name="source0">
+    <param name="source0_source" type="select" label="Organism Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+    <param name="user_param0" type="select" label="Select Organism" help="see tip below">
+      <option value="Entamoeba**dispar" >Entamoeba dispar</option>
+       <option value="Entamoeba**histolytica" >Entamoeba histolytica</option>
+       <option value="Entamoeba**invadens" >Entamoeba invadens</option>
+       <option value="Cryptosporidium**parvum" >Cryptosporidium parvum</option>
+       <option value="Cryptosporidium**hominis" >Cryptosporidium hominis</option>
+       <option value="Cryptosporidium**muris" >Cryptosporidium muris</option>
+       <option value="Giardia**Assemblage**A**isolate**WB" >Giardia Assemblage A isolate WB</option>
+       <option value="Giardia**Assemblage**B**isolate**GS" >Giardia Assemblage B isolate GS</option>
+       <option value="Giardia**Assemblage**E**isolate**P15" >Giardia Assemblage E isolate P15</option>
+       <option value="Encephalitozoon**cuniculi" >Encephalitozoon cuniculi</option>
+       <option value="Encephalitozoon**intestinalis" >Encephalitozoon intestinalis</option>
+       <option value="Plasmodium**falciparum" >Plasmodium falciparum</option>
+       <option value="Plasmodium**vivax" >Plasmodium vivax</option>
+       <option value="Plasmodium**yoelii" >Plasmodium yoelii</option>
+       <option value="Plasmodium**berghei" >Plasmodium berghei</option>
+       <option value="Plasmodium**chabaudi" >Plasmodium chabaudi</option>
+       <option value="Plasmodium**knowlesi" >Plasmodium knowlesi</option>
+       <option value="Toxoplasma**gondii" >Toxoplasma gondii</option>
+       <option value="Neospora**caninum" >Neospora caninum</option>
+       <option value="Trichomonas**vaginalis" >Trichomonas vaginalis</option>
+       <option value="Trypanosoma**cruzi" >Trypanosoma cruzi</option>
+       <option value="Leishmania**braziliensis" >Leishmania braziliensis</option>
+       <option value="Leishmania**infantum" >Leishmania infantum</option>
+       <option value="Leishmania**major" >Leishmania major</option>
+       <option value="Leishmania**mexicana" >Leishmania mexicana</option>
+       <option value="Trypanosoma**brucei" >Trypanosoma brucei</option>
+       <option value="Trypanosoma**congolense" >Trypanosoma congolense</option>
+       <option value="Trypanosoma**vivax" >Trypanosoma vivax</option>
+     </param> 
+ </when>
+ <when value="cached">
+    <param name = "cached_param0" type="data" label="Choose the step from which to get the parameter Organism"/> 
+ </when></conditional><conditional name="source1">
+    <param name="source1_source" type="select" label="Min Molecular Weight (Daltons) Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+      <param format="text" size = "150" name = "user_param1"  type="text" label="Enter Min Molecular Weight (Daltons)" help="see tip below" />
+ </when>
+ <when value="cached">
+    <param name = "cached_param1" type="data" label="Choose the step from which to get the parameter Min Molecular Weight (Daltons)"/> 
+ </when></conditional><conditional name="source2">
+    <param name="source2_source" type="select" label="Max Molecular Weight (Daltons) Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+      <param format="text" size = "150" name = "user_param2"  type="text" label="Enter Max Molecular Weight (Daltons)" help="see tip below" />
+ </when>
+ <when value="cached">
+    <param name = "cached_param2" type="data" label="Choose the step from which to get the parameter Max Molecular Weight (Daltons)"/> 
+ </when></conditional>  <conditional name="cond_source">
+  <param name="optional_param_source" type="select" label="Display Additional Parameters"> 
+ <option value="no" selected="true">no</option> 
+ <option value="yes">yes</option> 
+ </param> 
+    <when value="no"> 
+     </when>
+    <when value="yes"> 
+
+<conditional name="source3">
+  <param name="source3_source" type="select" label="Output Fields Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param name="user_param3" type="select" label="Select Output Fields" help="see tip below">
+ <option value="all" >all</option>
+  <option value="none" selected="true">none</option>
+  <option value="primary_key" >primary_key</option>
+  <option value="formatted_gene_id" >formatted_gene_id</option>
+  <option value="external_db_name" >external_db_name</option>
+  <option value="sequence_id" >sequence_id</option>
+  <option value="chromosome" >chromosome</option>
+  <option value="location_text" >location_text</option>
+  <option value="strand" >strand</option>
+  <option value="gene_type" >gene_type</option>
+  <option value="exon_count" >exon_count</option>
+  <option value="transcript_length" >transcript_length</option>
+  <option value="cds_length" >cds_length</option>
+  <option value="product" >product</option>
+  <option value="protein_length" >protein_length</option>
+  <option value="tm_count" >tm_count</option>
+  <option value="molecular_weight" >molecular_weight</option>
+  <option value="isoelectric_point" >isoelectric_point</option>
+  <option value="ec_numbers_string" >ec_numbers_string</option>
+  <option value="ortholog_number" >ortholog_number</option>
+  <option value="paralog_number" >paralog_number</option>
+  <option value="orthomcl_name" >orthomcl_name</option>
+  <option value="signalp_scores" >signalp_scores</option>
+  <option value="signalp_peptide" >signalp_peptide</option>
+  <option value="ann_go_function" >ann_go_function</option>
+  <option value="ann_go_process" >ann_go_process</option>
+  <option value="ann_go_component" >ann_go_component</option>
+  <option value="pred_go_function" >pred_go_function</option>
+  <option value="pred_go_process" >pred_go_process</option>
+  <option value="pred_go_component" >pred_go_component</option>
+  <option value="organism" >organism</option>
+  <option value="protein_sequence" >protein_sequence</option>
+  <option value="transcript_sequence" >transcript_sequence</option>
+  <option value="cds" >cds</option>
+  <option value="wdk_weight" >wdk_weight</option>
+     </param> 
+ </when>
+<when value="cached">
+ <param name = "cached_param3" type="data" label="Choose the step from which to get the parameter Output Fields"/> 
+  </when></conditional>
+
+<conditional name="source4">
+  <param name="source4_source" type="select" label="Output Tables Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param name="user_param4" type="select" label="Select Output Tables" help="see tip below">
+ <option value="all" >all</option>
+  <option value="none" selected="true">none</option>
+  <option value="SNPs" >SNPs</option>
+  <option value="GeneModelDump" >GeneModelDump</option>
+  <option value="InterPro" >InterPro</option>
+  <option value="TMHMM" >TMHMM</option>
+  <option value="LowComplexity" >LowComplexity</option>
+  <option value="SignalP" >SignalP</option>
+  <option value="BlastP" >BlastP</option>
+  <option value="Genbank" >Genbank</option>
+  <option value="SageTags" >SageTags</option>
+  <option value="Notes" >Notes</option>
+  <option value="UserComments" >UserComments</option>
+  <option value="CommunityExpComments" >CommunityExpComments</option>
+  <option value="EcNumber" >EcNumber</option>
+  <option value="MassSpec" >MassSpec</option>
+  <option value="GoTerms" >GoTerms</option>
+  <option value="Aliases" >Aliases</option>
+  <option value="Phenotype" >Phenotype</option>
+  <option value="Y2hInteractions" >Y2hInteractions</option>
+  <option value="Orthologs" >Orthologs</option>
+  <option value="MetabolicPathways" >MetabolicPathways</option>
+  <option value="TaskComments" >TaskComments</option>
+  <option value="ArrayElements" >ArrayElements</option>
+  <option value="TwoChannelDiffExpr" >TwoChannelDiffExpr</option>
+  <option value="ProteinExpression" >ProteinExpression</option>
+  <option value="Mr4Reagents" >Mr4Reagents</option>
+  <option value="ProteinDatabase" >ProteinDatabase</option>
+  <option value="GeneLinkouts" >GeneLinkouts</option>
+  <option value="3dPreds" >3dPreds</option>
+  <option value="PdbSimilarities" >PdbSimilarities</option>
+  <option value="Epitopes" >Epitopes</option>
+  <option value="IsolateOverlap" >IsolateOverlap</option>
+     </param> 
+ </when>
+<when value="cached">
+ <param name = "cached_param4" type="data" label="Choose the step from which to get the parameter Output Tables"/> 
+  </when></conditional>
+ </when>
+ </conditional>
+</inputs>
+  <outputs>
+    <data format="tabular" name="output" />
+  </outputs>
+  <help>
+
+.. class:: infomark
+
+**TIP:** Organism type is xsd:string
+
+.. class:: infomark
+
+**TIP:** Min Molecular Weight (Daltons) type is xsd:string
+
+.. class:: infomark
+
+**TIP:** Max Molecular Weight (Daltons) type is xsd:string
+  </help>
+</tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/workflowclients/client_90.xml~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,135 @@
+<tool id="client_90" name="wublast.getResult">
+  <description> Client for operation : getResult , Web service : wublast.wublast_services </description>
+  <command interpreter="python">
+  	client_1.py
+	#if $cond_source.optional_param_source=="no":
+  	$output
+	$servicetype
+      $url
+      $method
+wublast.wublast_services         getResult
+	"_type"
+	 #if $source0.source0_source=="user":
+	 $source0.user_param0
+	 #else:
+	 fileInput
+	 $source0.cached_param0
+	 #end if
+	"_jobId"
+	 #if $source1.source1_source=="user":
+	 $source1.user_param1
+	 #else:
+	 fileInput
+	 $source1.cached_param1
+	 #end if
+   	#else:
+  	$output
+	$servicetype
+      $url
+      $method
+wublast.wublast_services            getResult
+	"_type"
+	 #if $source0.source0_source=="user":
+	 $source0.user_param0
+	 #else:
+	 fileInput
+	 $source0.cached_param0
+	 #end if
+	"_jobId"
+	 #if $source1.source1_source=="user":
+	 $source1.user_param1
+	 #else:
+	 fileInput
+	 $source1.cached_param1
+	 #end if
+	"_parameters|_parameter|0|_name"
+	 #if $cond_source.source2.source2_source=="user":
+	 $cond_source.source2.user_param2
+	 #else:
+	 fileInput
+	 $cond_source.source2.cached_param2
+	 #end if
+	"_parameters|_parameter|0|_value|_string|$|"
+	 #if $cond_source.source3.source3_source=="user":
+	 $cond_source.source3.user_param3
+	 #else:
+	 fileInput
+	 $cond_source.source3.cached_param3
+	 #end if
+   	#end if
+</command>
+  <inputs>
+     <param name="servicetype" type="hidden" value="SOAP" />
+     <param name="url" type="hidden" value="http://www.cs.uga.edu/~guttula/wublast.wsdl" />
+     <param name="method" type="hidden" value="getResult" />
+<conditional name="source0">
+    <param name="source0_source" type="select" label="type Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+      <param format="text" size = "150" name = "user_param0"  type="text" label="Enter type" help="see tip below" />
+ </when>
+ <when value="cached">
+    <param name = "cached_param0" type="data" label="Choose the step from which to get the parameter type"/> 
+ </when>
+   </conditional><conditional name="source1">
+    <param name="source1_source" type="select" label="jobId Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+      <param format="text" size = "150" name = "user_param1"  type="text" label="Enter jobId" help="see tip below" />
+ </when>
+ <when value="cached">
+    <param name = "cached_param1" type="data" label="Choose the step from which to get the parameter jobId"/> 
+ </when>
+   </conditional>  <conditional name="cond_source">
+  <param name="optional_param_source" type="select" label="Display Optional Parameters"> 
+ <option value="no" selected="true">no</option> 
+ <option value="yes">yes</option> 
+ </param> 
+    <when value="no"> 
+     </when>
+    <when value="yes"> 
+
+<conditional name="source2">
+  <param name="source2_source" type="select" label="name Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param2"  type="text" label="Enter name" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param2" type="data" label="Choose the step from which to get the parameter name"/> 
+  </when>
+   </conditional>
+
+<conditional name="source3">
+  <param name="source3_source" type="select" label="value Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param3"  type="text" label="Enter value" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param3" type="data" label="Choose the step from which to get the parameter value"/> 
+  </when>
+   </conditional>
+ </when>
+ </conditional>
+</inputs>
+  <outputs>
+    <data format="tabular" name="output" />
+  </outputs>
+  <help>
+
+.. class:: infomark
+
+**TIP:** About type: type is String
+
+.. class:: infomark
+
+**TIP:** About jobId: type is String
+  </help>
+</tool>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/workflowclients/workflowclient.xml~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,73 @@
+<tool id="workflowclient_2" name="filter.filtersequences">
+  <description> Client for operation : filetersequences , Web service : filter.filter_services </description>
+  <command interpreter="python">
+  	client_1.py
+	#if $cond_source.optional_param_source=="no":
+  	    $output
+	    $servicetype
+        $url
+        $method
+        clustalw2.clustalw2_services         getResult
+	    "_sequenceid"
+	    #if $source0.source0_source=="user":
+	       $source0.user_param0
+	    #else:
+	       fileInput
+	       $source0.cached_param0
+	    #end if
+   	#else:
+  	    $output
+	    $servicetype
+        $url
+        $method
+        clustalw2.clustalw2_services            getResult
+	    "_sequenceid"
+	    #if $source0.source0_source=="user":
+	        $source0.user_param0
+	    #else:
+	       fileInput
+	       $source0.cached_param0
+	    #end if
+   	#end if
+</command>
+  <inputs>
+     <param name="servicetype" type="hidden" value="SOAP" />
+     <param name="url" type="hidden" value="http://www.cs.uga.edu/~guttula/clustalw2.wsdl" />
+     <param name="method" type="hidden" value="getResult" />
+    <conditional name="source0">
+        <param name="source0_source" type="select" label="tSequences Source"> 
+          <option value="cached" selected="true">Param value will be taken from previous step</option> 
+          <option value="user">User will enter the param value</option> 
+        </param>
+        <when value="user">
+          <param format="text" size = "150" name = "user_param0"  type="text" label="Enter tSequences" help="see tip below" />
+        </when>
+        <when value="cached">
+            <param name = "cached_param0" type="data" label="tSequences"/> 
+        </when>
+    </conditional>
+   <conditional name="cond_source">
+        <param name="optional_param_source" type="select" label="Display Optional Parameters"> 
+            <option value="no" selected="true">no</option> 
+            <option value="yes">yes</option> 
+        </param> 
+        <when value="no"> 
+        </when>
+        <when value="yes"> 
+        </when>
+    </conditional>
+</inputs>
+  <outputs>
+    <data format="tabular" name="output" />
+  </outputs>
+  <help>
+
+.. class:: infomark
+
+**TIP:** About type: type is String
+
+.. class:: infomark
+
+**TIP:** About jobId: type is String
+  </help>
+</tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/workflowclients/workflowclient_1.xml~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,110 @@
+<tool id="workflowclient_1" name="wublast.getXMLResult">
+  <description> Client for operation : getXMLResult , Web service : wublast.wublast_services </description>
+  <command interpreter="python">
+  	client_1.py
+	#if $cond_source.optional_param_source=="no":
+  	$output
+	$servicetype
+      $url
+      $method
+wublast.wublast_services         getResult
+	"_jobId"
+	 #if $source1.source1_source=="user":
+	 $source1.user_param1
+	 #else:
+	 fileInput
+	 $source1.cached_param1
+	 #end if
+   	#else:
+  	$output
+	$servicetype
+      $url
+      $method
+wublast.wublast_services            getResult
+	"_jobId"
+	 #if $source1.source1_source=="user":
+	 $source1.user_param1
+	 #else:
+	 fileInput
+	 $source1.cached_param1
+	 #end if
+	"_parameters|_parameter|0|_name"
+	 #if $cond_source.source2.source2_source=="user":
+	 $cond_source.source2.user_param2
+	 #else:
+	 fileInput
+	 $cond_source.source2.cached_param2
+	 #end if
+	"_parameters|_parameter|0|_value|_string|$|"
+	 #if $cond_source.source3.source3_source=="user":
+	 $cond_source.source3.user_param3
+	 #else:
+	 fileInput
+	 $cond_source.source3.cached_param3
+	 #end if
+   	#end if
+</command>
+  <inputs>
+     <param name="servicetype" type="hidden" value="SOAP" />
+     <param name="url" type="hidden" value="http://www.cs.uga.edu/~guttula/wublast.wsdl" />
+     <param name="method" type="hidden" value="getResult" />
+    <conditional name="source1">
+    <param name="source1_source" type="select" label="jobId Source"> 
+      <option value="cached" selected="true">Param value will be taken from previous step</option> 
+      <option value="user">User will enter the param value</option> 
+    </param>
+    <when value="user">
+      <param format="text" size = "150" name = "user_param1"  type="text" label="Enter jobId" help="see tip below" />
+ </when>
+ <when value="cached">
+    <param name = "cached_param1" type="data" label="jobId"/> 
+ </when>
+   </conditional>  <conditional name="cond_source">
+  <param name="optional_param_source" type="select" label="Display Optional Parameters"> 
+ <option value="no" selected="true">no</option> 
+ <option value="yes">yes</option> 
+ </param> 
+    <when value="no"> 
+     </when>
+    <when value="yes"> 
+
+<conditional name="source2">
+  <param name="source2_source" type="select" label="name Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param2"  type="text" label="Enter name" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param2" type="data" label="Choose the step from which to get the parameter name"/> 
+  </when>
+   </conditional>
+
+<conditional name="source3">
+  <param name="source3_source" type="select" label="value Source"> 
+    <option value="cached" selected="true">Param value will be taken from previous step</option> 
+ <option value="user">User will enter the param value</option> 
+</param>
+         <when value="user"><param format="text" size = "150" name = "user_param3"  type="text" label="Enter value" help="see tip below" />
+ </when>
+<when value="cached">
+ <param name = "cached_param3" type="data" label="Choose the step from which to get the parameter value"/> 
+  </when>
+   </conditional>
+ </when>
+ </conditional>
+</inputs>
+  <outputs>
+    <data format="tabular" name="output" />
+  </outputs>
+  <help>
+
+.. class:: infomark
+
+**TIP:** About type: type is String
+
+.. class:: infomark
+
+**TIP:** About jobId: type is String
+  </help>
+</tool>
Binary file WebServiceExtensionsV1.1/WsExtension InstallationGuide.pdf has changed
Binary file WebServiceExtensionsV1.1/WsExtensions DeveloperGuide.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/install.py	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,406 @@
+# To change this template, choose Tools | Templates
+# and open the template in the editor.
+
+__author__ = "Chaitanya Guttula"
+
+
+import os
+import sys
+from shutil import copytree, ignore_patterns
+
+galaxyhome=os.environ.get('GALAXY_HOME')
+#print galaxyhome
+
+#os.mkdir(galaxyhome+'/GAL')
+dirfilelist=os.listdir(galaxyhome+'/tools')
+exist = False
+for dirfile in dirfilelist:
+    if dirfile == 'WebServiceToolWorkflow_REST_SOAP':
+        exist = True
+        break
+
+if exist:
+    print 'WebServiceToolWorkflow_REST_SOAP is already present in '+galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP'
+else:
+    copytree('WebServiceToolWorkflow_REST_SOAP',galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP', ignore=ignore_patterns('*.pyc', 'tmp*'))
+    print 'Copied the folder \'WebServiceToolWorkflow_REST_SOAP\' to '+galaxyhome+'/tools'
+
+f1=open(galaxyhome+'/tool_conf.xml','r')
+f1.seek(0,0)
+f2=open(galaxyhome+'/tool_conf_backup.xml','w')
+f2.seek(0,0)
+
+#copy the first line <toolbox> into another file f2
+line = f1.readline()
+#f2.write(line)
+
+lineStripped=line.lstrip()
+lineStripped=lineStripped.rstrip()
+
+#Flags for verifying that the tool is not already installed
+tool_present = False
+webservice_present = False
+workflow_present = False
+
+# Check of the tools are already installed or not
+# and sets the flags to true if they are already installed 
+while not lineStripped == '</toolbox>':
+    line = f1.readline()
+    lineStripped = line.lstrip()
+    lineStripped=lineStripped.rstrip()          
+    if(lineStripped.find('<!--')>-1):
+        line = f1.readline()
+        while(not line.find('-->')>-1):
+            line = f1.readline()
+    
+    if lineStripped == '<section name="Add Web service tool(s)" id="RegisterWebService">':
+        tool_present = True
+    elif lineStripped == '<section name="Select Web Service Tool" id="WebServices">':
+        webservice_present = True
+    elif lineStripped == '<section name="Select Web Service Workflow Tool" id="WebServiceWorkflow">':
+        workflow_present = True
+
+
+f1.seek(0,0)
+line = f1.readline()
+f2.write(line)
+
+lineStripped=line.lstrip()
+lineStripped=lineStripped.rstrip()
+
+# copy to the file f2 till <toolbox>
+while not lineStripped == '<toolbox>':
+    line = f1.readline()
+    f2.write(line)
+    lineStripped = line.lstrip()
+    lineStripped = lineStripped.rstrip()
+
+# Check if the tool is not installed and then add it to the file f2
+if not tool_present:
+    f2.write('  <section name="Add Web service tool(s)" id="RegisterWebService">\n')
+    f2.write('    <tool file="WebServiceToolWorkflow_REST_SOAP/WebServiceTool_input_url_REST_SOAP.xml"/>\n')
+    f2.write('    <tool file="WebServiceToolWorkflow_REST_SOAP/WebServiceTool_input_method_REST_SOAP.xml"/>\n')
+    f2.write('    <tool file="WebServiceToolWorkflow_REST_SOAP/refreshTool.xml"/>\n')
+    f2.write('  </section>\n')
+    print 'The "Add Web Service Tool" added successfully'
+else:
+    print 'The "Add Web service tool" tool is already present'
+
+
+# Check if the section "Web Service Tools" is not installed and then add it to the file f2
+if not webservice_present:
+    f2.write('  <section name="Select Web Service Tool" id="WebServices">\n')
+    f2.write('\n')
+    f2.write('  </section>\n')
+    print 'The "Web Service Tools" added successfully'
+else:
+    print 'The section "Web Service Tools" is already present'
+
+
+# Check if the Section "Web Service Workflow Tools" is not installed and then add it to the file f2
+if not workflow_present:
+    f2.write('  <section name="Select Web Service Workflow Tool" id="WebServiceWorkflow">\n')
+    f2.write('\n')
+    f2.write('  </section>\n')
+    print 'The section "Web Service Workflow Tools" is added successfully'
+else:
+    print 'The section "Web Service Workflow Tools" is already present'
+
+
+#copy rest of tool_conf.xml file to f2
+while not lineStripped == '</toolbox>':
+    line = f1.readline()
+    f2.write(line)
+    lineStripped = line.lstrip()
+    lineStripped=lineStripped.rstrip()          
+#else:
+#    print line
+
+##close f1 and f2
+f1.close()
+f2.close()
+
+##interchange modes of f1 and f2
+f1=open(galaxyhome+'/tool_conf.xml','w')
+f1.seek(0,0)
+f2=open(galaxyhome+'/tool_conf_backup.xml','r')
+f2.seek(0,0)
+
+line = f2.readline()
+f1.write(line)
+
+lineStripped=line.lstrip()
+lineStripped = lineStripped.rstrip()
+
+##write entire f2 into f1 (reverse roles)
+while not lineStripped == '</toolbox>':
+    line = f2.readline()
+    f1.write(line)
+    lineStripped = line.lstrip()
+    lineStripped = lineStripped.rstrip()        
+#else:
+#    print line
+
+f1.close()
+f2.close()
+
+
+# Adding Code to __init__.py in lib/galaxy/tools folder in Galaxy for disabling Web service stand alone tools in Workflows
+f1 = open(galaxyhome+'/lib/galaxy/tools/__init__.py','r')
+f1.seek(0,0)
+
+exist = False
+line = f1.readline()
+linestripped = line.lstrip()
+linestripped = linestripped.rstrip()
+while line != '':
+#    if(linsetripped.find('\'\'\'')>-1):
+#        line = f1.readline()
+#        while(not line.find('\'\'\'')>-1):
+#            line = f1.readline()
+    if(linestripped == 'if self.id.find("WebService")>-1:'):
+        exist = True
+        break
+    line = f1.readline()
+    linestripped = line.lstrip()
+    linestripped = linestripped.rstrip()
+
+if exist :
+    print 'Workflow code is already present in __init__.py'
+else:
+    f2 = open(galaxyhome+'/lib/galaxy/tools/__init__backup.py','w')
+    f2.seek(0,0)
+    f1.seek(0,0)
+    line = f1.readline()
+    f2.write(line)
+    linestripped = line.lstrip()
+    linestripped = linestripped.rstrip()
+    while not (linestripped.find('def check_workflow_compatible(')>-1): 
+        line = f1.readline()
+        linestripped = line.lstrip()
+        linestripped = linestripped.rstrip()
+        f2.write(line)
+    if line.find('(')>-1:
+        while not line.find(')')>-1:
+            line = f1.readline()
+            f2.write(line)
+        
+    line = f1.readline()
+    while line.find('#')>-1:
+        f2.write(line)
+        line = f1.readline()
+        
+    indent=0
+    while (line[indent] == ' '):
+        indent = indent+1
+    
+    space = ''
+    for i in range(0,indent):    
+        space +=' '
+        
+    f2.write(space+'#############\n')    
+    f2.write(space+'#added by Chaitany Guttula, chaitu86@uga.edu - to disable webservice standalone tools in Workflows\n')
+    f2.write(space+'if self.id.find("WebService")>-1:\n')
+    f2.write(space+'    return False\n')
+    f2.write(space+'#############\n')
+
+    f2.write(line)
+    line = f1.readline()
+    f2.write(line)
+
+    while line != '':
+        line = f1.readline()
+        f2.write(line)
+    
+    f1.close()
+    f2.close()
+
+    f1 = open(galaxyhome+'/lib/galaxy/tools/__init__backup.py','r')
+    f2 = open(galaxyhome+'/lib/galaxy/tools/__init__.py','w')
+
+    line = f1.readline()
+    f2.write(line)
+
+    while line != '':
+        line = f1.readline()
+        f2.write(line)
+    
+    f1.close()
+    f2.close()
+    print 'Workflow disabling Code added to __init__.py'
+    
+
+
+# Adding Code to __init__.py in lib/galaxy/tools folder in Galaxy for invoking the refresh functionality
+f1 = open(galaxyhome+'/lib/galaxy/tools/__init__.py','r')
+f1.seek(0,0)
+
+exist = False
+line = f1.readline()
+linestripped = line.lstrip()
+linestripped = linestripped.rstrip()
+while line != '':
+#    if(linsetripped.find('\'\'\'')>-1):
+#        line = f1.readline()
+#        while(not line.find('\'\'\'')>-1):
+#            line = f1.readline()
+    if(linestripped == 'if self.id == \'WebService_REFRESH_ID\':'):
+        exist = True
+        break
+    line = f1.readline()
+    linestripped = line.lstrip()
+    linestripped = linestripped.rstrip()
+
+if exist :
+    print 'Refresh code is already present in __init__.py'
+else:
+    f2 = open(galaxyhome+'/lib/galaxy/tools/__init__backup.py','w')
+    f2.seek(0,0)
+    f1.seek(0,0)
+    line = f1.readline()
+    f2.write(line)
+    linestripped = line.lstrip()
+    linestripped = linestripped.rstrip()
+    while not (linestripped.find('def execute(')>-1): 
+        line = f1.readline()
+        linestripped = line.lstrip()
+        linestripped = linestripped.rstrip()
+        f2.write(line)
+    if line.find('(')>-1:
+        while not line.find(')')>-1:
+            line = f1.readline()
+            f2.write(line)
+        
+    line = f1.readline()
+    while line.find('#')>-1:
+        f2.write(line)
+        line = f1.readline()
+        
+    indent=0
+    while (line[indent] == ' '):
+        indent = indent+1
+    
+    space = ''
+    for i in range(0,indent):    
+        space +=' '
+        
+    f2.write(space+'#############\n')    
+    f2.write(space+'#add code to verify if user has administrative privileges\n')
+    f2.write(space+'#added by sumedha ganjoo, sganjoo@uga.edu - to refresh toolbox\n')
+    f2.write(space+'if self.id == \'WebService_REFRESH_ID\':\n')
+    f2.write(space+'    self.app.refreshToolBox()\n')
+    f2.write(space+'#############\n')
+
+    f2.write(line)
+    line = f1.readline()
+    f2.write(line)
+
+    while line != '':
+        line = f1.readline()
+        f2.write(line)
+    
+    f1.close()
+    f2.close()
+
+    f1 = open(galaxyhome+'/lib/galaxy/tools/__init__backup.py','r')
+    f2 = open(galaxyhome+'/lib/galaxy/tools/__init__.py','w')
+
+    line = f1.readline()
+    f2.write(line)
+
+    while line != '':
+        line = f1.readline()
+        f2.write(line)
+    
+    f1.close()
+    f2.close()
+    print 'Refresh Code added to __init__.py'
+    
+    
+# Adding Code to app.py in lib/galaxy folder in Galaxy for invoking the refresh functionality
+f1 = open(galaxyhome+'/lib/galaxy/app.py','r')
+
+f1.seek(0,0)
+
+exist = False
+line = f1.readline()
+linestripped = line.lstrip()
+linestripped = linestripped.rstrip()
+while line != '':
+    if(linestripped == 'def refreshToolBox( self ):'):
+        exist = True
+        break
+    line = f1.readline()
+    linestripped = line.lstrip()
+    linestripped = linestripped.rstrip()
+
+if exist:
+    print 'Refresh code is already present in app.py'
+else:
+    f2 = open(galaxyhome+'/lib/galaxy/app_backup.py','w')
+    f2.seek(0,0)
+    f1.seek(0,0)
+    line = f1.readline()
+    f2.write(line)
+    linestripped = line.lstrip()
+    linestripped = linestripped.rstrip()
+    while not (line.find('class UniverseApplication')>-1): 
+        line = f1.readline()
+        linestripped = line.lstrip()
+        linestripped = linestripped.rstrip()
+        f2.write(line)
+    if line.find('(')>-1:
+        while not line.find(')')>-1:
+            line = f1.readline()
+            f2.write(line)
+        
+    line = f1.readline()
+    
+    while line.find('#')>-1:
+        f2.write(line)
+        line = f1.readline()
+    
+    
+    indent=0
+    while (line[indent] == ' '):
+        indent = indent+1
+
+    space = ''
+    for i in range(0,indent):    
+        space +=' '
+    
+    f2.write(space+'#############\n')    
+    f2.write(space+'#added by sumedha ganjoo, sganjoo@uga.edu\n')
+    f2.write(space+'def refreshToolBox( self ):\n')
+    f2.write(space+'    self.toolbox = tools.ToolBox( self.config.tool_config, self.config.tool_path, self )\n')
+    f2.write(space+'#############\n\n')
+
+    f2.write(line)
+    line = f1.readline()
+    f2.write(line)
+
+    while line != '':
+        line = f1.readline()
+        f2.write(line)
+
+    f1.close()
+    f2.close()
+
+    f1 = open(galaxyhome+'/lib/galaxy/app_backup.py','r')
+    f2 = open(galaxyhome+'/lib/galaxy/app.py','w')
+    
+    line = f1.readline()
+    f2.write(line)
+
+    while line != '':
+        line = f1.readline()
+        f2.write(line)
+
+    f1.close()
+    f2.close()
+    print 'Refresh code is added to app.py'
+    
+    
+    
+print '****Installation of tool is complete. Now reload galaxy to use the installed tool****'    
+    
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceExtensionsV1.1/install.py~	Tue Jul 05 19:34:18 2011 -0400
@@ -0,0 +1,406 @@
+# To change this template, choose Tools | Templates
+# and open the template in the editor.
+
+__author__ = "Chaitanya Guttula"
+
+
+import os
+import sys
+from shutil import copytree, ignore_patterns
+
+galaxyhome=os.environ.get('GALAXY_HOME')
+#print galaxyhome
+
+#os.mkdir(galaxyhome+'/GAL')
+dirfilelist=os.listdir(galaxyhome+'/tools')
+exist = False
+for dirfile in dirfilelist:
+    if dirfile == 'WebServiceToolWorkflow_REST_SOAP':
+        exist = True
+        break
+
+if exist:
+    print 'WebServiceToolWorkflow_REST_SOAP is already present in '+galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP'
+else:
+    copytree('WebServiceToolWorkflow_REST_SOAP',galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP', ignore=ignore_patterns('*.pyc', 'tmp*'))
+    print 'Copied the folder \'WebServiceToolWorkflow_REST_SOAP\' to '+galaxyhome+'/tools'
+
+f1=open(galaxyhome+'/tool_conf.xml','r')
+f1.seek(0,0)
+f2=open(galaxyhome+'/tool_conf_backup.xml','w')
+f2.seek(0,0)
+
+#copy the first line <toolbox> into another file f2
+line = f1.readline()
+#f2.write(line)
+
+lineStripped=line.lstrip()
+lineStripped=lineStripped.rstrip()
+
+#Flags for verifying that the tool is not already installed
+tool_present = False
+webservice_present = False
+workflow_present = False
+
+# Check of the tools are already installed or not
+# and sets the flags to true if they are already installed 
+while not lineStripped == '</toolbox>':
+    line = f1.readline()
+    lineStripped = line.lstrip()
+    lineStripped=lineStripped.rstrip()          
+    if(lineStripped.find('<!--')>-1):
+        line = f1.readline()
+        while(not line.find('-->')>-1):
+            line = f1.readline()
+    
+    if lineStripped == '<section name="Add Web service tool" id="RegisterWebService">':
+        tool_present = True
+    elif lineStripped == '<section name="Web Service Tools" id="WebServices">':
+        webservice_present = True
+    elif lineStripped == '<section name="Web Service Workflow Tools" id="WebServiceWorkflow">':
+        workflow_present = True
+
+
+f1.seek(0,0)
+line = f1.readline()
+f2.write(line)
+
+lineStripped=line.lstrip()
+lineStripped=lineStripped.rstrip()
+
+# copy to the file f2 till <toolbox>
+while not lineStripped == '<toolbox>':
+    line = f1.readline()
+    f2.write(line)
+    lineStripped = line.lstrip()
+    lineStripped = lineStripped.rstrip()
+
+# Check if the tool is not installed and then add it to the file f2
+if not tool_present:
+    f2.write('  <section name="Add Web service tool" id="RegisterWebService">\n')
+    f2.write('    <tool file="WebServiceToolWorkflow_REST_SOAP/WebServiceTool_input_url_REST_SOAP.xml"/>\n')
+    f2.write('    <tool file="WebServiceToolWorkflow_REST_SOAP/WebServiceTool_input_method_REST_SOAP.xml"/>\n')
+    f2.write('    <tool file="WebServiceToolWorkflow_REST_SOAP/refreshTool.xml"/>\n')
+    f2.write('  </section>\n')
+    print 'The "Add Web Service Tool" added successfully'
+else:
+    print 'The "Add Web service tool" tool is already present'
+
+
+# Check if the section "Web Service Tools" is not installed and then add it to the file f2
+if not webservice_present:
+    f2.write('  <section name="Web Service Tools" id="WebServices">\n')
+    f2.write('\n')
+    f2.write('  </section>\n')
+    print 'The "Web Service Tools" added successfully'
+else:
+    print 'The section "Web Service Tools" is already present'
+
+
+# Check if the Section "Web Service Workflow Tools" is not installed and then add it to the file f2
+if not workflow_present:
+    f2.write('  <section name="Web Service Workflow Tools" id="WebServiceWorkflow">\n')
+    f2.write('\n')
+    f2.write('  </section>\n')
+    print 'The section "Web Service Workflow Tools" is added successfully'
+else:
+    print 'The section "Web Service Workflow Tools" is already present'
+
+
+#copy rest of tool_conf.xml file to f2
+while not lineStripped == '</toolbox>':
+    line = f1.readline()
+    f2.write(line)
+    lineStripped = line.lstrip()
+    lineStripped=lineStripped.rstrip()          
+#else:
+#    print line
+
+##close f1 and f2
+f1.close()
+f2.close()
+
+##interchange modes of f1 and f2
+f1=open(galaxyhome+'/tool_conf.xml','w')
+f1.seek(0,0)
+f2=open(galaxyhome+'/tool_conf_backup.xml','r')
+f2.seek(0,0)
+
+line = f2.readline()
+f1.write(line)
+
+lineStripped=line.lstrip()
+lineStripped = lineStripped.rstrip()
+
+##write entire f2 into f1 (reverse roles)
+while not lineStripped == '</toolbox>':
+    line = f2.readline()
+    f1.write(line)
+    lineStripped = line.lstrip()
+    lineStripped = lineStripped.rstrip()        
+#else:
+#    print line
+
+f1.close()
+f2.close()
+
+
+# Adding Code to __init__.py in lib/galaxy/tools folder in Galaxy for disabling Web service stand alone tools in Workflows
+f1 = open(galaxyhome+'/lib/galaxy/tools/__init__.py','r')
+f1.seek(0,0)
+
+exist = False
+line = f1.readline()
+linestripped = line.lstrip()
+linestripped = linestripped.rstrip()
+while line != '':
+#    if(linsetripped.find('\'\'\'')>-1):
+#        line = f1.readline()
+#        while(not line.find('\'\'\'')>-1):
+#            line = f1.readline()
+    if(linestripped == 'if self.id.find("WebService")>-1:'):
+        exist = True
+        break
+    line = f1.readline()
+    linestripped = line.lstrip()
+    linestripped = linestripped.rstrip()
+
+if exist :
+    print 'Workflow code is already present in __init__.py'
+else:
+    f2 = open(galaxyhome+'/lib/galaxy/tools/__init__backup.py','w')
+    f2.seek(0,0)
+    f1.seek(0,0)
+    line = f1.readline()
+    f2.write(line)
+    linestripped = line.lstrip()
+    linestripped = linestripped.rstrip()
+    while not (linestripped.find('def check_workflow_compatible(')>-1): 
+        line = f1.readline()
+        linestripped = line.lstrip()
+        linestripped = linestripped.rstrip()
+        f2.write(line)
+    if line.find('(')>-1:
+        while not line.find(')')>-1:
+            line = f1.readline()
+            f2.write(line)
+        
+    line = f1.readline()
+    while line.find('#')>-1:
+        f2.write(line)
+        line = f1.readline()
+        
+    indent=0
+    while (line[indent] == ' '):
+        indent = indent+1
+    
+    space = ''
+    for i in range(0,indent):    
+        space +=' '
+        
+    f2.write(space+'#############\n')    
+    f2.write(space+'#added by Chaitany Guttula, chaitu86@uga.edu - to disable webservice standalone tools in Workflows\n')
+    f2.write(space+'if self.id.find("WebService")>-1:\n')
+    f2.write(space+'    return False\n')
+    f2.write(space+'#############\n')
+
+    f2.write(line)
+    line = f1.readline()
+    f2.write(line)
+
+    while line != '':
+        line = f1.readline()
+        f2.write(line)
+    
+    f1.close()
+    f2.close()
+
+    f1 = open(galaxyhome+'/lib/galaxy/tools/__init__backup.py','r')
+    f2 = open(galaxyhome+'/lib/galaxy/tools/__init__.py','w')
+
+    line = f1.readline()
+    f2.write(line)
+
+    while line != '':
+        line = f1.readline()
+        f2.write(line)
+    
+    f1.close()
+    f2.close()
+    print 'Workflow disabling Code added to __init__.py'
+    
+
+
+# Adding Code to __init__.py in lib/galaxy/tools folder in Galaxy for invoking the refresh functionality
+f1 = open(galaxyhome+'/lib/galaxy/tools/__init__.py','r')
+f1.seek(0,0)
+
+exist = False
+line = f1.readline()
+linestripped = line.lstrip()
+linestripped = linestripped.rstrip()
+while line != '':
+#    if(linsetripped.find('\'\'\'')>-1):
+#        line = f1.readline()
+#        while(not line.find('\'\'\'')>-1):
+#            line = f1.readline()
+    if(linestripped == 'if self.id == \'WebService_REFRESH_ID\':'):
+        exist = True
+        break
+    line = f1.readline()
+    linestripped = line.lstrip()
+    linestripped = linestripped.rstrip()
+
+if exist :
+    print 'Refresh code is already present in __init__.py'
+else:
+    f2 = open(galaxyhome+'/lib/galaxy/tools/__init__backup.py','w')
+    f2.seek(0,0)
+    f1.seek(0,0)
+    line = f1.readline()
+    f2.write(line)
+    linestripped = line.lstrip()
+    linestripped = linestripped.rstrip()
+    while not (linestripped.find('def execute(')>-1): 
+        line = f1.readline()
+        linestripped = line.lstrip()
+        linestripped = linestripped.rstrip()
+        f2.write(line)
+    if line.find('(')>-1:
+        while not line.find(')')>-1:
+            line = f1.readline()
+            f2.write(line)
+        
+    line = f1.readline()
+    while line.find('#')>-1:
+        f2.write(line)
+        line = f1.readline()
+        
+    indent=0
+    while (line[indent] == ' '):
+        indent = indent+1
+    
+    space = ''
+    for i in range(0,indent):    
+        space +=' '
+        
+    f2.write(space+'#############\n')    
+    f2.write(space+'#add code to verify if user has administrative privileges\n')
+    f2.write(space+'#added by sumedha ganjoo, sganjoo@uga.edu - to refresh toolbox\n')
+    f2.write(space+'if self.id == \'WebService_REFRESH_ID\':\n')
+    f2.write(space+'    self.app.refreshToolBox()\n')
+    f2.write(space+'#############\n')
+
+    f2.write(line)
+    line = f1.readline()
+    f2.write(line)
+
+    while line != '':
+        line = f1.readline()
+        f2.write(line)
+    
+    f1.close()
+    f2.close()
+
+    f1 = open(galaxyhome+'/lib/galaxy/tools/__init__backup.py','r')
+    f2 = open(galaxyhome+'/lib/galaxy/tools/__init__.py','w')
+
+    line = f1.readline()
+    f2.write(line)
+
+    while line != '':
+        line = f1.readline()
+        f2.write(line)
+    
+    f1.close()
+    f2.close()
+    print 'Refresh Code added to __init__.py'
+    
+    
+# Adding Code to app.py in lib/galaxy folder in Galaxy for invoking the refresh functionality
+f1 = open(galaxyhome+'/lib/galaxy/app.py','r')
+
+f1.seek(0,0)
+
+exist = False
+line = f1.readline()
+linestripped = line.lstrip()
+linestripped = linestripped.rstrip()
+while line != '':
+    if(linestripped == 'def refreshToolBox( self ):'):
+        exist = True
+        break
+    line = f1.readline()
+    linestripped = line.lstrip()
+    linestripped = linestripped.rstrip()
+
+if exist:
+    print 'Refresh code is already present in app.py'
+else:
+    f2 = open(galaxyhome+'/lib/galaxy/app_backup.py','w')
+    f2.seek(0,0)
+    f1.seek(0,0)
+    line = f1.readline()
+    f2.write(line)
+    linestripped = line.lstrip()
+    linestripped = linestripped.rstrip()
+    while not (line.find('class UniverseApplication')>-1): 
+        line = f1.readline()
+        linestripped = line.lstrip()
+        linestripped = linestripped.rstrip()
+        f2.write(line)
+    if line.find('(')>-1:
+        while not line.find(')')>-1:
+            line = f1.readline()
+            f2.write(line)
+        
+    line = f1.readline()
+    
+    while line.find('#')>-1:
+        f2.write(line)
+        line = f1.readline()
+    
+    
+    indent=0
+    while (line[indent] == ' '):
+        indent = indent+1
+
+    space = ''
+    for i in range(0,indent):    
+        space +=' '
+    
+    f2.write(space+'#############\n')    
+    f2.write(space+'#added by sumedha ganjoo, sganjoo@uga.edu\n')
+    f2.write(space+'def refreshToolBox( self ):\n')
+    f2.write(space+'    self.toolbox = tools.ToolBox( self.config.tool_config, self.config.tool_path, self )\n')
+    f2.write(space+'#############\n\n')
+
+    f2.write(line)
+    line = f1.readline()
+    f2.write(line)
+
+    while line != '':
+        line = f1.readline()
+        f2.write(line)
+
+    f1.close()
+    f2.close()
+
+    f1 = open(galaxyhome+'/lib/galaxy/app_backup.py','r')
+    f2 = open(galaxyhome+'/lib/galaxy/app.py','w')
+    
+    line = f1.readline()
+    f2.write(line)
+
+    while line != '':
+        line = f1.readline()
+        f2.write(line)
+
+    f1.close()
+    f2.close()
+    print 'Refresh code is added to app.py'
+    
+    
+    
+print '****Installation of tool is complete. Now reload galaxy to use the installed tool****'    
+