diff options
author | lresende <lresende@13f79535-47bb-0310-9956-ffa450edef68> | 2009-11-11 23:07:19 +0000 |
---|---|---|
committer | lresende <lresende@13f79535-47bb-0310-9956-ffa450edef68> | 2009-11-11 23:07:19 +0000 |
commit | 6fadbc9cd1fcf03d0b3630f772d91df149b70428 (patch) | |
tree | 32752e491abb97fc8ef4f246455e3b5fd2814862 /branches/sca-java-1.0.1/modules/wsdl2java/src | |
parent | 5559ef5edbf8d3616f7a4b497b2a459b0ee4082b (diff) |
Moving 1.x branches
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@835123 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'branches/sca-java-1.0.1/modules/wsdl2java/src')
17 files changed, 0 insertions, 3054 deletions
diff --git a/branches/sca-java-1.0.1/modules/wsdl2java/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/JavaInterfaceEmitter.java b/branches/sca-java-1.0.1/modules/wsdl2java/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/JavaInterfaceEmitter.java deleted file mode 100644 index 496c80e73c..0000000000 --- a/branches/sca-java-1.0.1/modules/wsdl2java/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/JavaInterfaceEmitter.java +++ /dev/null @@ -1,267 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.apache.tuscany.tools.wsdl2java.generate; - -import static org.apache.tuscany.tools.wsdl2java.util.XMLNameUtil.getJavaNameFromXMLName; - -import java.io.File; -import java.util.ArrayList; -import java.util.List; - -import javax.xml.namespace.QName; - -import org.apache.axis2.description.AxisMessage; -import org.apache.axis2.description.AxisOperation; -import org.apache.axis2.description.WSDL2Constants; -import org.apache.axis2.util.FileWriter; -import org.apache.axis2.wsdl.WSDLConstants; -import org.apache.axis2.wsdl.codegen.CodeGenConfiguration; -import org.apache.axis2.wsdl.codegen.emitter.JavaEmitter; -import org.apache.axis2.wsdl.codegen.writer.InterfaceWriter; -import org.apache.axis2.wsdl.databinding.TypeMapper; -import org.w3c.dom.Document; -import org.w3c.dom.Element; - -/** - * Overrides the Axis2 JavaEmitter to generate unwrapped methods. - */ -public class JavaInterfaceEmitter extends JavaEmitter { - - private CodeGenConfiguration codegenConfiguration; - private TypeMapper typeMapper; - - @Override - public void setCodeGenConfiguration(CodeGenConfiguration configuration) { - super.setCodeGenConfiguration(configuration); - codegenConfiguration = configuration; - } - - @Override - public void setMapper(TypeMapper typeMapper) { - super.setMapper(typeMapper); - this.typeMapper = typeMapper; - } - - private List getParameterElementList(Document doc, AxisMessage message, boolean wrapped) { - List parameterElementList = new ArrayList(); - - if (message != null && message.getElementQName() != null) { - - SDODataBindingTypeMappingEntry typeMappingEntry = - (SDODataBindingTypeMappingEntry)this.typeMapper.getTypeMappingObject(message.getElementQName()); - List typeMappings; - if (wrapped) { - typeMappings = typeMappingEntry.getPropertyClassNames(); - } else { - typeMappings = new ArrayList(); - typeMappings.add(typeMappingEntry.getClassName()); - } - - for (int i = 0; i < typeMappings.size(); i++) { - Element param = doc.createElement("param"); - parameterElementList.add(param); - - String typeMapping = (String)typeMappings.get(i); - - addAttribute(doc, "name", this.typeMapper.getParameterName(message.getElementQName()), param); - addAttribute(doc, "type", (typeMapping == null) ? "" : typeMapping, param); - - // add an extra attribute to say whether the type mapping is the - // default - // if (TypeMapper.DEFAULT_CLASS_NAME.equals(typeMapping)) { - if (typeMapper.getDefaultMappingName().equals(typeMapping)) { - - addAttribute(doc, "default", "yes", param); - } - - addAttribute(doc, "value", null, param); - - // add this as a body parameter - addAttribute(doc, "location", "body", param); - - } - } - - return parameterElementList; - } - - @Override - public List getParameterElementList(Document doc, List parameters, String location) { - List parameterElementList = new ArrayList(); - - if ((parameters != null) && !parameters.isEmpty()) { - int count = parameters.size(); - - for (int i = 0; i < count; i++) { - Element param = doc.createElement("param"); - QName name = (QName)parameters.get(i); - - addAttribute(doc, "name", this.typeMapper.getParameterName(name), param); - - String typeMapping = this.typeMapper.getTypeMappingName(name); - String typeMappingStr = (typeMapping == null) ? "" : typeMapping; - - addAttribute(doc, "type", typeMappingStr, param); - addAttribute(doc, "location", location, param); - parameterElementList.add(param); - } - } - - return parameterElementList; - } - - protected boolean isWrapped(AxisOperation operation) { - boolean wrapped = false; - - if (isInputPresentForMEP(operation.getMessageExchangePattern())) { - QName qname = operation.getMessage(WSDLConstants.MESSAGE_LABEL_IN_VALUE).getElementQName(); - if (qname != null && qname.getLocalPart().equals(operation.getName().getLocalPart())) { - - // - // Maybe we should be more strict than this but there's no point - // in ruling out named - // complex types. - // - // wrapped = true; - - // * - SDODataBindingTypeMappingEntry typeMappingEntry = - (SDODataBindingTypeMappingEntry)this.typeMapper.getTypeMappingObject(qname); - if (typeMappingEntry.isAnonymous()) { - wrapped = true; - } - // */ - } - } - - return wrapped; - } - - private boolean isInputPresentForMEP(String MEP) { - // TODO: verify if thi is still correct with Axis2 1.2 - return WSDL2Constants.MEP_URI_IN_ONLY.equals(MEP) || WSDL2Constants.MEP_URI_IN_OPTIONAL_OUT.equals(MEP) - || WSDL2Constants.MEP_URI_OUT_OPTIONAL_IN.equals(MEP) - || WSDL2Constants.MEP_URI_ROBUST_OUT_ONLY.equals(MEP) - || WSDL2Constants.MEP_URI_ROBUST_IN_ONLY.equals(MEP) - || WSDL2Constants.MEP_URI_IN_OUT.equals(MEP) - || - - WSDLConstants.WSDL20_2006Constants.MEP_URI_IN_ONLY.equals(MEP) - || WSDLConstants.WSDL20_2006Constants.MEP_URI_IN_OPTIONAL_OUT.equals(MEP) - || WSDLConstants.WSDL20_2006Constants.MEP_URI_OUT_OPTIONAL_IN.equals(MEP) - || WSDLConstants.WSDL20_2006Constants.MEP_URI_ROBUST_OUT_ONLY.equals(MEP) - || WSDLConstants.WSDL20_2006Constants.MEP_URI_ROBUST_IN_ONLY.equals(MEP) - || WSDLConstants.WSDL20_2006Constants.MEP_URI_IN_OUT.equals(MEP) - || - - WSDLConstants.WSDL_MESSAGE_DIRECTION_IN.endsWith(MEP); - } - - @Override - protected Element getInputElement(Document doc, AxisOperation operation, List headerParameterQNameList) { - return getElement(doc, - "input", - operation.getMessage(WSDLConstants.MESSAGE_LABEL_IN_VALUE), - isWrapped(operation), - headerParameterQNameList); - } - - @Override - protected Element getOutputElement(Document doc, AxisOperation operation, List headerParameterQNameList) { - return getElement(doc, - "output", - operation.getMessage(WSDLConstants.MESSAGE_LABEL_OUT_VALUE), - isWrapped(operation), - headerParameterQNameList); - } - - protected Element getElement(Document doc, - String elementName, - AxisMessage message, - boolean wrapped, - List headerParameterQNameList) { - Element element = doc.createElement(elementName); - - List parameterElementList = getParameterElementList(doc, message, wrapped); - for (int i = 0; i < parameterElementList.size(); i++) { - element.appendChild((Element)parameterElementList.get(i)); - } - - List outputElementList = getParameterElementList(doc, headerParameterQNameList, "header"); - - for (int i = 0; i < outputElementList.size(); i++) { - element.appendChild((Element)outputElementList.get(i)); - } - - return element; - } - - @Override - protected void writeInterface(boolean writeDatabinders) throws Exception { - Document interfaceModel = createDOMDocumentForInterface(writeDatabinders); - if (!codegenConfiguration.getOutputLocation().exists()) { - codegenConfiguration.getOutputLocation().mkdirs(); - } - InterfaceWriter interfaceWriter = - new RemotableInterfaceWritter(this.codegenConfiguration.getOutputLocation(), this.codegenConfiguration - .getOutputLanguage()); - - String packageName = interfaceModel.getDocumentElement().getAttribute("package"); - String className = interfaceModel.getDocumentElement().getAttribute("name"); - - System.out.println(">> Generating Java class " + packageName + "." + className); - File outputFile = - FileWriter.createClassFile(this.codegenConfiguration.getOutputLocation(), packageName, className, ".java"); - if (outputFile.exists()) { - outputFile.delete(); - } - -// JIRA TUSCANY-1561 Port to Axis2 1.3 -// writeClass(interfaceModel, interfaceWriter); - writeFile(interfaceModel, interfaceWriter); - } - - @Override - protected String makeJavaClassName(String word) { - // return XMLNameUtil.getJavaNameFromXMLName(word, true); - return getJavaNameFromXMLName(word, true); - } - - @Override - protected Element[] getFaultParamElements(Document doc, AxisOperation operation) { - ArrayList params = new ArrayList(); - ArrayList faultMessages = operation.getFaultMessages(); - - if (faultMessages != null && !faultMessages.isEmpty()) { - Element paramElement; - AxisMessage msg; - for (int i = 0; i < faultMessages.size(); i++) { - paramElement = doc.createElement("param"); - msg = (AxisMessage)faultMessages.get(i); - String msgClassName = WSDL2JavaGenerator.normalizeClassName(msg.getName()); - addAttribute(doc, "name", msgClassName, paramElement); - params.add(paramElement); - } - - return (Element[])params.toArray(new Element[params.size()]); - } else { - return new Element[] {};// return empty array - } - } -} diff --git a/branches/sca-java-1.0.1/modules/wsdl2java/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/JavaInterfaceGenerator.java b/branches/sca-java-1.0.1/modules/wsdl2java/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/JavaInterfaceGenerator.java deleted file mode 100644 index ded5a03b24..0000000000 --- a/branches/sca-java-1.0.1/modules/wsdl2java/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/JavaInterfaceGenerator.java +++ /dev/null @@ -1,326 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.apache.tuscany.tools.wsdl2java.generate; - -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.PrintStream; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashSet; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; - -import javax.wsdl.Binding; -import javax.wsdl.Definition; -import javax.wsdl.Fault; -import javax.wsdl.Message; -import javax.wsdl.Operation; -import javax.wsdl.Part; -import javax.wsdl.Port; -import javax.wsdl.PortType; -import javax.wsdl.Service; -import javax.wsdl.WSDLException; -import javax.wsdl.factory.WSDLFactory; -import javax.wsdl.xml.WSDLReader; -import javax.xml.namespace.QName; -import javax.xml.parsers.ParserConfigurationException; - -import org.apache.axis2.AxisFault; -import org.apache.axis2.description.AxisService; -import org.apache.axis2.description.WSDL11ToAxisServiceBuilder; -import org.apache.axis2.util.FileWriter; -import org.apache.axis2.util.XMLUtils; -import org.apache.axis2.wsdl.codegen.CodeGenConfiguration; -import org.apache.axis2.wsdl.codegen.CodeGenerationException; -import org.apache.axis2.wsdl.codegen.extension.CodeGenExtension; -import org.apache.axis2.wsdl.codegen.extension.DefaultDatabindingExtension; -import org.apache.axis2.wsdl.codegen.extension.PackageFinder; -import org.apache.axis2.wsdl.codegen.extension.WSDLValidatorExtension; -import org.apache.axis2.wsdl.databinding.JavaTypeMapper; -import org.w3c.dom.Document; -import org.xml.sax.SAXException; - -import com.sun.tools.xjc.api.XJC; - -public class JavaInterfaceGenerator { - - private List codegenExtensions = new ArrayList(); - private List<CodeGenConfiguration> codegenConfigurations= new LinkedList<CodeGenConfiguration>(); - private String outputLocation; - - - - public JavaInterfaceGenerator(String uri, String ports[], String outputLocation, String packageName, - Map<QName, SDODataBindingTypeMappingEntry> typeMapping) throws CodeGenerationException { - this.outputLocation = outputLocation; - - Definition definition; - try { - definition = readWSDL(uri); - } catch (WSDLException e) { - throw new CodeGenerationException(e); - } - - HashSet<String> interestedPorts = ports == null ? null : new HashSet<String>(Arrays.asList(ports)); - - // Service service=(Service)definition.getServices().values().().next(); - - HashSet<QName> donePortTypes= new HashSet<QName>(); - - for (Iterator sIter = definition.getServices().values().iterator(); sIter.hasNext(); ) { - Service service = (Service) sIter.next(); - - QName serviceQname = service.getQName(); - for (Iterator pIter= service.getPorts().values().iterator(); pIter.hasNext(); ) { - Port port= (Port) pIter.next(); - if(interestedPorts != null && ! interestedPorts.contains(port.getName())) continue;//not iterested. - PortType portType= getPortType(port); - if(null == portType) continue; // not connected. - QName pQName= portType.getQName(); - if(donePortTypes.contains(pQName)) continue; //allready did it. - donePortTypes.add(pQName); - - if (packageName == null) { - //use JAXWS/JAXB NS->package default algorithm, not the SDO/EMF one - packageName = XJC.getDefaultPackageName(definition.getTargetNamespace()); - } - // - // Use WSDL4J object to generate exception classes - // - generateFaults(packageName, portType, typeMapping); - JavaTypeMapper typeMapper = new JavaTypeMapper(); - for (Map.Entry<QName, SDODataBindingTypeMappingEntry> e : typeMapping.entrySet()) { - typeMapper.addTypeMappingObject(e.getKey(), e.getValue()); - // Added for generation of exceptions from faults - typeMapper.addTypeMappingName(e.getKey(), e.getValue().getClassName()); - } - - - AxisService axisService; - WSDL11ToAxisServiceBuilder builder; - try { - // - // Added since at a newer level of Axis2, this doesn't work - // without the setCodegen(true) - // - builder = new WSDL11ToAxisServiceBuilder(definition, serviceQname, port.getName()); - builder.setCodegen(true); - axisService = builder.populateService(); - } catch (AxisFault e) { - throw new CodeGenerationException(e); - } - - axisService.setName(port.getBinding().getPortType().getQName().getLocalPart()); - CodeGenConfiguration codegenConfiguration = new CodeGenConfiguration(Collections.EMPTY_MAP); - codegenConfigurations.add(codegenConfiguration); - codegenConfiguration.setAxisService(axisService); - codegenConfiguration.setAdvancedCodeGenEnabled(false); - codegenConfiguration.setAsyncOn(false); - codegenConfiguration.setDatabindingType("sdo"); - codegenConfiguration.setGenerateAll(true); - codegenConfiguration.setGenerateDeployementDescriptor(false); - codegenConfiguration.setOutputLanguage("java"); - codegenConfiguration.setOutputLocation(new File(outputLocation)); - codegenConfiguration.setPackageName(packageName); - codegenConfiguration.setPackClasses(false); - codegenConfiguration.setPolicyMap(Collections.EMPTY_MAP); - codegenConfiguration.setPortName(port.getName()); - codegenConfiguration.setServerSide(false); - codegenConfiguration.setServiceName(service.getQName().getLocalPart()); - // This lines up with the sync/async variable from the XSL template - codegenConfiguration.setSyncOn(true); - codegenConfiguration.setTypeMapper(typeMapper); - -// JIRA TUSCANY-1561 Port to Axis2 1.3 -// codegenConfiguration.setWriteMessageReceiver(false); - codegenConfiguration.setSkipMessageReceiver(true); - - codegenConfiguration.setWriteTestCase(false); - addExtension(new WSDLValidatorExtension(), codegenConfiguration); - addExtension(new PackageFinder(), codegenConfiguration); - addExtension(new SDODataBindingCodegenExtension(typeMapper), codegenConfiguration); - addExtension(new DefaultDatabindingExtension(), codegenConfiguration); - } - } - } - - - private PortType getPortType(Port port) { - Binding binding = port.getBinding(); - if(null != binding){ - return binding.getPortType(); - } - return null; - - } - - - @SuppressWarnings("unchecked") - private void addExtension(CodeGenExtension ext, CodeGenConfiguration codegenConfiguration) { - //ext.init(codegenConfiguration); - codegenExtensions.add(new Object[]{ext, codegenConfiguration}); - } - - public void generate() throws CodeGenerationException { - try { - for (int i = 0; i < codegenExtensions.size(); i++) { - // CodeGenExtension - Object[] pair = (Object[])codegenExtensions.get(i); - - CodeGenExtension cge = (CodeGenExtension)pair[0]; - CodeGenConfiguration cgf = (CodeGenConfiguration)pair[1]; - - cge.engage(cgf); - } - - for (CodeGenConfiguration codegenConfiguration : codegenConfigurations) { - JavaInterfaceEmitter emitter = new JavaInterfaceEmitter(); - emitter.setCodeGenConfiguration(codegenConfiguration); - emitter.setMapper(codegenConfiguration.getTypeMapper()); - - emitter.writeInterface(false); - } - - } catch (Exception e) { - throw new CodeGenerationException(e); - } - } - - /** - * Read the WSDL file - * - * @param uri - * @return - * @throws WSDLException - */ - private Definition readWSDL(String uri) throws WSDLException { - - WSDLReader reader = WSDLFactory.newInstance().newWSDLReader(); - reader.setFeature("javax.wsdl.importDocuments", true); - - File file = new File(uri); - String baseURI; - - if (uri.startsWith("http://")) { - baseURI = uri; - } else { - if (file.getParentFile() == null) { - try { - baseURI = new File(".").getCanonicalFile().toURI().toString(); - } catch (IOException e) { - throw new RuntimeException(e); - } - } else { - baseURI = file.getParentFile().toURI().toString(); - } - } - - Document doc; - try { - doc = XMLUtils.newDocument(uri); - } catch (ParserConfigurationException e) { - throw new WSDLException(WSDLException.PARSER_ERROR, "Parser Configuration Error", e); - } catch (SAXException e) { - throw new WSDLException(WSDLException.PARSER_ERROR, "Parser SAX Error", e); - - } catch (IOException e) { - throw new WSDLException(WSDLException.INVALID_WSDL, "IO Error", e); - } - - return reader.readWSDL(baseURI, doc); - } - - private void generateFaults(String packageName, PortType portType, Map<QName, SDODataBindingTypeMappingEntry> typeMapping) - throws CodeGenerationException{ - - for (Object o: portType.getOperations()) { - Operation op = (Operation)o; - Map messageMap = op.getFaults(); - Iterator iter = messageMap.values().iterator(); - while (iter.hasNext()) { - Fault fault = (Fault)iter.next(); - Message faultMsg = fault.getMessage(); - Iterator iter2 = faultMsg.getParts().values().iterator(); - Part faultMsgPart = (Part)iter2.next(); - // TODO - if other parts throw exc - QName faultMsgQName = faultMsg.getQName(); - QName faultMsgPartElementQName = faultMsgPart.getElementName(); - String faultClassName = typeMapping.get(faultMsgPartElementQName).getClassName(); - writeException(packageName, faultMsgQName, faultClassName, faultMsgPartElementQName); - } - } - } - - private void writeException(String packageName, QName faultMsgQName, String faultClassName, QName faultMsgPartElementQName) - throws CodeGenerationException{ - - try { - String faultWrapperClassName = - WSDL2JavaGenerator.normalizeClassName(faultMsgQName.getLocalPart()); - - File outputDir = new File(this.outputLocation); - - if (!outputDir.exists()) { - outputDir.mkdirs(); - } - File outputFile = FileWriter.createClassFile(outputDir, - packageName, faultWrapperClassName, ".java"); - - FileOutputStream fileStream = new FileOutputStream(outputFile); - PrintStream stream = new PrintStream(fileStream); - - System.out.println(">> Generating Java exception class " + packageName + "." + faultWrapperClassName); - - stream.println(); - stream.println("package " + packageName + ";"); - stream.println(); - stream.println("import javax.xml.namespace.QName; "); - stream.println(); - stream.println("public class " + faultWrapperClassName + " extends Exception {"); - stream.println(); - stream.println(" private " + faultClassName + " fault;"); - stream.println(); - stream.println(" public " + faultWrapperClassName + "(String message, " + faultClassName + " fault) {"); - stream.println(" super(message);"); - stream.println(" this.fault = fault;"); - stream.println(" }"); - stream.println(); - stream.println(" public " + faultWrapperClassName + "(String message, " + faultClassName + " fault, Throwable cause) {"); - stream.println(" super(message, cause);"); - stream.println(" this.fault = fault;"); - stream.println(" }"); - stream.println(); - stream.println(" public static QName FAULT_ELEMENT = new QName(\"" + faultMsgPartElementQName.getNamespaceURI() + - "\",\"" + faultMsgPartElementQName.getLocalPart() + "\");"); - stream.println(); - stream.println(" public " + faultClassName + " getFaultInfo() {"); - stream.println(" return this.fault;"); - stream.println(" }"); - stream.println("}"); - stream.println(); - } catch (Exception e) { - throw new CodeGenerationException(e); - } - } -} diff --git a/branches/sca-java-1.0.1/modules/wsdl2java/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/RemotableInterfaceWritter.java b/branches/sca-java-1.0.1/modules/wsdl2java/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/RemotableInterfaceWritter.java deleted file mode 100644 index c48814c5ac..0000000000 --- a/branches/sca-java-1.0.1/modules/wsdl2java/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/RemotableInterfaceWritter.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.apache.tuscany.tools.wsdl2java.generate; - -import java.io.File; - -import org.apache.axis2.wsdl.codegen.CodeGenerationException; -import org.apache.axis2.wsdl.codegen.writer.InterfaceWriter; - -/** - * - */ -public class RemotableInterfaceWritter extends InterfaceWriter { - private static final String REMOTABLE_INTERFACE_TEMPLATE="/RemotableInterfaceTemplate.xsl"; - - public RemotableInterfaceWritter(String outputFileLocation) { - super(outputFileLocation); - } - - public RemotableInterfaceWritter(File outputFileLocation, String language) { - super(outputFileLocation, language); - } - - /** - * Loads the template. - */ - @Override - public void loadTemplate() throws CodeGenerationException { - // the default behavior for the class writers is to use the property map from the languge specific types - // The properties are arranged in the following order - // <lang-name>.* .template=<write-class>,<template-name> - - //overrida original behaviour to always load the template we specified - this.xsltStream = this.getClass().getResourceAsStream(REMOTABLE_INTERFACE_TEMPLATE); - - } -} diff --git a/branches/sca-java-1.0.1/modules/wsdl2java/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/SDODataBindingCodegenExtension.java b/branches/sca-java-1.0.1/modules/wsdl2java/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/SDODataBindingCodegenExtension.java deleted file mode 100644 index 4ab152fb90..0000000000 --- a/branches/sca-java-1.0.1/modules/wsdl2java/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/SDODataBindingCodegenExtension.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.apache.tuscany.tools.wsdl2java.generate; - -import org.apache.axis2.wsdl.codegen.CodeGenConfiguration; -import org.apache.axis2.wsdl.codegen.CodeGenerationException; -import org.apache.axis2.wsdl.codegen.extension.AbstractDBProcessingExtension; -import org.apache.axis2.wsdl.databinding.TypeMapper; - -/** - * SDO data binding codegen extension. - */ -public class SDODataBindingCodegenExtension extends AbstractDBProcessingExtension { - - private TypeMapper typeMapper; - - public SDODataBindingCodegenExtension(TypeMapper typeMapper) { - this.typeMapper=typeMapper; - } - - @Override - protected boolean testFallThrough(String dbFrameworkName) { - return !dbFrameworkName.equals("sdo"); - } - -// public void engage() { -// if (testFallThrough(configuration.getDatabindingType())) { -// return; -// } -// -// // Set the type mapper into the config -// configuration.setTypeMapper(typeMapper); -// -// } - - public void engage(CodeGenConfiguration configuration) throws CodeGenerationException { - if (testFallThrough(configuration.getDatabindingType())) { - return; - } - - // Set the type mapper into the config - configuration.setTypeMapper(typeMapper); - - - } - -} diff --git a/branches/sca-java-1.0.1/modules/wsdl2java/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/SDODataBindingTypeMappingEntry.java b/branches/sca-java-1.0.1/modules/wsdl2java/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/SDODataBindingTypeMappingEntry.java deleted file mode 100644 index 2d81ef12bf..0000000000 --- a/branches/sca-java-1.0.1/modules/wsdl2java/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/SDODataBindingTypeMappingEntry.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.apache.tuscany.tools.wsdl2java.generate; - -import java.util.List; - -/** - * This represents a type mapping entry, used by the JavaInterfaceEmitter to generate - * method signatures. - */ -public class SDODataBindingTypeMappingEntry { - - private final boolean anonymous; - private final List<String> propertyClassNames; - private final String className; - - public SDODataBindingTypeMappingEntry(String className, boolean anonymous, List<String> propertyClassNames) { - this.className = className; - this.anonymous = anonymous; - this.propertyClassNames = propertyClassNames; - } - - public boolean isAnonymous() { - return anonymous; - } - - public String getClassName() { - return className; - } - - public List<String> getPropertyClassNames() { - return propertyClassNames; - } - -} diff --git a/branches/sca-java-1.0.1/modules/wsdl2java/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/WSDL2JavaGenerator.java b/branches/sca-java-1.0.1/modules/wsdl2java/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/WSDL2JavaGenerator.java deleted file mode 100644 index 1e790cdb3e..0000000000 --- a/branches/sca-java-1.0.1/modules/wsdl2java/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/WSDL2JavaGenerator.java +++ /dev/null @@ -1,529 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.apache.tuscany.tools.wsdl2java.generate; - -import java.io.BufferedReader; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileReader; -import java.io.IOException; -import java.io.InputStream; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.StringTokenizer; -import java.util.Vector; - -import javax.xml.namespace.QName; - -import org.apache.tuscany.sdo.generate.XSD2JavaGenerator; -import org.apache.tuscany.sdo.helper.HelperContextImpl; -import org.apache.tuscany.sdo.util.DataObjectUtil; -import org.eclipse.emf.codegen.ecore.genmodel.GenClass; -import org.eclipse.emf.codegen.ecore.genmodel.GenModel; -import org.eclipse.emf.codegen.ecore.genmodel.GenModelFactory; -import org.eclipse.emf.codegen.ecore.genmodel.GenPackage; -import org.eclipse.emf.codegen.util.CodeGenUtil; -import org.eclipse.emf.common.util.Diagnostic; -import org.eclipse.emf.common.util.URI; -import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.EClassifier; -import org.eclipse.emf.ecore.EPackage; -import org.eclipse.emf.ecore.EStructuralFeature; -import org.eclipse.emf.ecore.impl.EPackageRegistryImpl; -import org.eclipse.emf.ecore.resource.Resource; -import org.eclipse.emf.ecore.resource.ResourceSet; -import org.eclipse.emf.ecore.util.BasicExtendedMetaData; -import org.eclipse.emf.ecore.util.ExtendedMetaData; - -import commonj.sdo.helper.HelperContext; -import commonj.sdo.helper.XSDHelper; - -public class WSDL2JavaGenerator { - //Note: Dynamic SDO is defined as 0x4000 to avoid conflict with XSD2Java genOptions - static protected final int DYNAMIC_SDO = 0x1; - static protected final int GENERATE_SDO = 0x2; - static protected final int VERBOSE_MODE = 0x4; - static protected final String NO_GEN_PARM = "-noGenerate"; - static protected final String TARGET_DIR_PARM = "-targetDirectory"; - static protected final String JAVA_PACKAGE_PARM = "-javaPackage"; - static protected final String ALL_NAMESPACES_PARM = "-schemaNamespace all"; - - /** - * Generate Java interfaces from WSDL Usage arguments: [ -targetDirectory - * <target-root-directory> ] [ -javaPackage <java-package-name> ] - * <wsdl-file> For example: generate somedir/somefile.wsdl Basic options: - * -targetDirectory Generates the Java source code in the specified - * directory. By default, the code is generated in the same directory as the - * input wsdl file. -javaPackage Overrides the Java package for the - * generated classes. By default the package name is derived from the - * targetNamespace of the WSDL definition being generated. For example, if - * the targetNamespace is "http://www.example.com/simple", the default - * package will be "com.example.simple". - */ - public static void main(String args[]) { - if (args.length == 0) { - printUsage(); - return; - } - - String portName = null; - String targetDirectory = null; - String wsdlJavaPackage = null; - String xsdJavaPackage = null; - String sdoGenArgs = null; - String sdoGenArgsString = null; - int genOptions = 0; - - int index = 0; - for (; index < args.length && args[index].startsWith("-"); ++index) { - if (args[index].equalsIgnoreCase("-port")) { - portName = args[++index]; - } else if (args[index].equalsIgnoreCase("-targetDirectory")) { - targetDirectory = args[++index]; - } else if (args[index].equalsIgnoreCase("-javaPackage")) { - wsdlJavaPackage = args[++index]; - } else if (args[index].equalsIgnoreCase("-dynamicSDO")) { - genOptions |= DYNAMIC_SDO; - } else if (args[index].equalsIgnoreCase("-generateSDO")){ - genOptions |= GENERATE_SDO; - } else if (args[index].equalsIgnoreCase("-sdoGenArgs")){ - sdoGenArgs = args[++index]; - } else if (args[index].equalsIgnoreCase("-verbose")){ - genOptions |= VERBOSE_MODE; - } - // else if (...) - else { - printUsage(); - return; - } - } - if (sdoGenArgs!=null && (GENERATE_SDO & genOptions)== 0){ - genOptions |= GENERATE_SDO; - } - - if (targetDirectory == null) { - targetDirectory = "."; - } - String wsdlFileName = args[index]; - if (wsdlFileName == null || ((DYNAMIC_SDO & genOptions)!=0 && (GENERATE_SDO & genOptions)!= 0)) { - printUsage(); - return; - } - if (sdoGenArgs !=null){ - try { - File inFile = new File(sdoGenArgs).getAbsoluteFile(); - FileReader inputFile = new FileReader(inFile); - BufferedReader bufRead = new BufferedReader(inputFile); - StringBuffer fileContents= new StringBuffer(); - String line; - while ((line = bufRead.readLine())!=null){ - fileContents.append(line + " "); - } - sdoGenArgsString = fileContents.toString(); - } catch (IOException e) { - e.printStackTrace(); - throw new IllegalArgumentException(e); - } - } else { - sdoGenArgsString = null; - } - - if ((DYNAMIC_SDO & genOptions) != 0){ - generateDynamicFromWSDL(wsdlFileName, portName!=null? new String[]{portName}:null, targetDirectory, wsdlJavaPackage, xsdJavaPackage, genOptions); - } else { - generateFromWSDL(wsdlFileName, portName!=null? new String[]{portName}:null, targetDirectory, wsdlJavaPackage, genOptions, sdoGenArgsString); - } - - } - - @SuppressWarnings("unchecked") - public static void generateFromWSDL(String wsdlFileName, String[] ports, String targetDirectory, String wsdlJavaPackage, int genOptions, String sdoGenArgsString) - { - try { - if (targetDirectory == null) { - targetDirectory = new File(wsdlFileName).getCanonicalFile().getParent(); - } else { - targetDirectory = new File(targetDirectory).getCanonicalPath(); - } - - // Populate the typeMapping table that will be given to the Axis2 WSDL2Java - Map<QName, SDODataBindingTypeMappingEntry> typeMapping = - new HashMap<QName, SDODataBindingTypeMappingEntry>(); - StringBuffer buildCommand = new StringBuffer(); - //build XSD command lines - //build generic command for simple case & dynamic SDO - buildCommand.append(ALL_NAMESPACES_PARM); - if (sdoGenArgsString == null){ - buildCommand.append(" " + TARGET_DIR_PARM + " " + targetDirectory); - if (wsdlJavaPackage != null && (genOptions & GENERATE_SDO)!=0){ - buildCommand.append(" " + JAVA_PACKAGE_PARM + " " + wsdlJavaPackage); - } - if ((genOptions & GENERATE_SDO)==0){ - buildCommand.append(" "); - buildCommand.append(NO_GEN_PARM); - } - } else { - buildCommand.append(" "); - buildCommand.append(sdoGenArgsString); - } - - //TUSCANY-1642 - We shouldn't split the wsdlFileName as it my contain a filename with spaces - Vector sdoCommand = new Vector(java.util.Arrays.asList(buildCommand.toString().split("\\s+"))); - sdoCommand.add(wsdlFileName); - - String[] sdoGenCommand = new String[sdoCommand.size()]; - sdoCommand.toArray(sdoGenCommand); - - if ((genOptions & VERBOSE_MODE)!=0){ - System.out.println("Options passed to XSD2Java: "); - for (int i=0; i<sdoGenCommand.length; i++){ System.out.println("\"" + sdoGenCommand[i] + "\"");} - } - - XSD2JavaGenerator codeGen = new XSD2JavaGenerator(); - try { - codeGen.generateFromXMLSchema( sdoGenCommand ); - } catch (IllegalArgumentException e) { - System.out.println("Specified Invalid XSD2Java Arguments.\nFollow the XSD2Java usage, omitting the wsdl/xsd file argument."); - throw new IllegalArgumentException(e); - } - - List packages = codeGen.getGeneratedPackageInfo(); - - for (Iterator iter = packages.iterator(); iter.hasNext();) - { - XSD2JavaGenerator.GeneratedPackage packageInfo = (XSD2JavaGenerator.GeneratedPackage)iter.next(); - for (Iterator iterClass = packageInfo.getClasses().iterator(); iterClass.hasNext();) - { - XSD2JavaGenerator.GeneratedPackage.PackageClassInfo classInfo = (XSD2JavaGenerator.GeneratedPackage.PackageClassInfo)iterClass.next(); - SDODataBindingTypeMappingEntry typeMappingEntry; - if ((genOptions & DYNAMIC_SDO)==0){ - - typeMappingEntry = new SDODataBindingTypeMappingEntry(classInfo.getClassName(), classInfo.getAnonymous(), classInfo.getProperties()); - } else { - // TO DO implement dynamic sdo case - typeMappingEntry = null; - System.out.println(); - } - QName qname = new QName(packageInfo.getNamespace(),classInfo.getName()); - - //FIXME Workaround for JIRA TUSCANY-1673 - // Do not overwrite a typemapping entry describing a element typed by an anonymous - // complex type with a typemapping entry describing a complex type named like the - // element - SDODataBindingTypeMappingEntry existingTypeMapping = typeMapping.get(qname); - if (existingTypeMapping == null || !existingTypeMapping.isAnonymous()) { - typeMapping.put(qname, typeMappingEntry); - } - } - } - - JavaInterfaceGenerator codeGenerator = new JavaInterfaceGenerator(wsdlFileName, - ports, - targetDirectory, - wsdlJavaPackage, - typeMapping); - codeGenerator.generate(); - } catch (Exception e) { - e.printStackTrace(); - throw new IllegalArgumentException(e); - } - } - - @SuppressWarnings("unchecked") - public static void generateFromWSDL(String wsdlFileName, String targetDirectory, - String wsdlJavaPackage, - String xsdJavaPackage, int genOptions){ - String sdoGenArgsString = null; - if (xsdJavaPackage != null){ - sdoGenArgsString = JAVA_PACKAGE_PARM + " " + xsdJavaPackage; - } - generateFromWSDL( wsdlFileName, null, targetDirectory, wsdlJavaPackage, genOptions, sdoGenArgsString); - - } - - public static void generateFromWSDL(String wsdlFileName, String[] ports, - String targetDirectory, String wsdlJavaPackage, - String xsdJavaPackage, int genOptions) { - String sdoGenArgsString = null; - if (xsdJavaPackage != null){ - sdoGenArgsString = JAVA_PACKAGE_PARM + " " + xsdJavaPackage; - } - generateFromWSDL( wsdlFileName, null, targetDirectory, wsdlJavaPackage, genOptions, sdoGenArgsString); - } - - @SuppressWarnings("unchecked") - public static void generateDynamicFromWSDL(String wsdlFileName, String[] ports, - String targetDirectory, String wsdlJavaPackage, - String xsdJavaPackage, int genOptions) - { - - // Initialize the SDO runtime - DataObjectUtil.initRuntime(); - EPackage.Registry packageRegistry = new EPackageRegistryImpl(EPackage.Registry.INSTANCE); - ExtendedMetaData extendedMetaData = new BasicExtendedMetaData(packageRegistry); - HelperContext context = new HelperContextImpl(extendedMetaData, false); - XSDHelper xsdHelper = context.getXSDHelper(); - - try { - - // Load the WSDL file - File inputFile = new File(wsdlFileName).getAbsoluteFile(); - InputStream inputStream = new FileInputStream(inputFile); - - // Define SDO metadata - xsdHelper.define(inputStream, inputFile.toURI().toString()); - - if (targetDirectory == null) { - targetDirectory = new File(wsdlFileName).getCanonicalFile().getParent(); - } else { - targetDirectory = new File(targetDirectory).getCanonicalPath(); - } - - // Populate the typeMapping table that will be given to the Axis2 WSDL2Java - Map<QName, SDODataBindingTypeMappingEntry> typeMapping = - new HashMap<QName, SDODataBindingTypeMappingEntry>(); - if (!packageRegistry.values().isEmpty()) { - ResourceSet resourceSet = DataObjectUtil.createResourceSet(); - - // Populate list of GenPackages and a map of GenClasses keyed by EClass - List<GenPackage> genPackages = new ArrayList<GenPackage>(); - Map<EClass, GenClass> genClasses = new HashMap<EClass, GenClass>(); - for (Iterator iter = packageRegistry.values().iterator(); iter.hasNext();) { - EPackage currentEPackage = (EPackage)iter.next(); - String currentBasePackage = extractBasePackageName(currentEPackage, xsdJavaPackage); - String currentPrefix = CodeGenUtil.capName(currentEPackage.getName()); - - GenPackage currentGenPackage = createGenPackage(currentEPackage, currentBasePackage, - currentPrefix, genOptions, resourceSet); - genPackages.add(currentGenPackage); - for (GenClass genClass : (List<GenClass>)currentGenPackage.getGenClasses()) { - genClasses.put(genClass.getEcoreClass(), genClass); - } - - } - - // Process all the SDO packages - // Populate the qname -> interfaceName typeMapping table - for (GenPackage currentGenPackage : genPackages) { - EPackage currentEPackage = currentGenPackage.getEcorePackage(); - - // Populate the type mappings for all the complex types - for (GenClass genClass : (List<GenClass>)currentGenPackage.getGenClasses()) { - QName qname = new QName(extendedMetaData.getNamespace(currentEPackage), - extendedMetaData.getName(genClass.getEcoreClass())); - String interfaceName = (DYNAMIC_SDO & genOptions) == DYNAMIC_SDO ? "commonj.sdo.DataObject" : currentGenPackage - .getInterfacePackageName() - + '.' + genClass.getInterfaceName(); - SDODataBindingTypeMappingEntry typeMappingEntry = - new SDODataBindingTypeMappingEntry(interfaceName, false, null); - typeMapping.put(qname, typeMappingEntry); - } - - // Process all the global XSD elements - EClass documentRoot = extendedMetaData.getDocumentRoot(currentEPackage); - if (documentRoot != null) { - for (EStructuralFeature element : (List<EStructuralFeature>)extendedMetaData - .getElements(documentRoot)) { - EClassifier elementType = element.getEType(); - - // Handle a complex type - if (elementType instanceof EClass) { - EClass eClass = (EClass)elementType; - - GenClass genClass = genClasses.get(elementType); - QName qname = new QName(extendedMetaData.getNamespace(currentEPackage), - extendedMetaData.getName(element)); - String interfaceName = (DYNAMIC_SDO & genOptions) == DYNAMIC_SDO ? "commonj.sdo.DataObject" : genClass - .getGenPackage().getInterfacePackageName() - + '.' + genClass.getInterfaceName(); - boolean anonymous = extendedMetaData.isAnonymous(eClass); - - // Build list of property class names - List<String> propertyClassNames=new ArrayList<String>(); - for (EStructuralFeature feature : (List<EStructuralFeature>)eClass.getEStructuralFeatures()) { - EClassifier propertyType = feature.getEType(); - if (propertyType instanceof EClass) { - GenClass propertyGenClass = genClasses.get(propertyType); - String propertyClassName = (DYNAMIC_SDO & genOptions) == DYNAMIC_SDO ? "commonj.sdo.DataObject" - : propertyGenClass.getGenPackage().getInterfacePackageName() + '.' - + '.' + propertyGenClass.getInterfaceName(); - propertyClassNames.add(propertyClassName); - } else if (propertyType instanceof EClassifier) { - String propertyClassName = propertyType.getInstanceClass().getName(); - propertyClassNames.add(propertyClassName); - } - } - - SDODataBindingTypeMappingEntry typeMappingEntry = - new SDODataBindingTypeMappingEntry(interfaceName, anonymous, propertyClassNames); - typeMapping.put(qname, typeMappingEntry); - - } else { - - // Handle a simple type - QName qname = new QName(extendedMetaData.getNamespace(currentEPackage), - extendedMetaData.getName(element)); - String className = elementType.getInstanceClass().getName(); - SDODataBindingTypeMappingEntry typeMappingEntry = - new SDODataBindingTypeMappingEntry(className, false, null); - typeMapping.put(qname, typeMappingEntry); - } - } - } - } - } - - try { - JavaInterfaceGenerator codeGenerator = new JavaInterfaceGenerator(wsdlFileName, - ports, - targetDirectory, - wsdlJavaPackage, - typeMapping); - codeGenerator.generate(); - } catch (Exception e) { - e.printStackTrace(); - throw new IllegalArgumentException(e); - } - - } catch (IOException e) { - e.printStackTrace(); - throw new IllegalArgumentException(e); - } - } - - @SuppressWarnings("unchecked") - public static GenPackage createGenPackage(EPackage ePackage, String basePackage, String prefix, - int genOptions, ResourceSet resourceSet) { - GenModel genModel = ecore2GenModel(ePackage, basePackage, prefix, genOptions); - - URI ecoreURI = URI.createURI("file:///" + ePackage.getName() + ".ecore"); - URI genModelURI = ecoreURI.trimFileExtension().appendFileExtension("genmodel"); - - Resource ecoreResource = resourceSet.createResource(ecoreURI); - ecoreResource.getContents().add(ePackage); - - Resource genModelResource = resourceSet.createResource(genModelURI); - genModelResource.getContents().add(genModel); - - return (GenPackage)genModel.getGenPackages().get(0); - } - - public static GenModel ecore2GenModel(EPackage ePackage, String basePackage, - String prefix, int genOptions) { - GenModel genModel = GenModelFactory.eINSTANCE.createGenModel(); - genModel.initialize(Collections.singleton(ePackage)); - - genModel.setRootExtendsInterface(""); - genModel.setRootImplementsInterface("commonj.sdo.DataObject"); - genModel.setRootExtendsClass("org.apache.tuscany.sdo.impl.DataObjectImpl"); - genModel.setFeatureMapWrapperInterface("commonj.sdo.Sequence"); - genModel.setFeatureMapWrapperInternalInterface("org.apache.tuscany.sdo.util.BasicSequence"); - genModel.setFeatureMapWrapperClass("org.apache.tuscany.sdo.util.BasicSequence"); - genModel.setSuppressEMFTypes(true); - genModel.setSuppressEMFMetaData(true); - genModel.setSuppressEMFModelTags(true); - genModel.setCanGenerate(true); - // FIXME workaround java.lang.NoClassDefFoundError: - // org/eclipse/jdt/core/jdom/IDOMNode with 02162006 build - genModel.setFacadeHelperClass("Hack"); - genModel.setForceOverwrite(true); - - GenPackage genPackage = (GenPackage)genModel.getGenPackages().get(0); - - if (basePackage != null) { - genPackage.setBasePackage(basePackage); - } - if (prefix != null) { - genPackage.setPrefix(prefix); - } - - return genModel; - } - - public static String extractBasePackageName(EPackage ePackage, String javaPackage) { - String qualifiedName = javaPackage != null ? javaPackage : ePackage.getName(); - String name = /* CodeGenUtil. */shortName(qualifiedName); - String baseName = qualifiedName.substring(0, qualifiedName.length() - name.length()); - if (javaPackage != null || !name.equals(qualifiedName)) { - ePackage.setName(name); - } - return baseName != null ? /* CodeGenUtil. */safeQualifiedName(baseName) : null; - } - - public static String shortName(String qualifiedName) { - int index = qualifiedName.lastIndexOf("."); - return index != -1 ? qualifiedName.substring(index + 1) : qualifiedName; - } - - public static String safeQualifiedName(String qualifiedName) { - StringBuffer safeQualifiedName = new StringBuffer(); - for (StringTokenizer stringTokenizer = new StringTokenizer(qualifiedName, "."); - stringTokenizer.hasMoreTokens();) { - String name = stringTokenizer.nextToken(); - safeQualifiedName.append(CodeGenUtil.safeName(name)); - if (stringTokenizer.hasMoreTokens()) { - safeQualifiedName.append('.'); - } - } - return safeQualifiedName.toString(); - } - /* - * Converts myClassName to MyClassName - */ - public static String normalizeClassName(String className) { - - StringBuffer normalizedClassName = new StringBuffer(); - - String beginPart = className.substring(0,1); - String endPart = className.substring(1); - - normalizedClassName.append(beginPart.toUpperCase()); - normalizedClassName.append(endPart); - - return normalizedClassName.toString(); - } - - protected static void printDiagnostic(Diagnostic diagnostic, String indent) { - System.out.print(indent); - System.out.println(diagnostic.getMessage()); - for (Iterator i = diagnostic.getChildren().iterator(); i.hasNext();) { - printDiagnostic((Diagnostic)i.next(), indent + " "); - } - } - - protected static void printUsage() { - System.out.println("Usage arguments:"); - System.out.println(" [ -targetDirectory <target-root-directory> ]"); - System.out.println(" [ -javaPackage <java-package-name> ]"); - System.out.println(" [ -dynamicSDO | -generateSDO [ -sdoGenArgs <command-file-name> ]]"); - System.out.println(" [ -verbose ]"); - System.out.println(" <wsdl-file>"); - System.out.println(""); - System.out.println("Where <command-file-name> is a text file containing valid XSD2Java command\narguments (w/o the wsdl/xsd file name)"); - System.out.println("For example:"); - System.out.println(""); - System.out.println(" WSDL2JavaGenerator -targetDirectory myDir somedir/somefile.wsdl"); - } - - -} diff --git a/branches/sca-java-1.0.1/modules/wsdl2java/src/main/java/org/apache/tuscany/tools/wsdl2java/util/XMLNameUtil.java b/branches/sca-java-1.0.1/modules/wsdl2java/src/main/java/org/apache/tuscany/tools/wsdl2java/util/XMLNameUtil.java deleted file mode 100644 index d0b325982c..0000000000 --- a/branches/sca-java-1.0.1/modules/wsdl2java/src/main/java/org/apache/tuscany/tools/wsdl2java/util/XMLNameUtil.java +++ /dev/null @@ -1,143 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.apache.tuscany.tools.wsdl2java.util; - -import java.util.ArrayList; -import java.util.List; - -public class XMLNameUtil { - - /** - * Returns a valid Java name from an XML Name. - * - * @param name - * @param isUpperCase - * @return a valid Java name from an XML Name - */ - public static String getJavaNameFromXMLName(String name, boolean isUpperCase) { - List<String> parsedName = parseName(name, '_'); - StringBuilder result = new StringBuilder(64 * parsedName.size()); - for (String nameComponent: parsedName) { - if (nameComponent.length() > 0) { - if (result.length() > 0 || isUpperCase) { - result.append(Character.toUpperCase(nameComponent.charAt(0))); - result.append(nameComponent.substring(1)); - } else { - result.append(nameComponent); - } - } - } - - if (result.length() == 0) { - return "_"; - } - if (Character.isJavaIdentifierStart(result.charAt(0))) { - return isUpperCase ? result.toString() : decapitalizeName(result.toString()); - } - return "_" + result; - } - - /** - * Decapitalize a name. - * @param name - * @return a decapitalized name - */ - public static String decapitalizeName(String name) { - if (name.length() == 0) { - return name; - } else { - String lowerName = name.toLowerCase(); - int i; - for (i = 0; i < name.length(); i++) { - if (name.charAt(i) == lowerName.charAt(i)) { - break; - } - } - if (i > 1 && i < name.length()) { - --i; - } - return name.substring(0, i).toLowerCase() + name.substring(i); - } - } - - /** - * Parse the given name. - * - * @param sourceName - * @param separator - * @return some stuff parsed from the name - */ - private static List<String> parseName(String sourceName, char separator) { - List<String> result = new ArrayList<String>(); - if (sourceName != null) { - StringBuilder currentWord = new StringBuilder(64); - boolean lastIsLower = false; - int index; - int length; - for (index = 0, length = sourceName.length(); index < length; ++index) { - char curChar = sourceName.charAt(index); - if (!Character.isJavaIdentifierPart(curChar)) { - curChar = separator; - } - if (Character.isUpperCase(curChar) - || (!lastIsLower && Character.isDigit(curChar)) - || curChar == separator) { - - if (lastIsLower && currentWord.length() > 1 - || curChar == separator && currentWord.length() > 0) { - result.add(currentWord.toString()); - currentWord = new StringBuilder(64); - } - lastIsLower = false; - } else { - if (!lastIsLower) { - int currentWordLength = currentWord.length(); - if (currentWordLength > 1) { - char lastChar = currentWord.charAt(--currentWordLength); - currentWord.setLength(currentWordLength); - result.add(currentWord.toString()); - currentWord = new StringBuilder(64); - currentWord.append(lastChar); - } - } - lastIsLower = true; - } - - if (curChar != separator) { - currentWord.append(curChar); - } - } - - result.add(currentWord.toString()); - } - return result; - } - - /** - * Return an EPackage name for the given namespace. - * - * @param namespace - * @return an EPackage name for the given namespace - */ - public static String getPackageNameFromNamespace(String namespace) { - return org.apache.tuscany.sdo.helper.SDOXSDEcoreBuilder.getDefaultPackageName(namespace); - } - - -} diff --git a/branches/sca-java-1.0.1/modules/wsdl2java/src/main/resources/META-INF/LICENSE.txt b/branches/sca-java-1.0.1/modules/wsdl2java/src/main/resources/META-INF/LICENSE.txt deleted file mode 100644 index 0084319535..0000000000 --- a/branches/sca-java-1.0.1/modules/wsdl2java/src/main/resources/META-INF/LICENSE.txt +++ /dev/null @@ -1,202 +0,0 @@ - - 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, serviceDefinition 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. diff --git a/branches/sca-java-1.0.1/modules/wsdl2java/src/main/resources/RemotableInterfaceTemplate.xsl b/branches/sca-java-1.0.1/modules/wsdl2java/src/main/resources/RemotableInterfaceTemplate.xsl deleted file mode 100644 index 00714af44b..0000000000 --- a/branches/sca-java-1.0.1/modules/wsdl2java/src/main/resources/RemotableInterfaceTemplate.xsl +++ /dev/null @@ -1,121 +0,0 @@ -<!--
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.
--->
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
- <xsl:output method="text"/>
-
- <!-- import the databinding template-->
- <xsl:include href="databindsupporter"/>
- <!-- import the other templates for databinding
- Note - these names would be handled by a special
- URI resolver during the xslt transformations
- -->
- <xsl:include href="externalTemplate"/>
-
-
- <xsl:template match="/interface">
- <xsl:variable name="isSync"><xsl:value-of select="@isSync"/></xsl:variable>
- <xsl:variable name="isAsync"><xsl:value-of select="@isAsync"/></xsl:variable>
- <xsl:variable name="callbackname"><xsl:value-of select="@callbackname"/></xsl:variable>
- <xsl:variable name="package"><xsl:value-of select="@package"/></xsl:variable>
-
- /**
- * <xsl:value-of select="@name"/>.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: #axisVersion# #today#
- */
- package <xsl:value-of select="$package"/>;
-
- import org.osoa.sca.annotations.Remotable;
-
- /*
- * <xsl:value-of select="@name"/> java interface
- */
-
- @Remotable
- public interface <xsl:value-of select="@name"></xsl:value-of> {
- <xsl:for-each select="method">
- <!-- Code for in-out mep -->
- <xsl:if test="@mep='12'">
- <xsl:variable name="outputtype"><xsl:value-of select="output/param/@type"></xsl:value-of></xsl:variable>
-
- <!-- start of the sync block -->
- <xsl:if test="$isSync='1'">
- /**
- * Auto generated method signatures
- <xsl:for-each select="input/param[@type!='']">* @param <xsl:value-of select="@name"></xsl:value-of><xsl:text> </xsl:text></xsl:for-each>
- <xsl:for-each select="fault/param[@name!='']">* @throws <xsl:value-of select="@name"></xsl:value-of><xsl:text> *</xsl:text></xsl:for-each>
- */
- public <xsl:choose><xsl:when test="$outputtype=''">void</xsl:when><xsl:otherwise><xsl:value-of select="$outputtype"/></xsl:otherwise></xsl:choose>
- <xsl:text> </xsl:text><xsl:value-of select="@name"/>(
- <xsl:for-each select="input/param[@type!='']">
- <xsl:if test="position()>1">,</xsl:if><xsl:value-of select="@type"/><xsl:text> </xsl:text><xsl:value-of select="@name"/>
- </xsl:for-each>) <xsl:for-each select="fault/param[@name!='']">
- <xsl:if test="position()=1">throws </xsl:if><xsl:if test="position()>1">,</xsl:if><xsl:text> </xsl:text><xsl:value-of select="@name"/>
- </xsl:for-each>;
- <!-- end of the sync block -->
- </xsl:if>
-
- <!-- start of the async block -->
- <xsl:if test="$isAsync='1'">
- /**
- * Auto generated method signature
- <xsl:for-each select="input/param[@type!='']">* @param <xsl:value-of select="@name"></xsl:value-of><xsl:text> </xsl:text></xsl:for-each>
- <xsl:for-each select="fault/param[@name!='']">* @throws <xsl:value-of select="@name"></xsl:value-of><xsl:text> *</xsl:text></xsl:for-each>
- */
-
- public void start<xsl:value-of select="@name"/>(
- <xsl:variable name="paramCount"><xsl:value-of select="count(input/param[@type!=''])"></xsl:value-of></xsl:variable>
- <xsl:for-each select="input/param">
- <xsl:if test="@type!=''"><xsl:if test="position()>1">,</xsl:if><xsl:value-of select="@type"/><xsl:text> </xsl:text><xsl:value-of select="@name"></xsl:value-of></xsl:if></xsl:for-each>
- <xsl:if test="$paramCount>0">,</xsl:if>final <xsl:value-of select="$package"/>.<xsl:value-of select="$callbackname"/> callback) <xsl:for-each select="fault/param[@name!='']">
- <xsl:if test="position()=1">throws </xsl:if><xsl:if test="position()>1">,</xsl:if><xsl:text> </xsl:text><xsl:value-of select="@name"/>
- </xsl:for-each>;
- </xsl:if>
- <!-- end of async block-->
-
- </xsl:if>
- <!-- Code for in-only mep -->
- <xsl:if test="@mep='10'">
-
- <!-- For in-only meps there would not be any asynchronous methods since there is no output -->
- /**
- * Auto generated method signature
- <xsl:for-each select="input/param[@type!='']">* @param <xsl:value-of select="@name"></xsl:value-of><xsl:text> </xsl:text></xsl:for-each>
- <xsl:for-each select="fault/param[@name!='']">* @throws <xsl:value-of select="@name"></xsl:value-of><xsl:text> *</xsl:text></xsl:for-each>
- */
- public void
- <xsl:text> </xsl:text><xsl:value-of select="@name"/>(
- <xsl:for-each select="input/param">
- <xsl:if test="@type!=''"><xsl:if test="position()>1">,</xsl:if><xsl:value-of select="@type"/><xsl:text> </xsl:text><xsl:value-of select="@name"/>
- </xsl:if>
- </xsl:for-each>) <xsl:for-each select="fault/param[@name!='']">
- <xsl:if test="position()=1">throws </xsl:if><xsl:if test="position()>1">,</xsl:if><xsl:text> </xsl:text><xsl:value-of select="@name"/>
- </xsl:for-each>;
-
- </xsl:if>
- </xsl:for-each>
-
- <!-- Apply other templates -->
- //<xsl:apply-templates/>
- }
-
-
- </xsl:template>
- </xsl:stylesheet>
\ No newline at end of file diff --git a/branches/sca-java-1.0.1/modules/wsdl2java/src/test/java/org/apache/tuscany/tools/wsdl2java/generate/WSDL2JavaGeneratorTestCase.java b/branches/sca-java-1.0.1/modules/wsdl2java/src/test/java/org/apache/tuscany/tools/wsdl2java/generate/WSDL2JavaGeneratorTestCase.java deleted file mode 100644 index 92581d6ac2..0000000000 --- a/branches/sca-java-1.0.1/modules/wsdl2java/src/test/java/org/apache/tuscany/tools/wsdl2java/generate/WSDL2JavaGeneratorTestCase.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.apache.tuscany.tools.wsdl2java.generate; - -import junit.framework.TestCase; - -/** - * Test case for WSDL2Java - */ -public class WSDL2JavaGeneratorTestCase extends TestCase { - - - public void testAccountService() { - - String basedir = System.getProperty("basedir"); - if (basedir == null) - basedir = "."; - - String[] args = - new String[] {"-targetDirectory", basedir + "/target/wsdl2java-source", - "-javaPackage", "org.apache.tuscany.tools.wsdl2java.generate.account", - basedir + "/src/test/resources/AccountService.wsdl"}; - - WSDL2JavaGenerator.main(args); - - } - - /** - * Test WSDL with faults - * Sample WSDL originated from BigBank and Tuscany 978 - */ - public void testAccountServiceWithFaults() { - - String basedir = System.getProperty("basedir"); - if (basedir == null) - basedir = "."; - - String[] args = - new String[] {"-targetDirectory", basedir + "/target/wsdl2java-source", - "-javaPackage", "org.apache.tuscany.tools.wsdl2java.generate.account", - basedir + "/src/test/resources/AccountServiceWithFault.wsdl"}; - - WSDL2JavaGenerator.main(args); - - } - - /** - * Test Interopdoc WSDL - */ - public void testInteropdocWsdl() { - - String basedir = System.getProperty("basedir"); - if (basedir == null) - basedir = "."; - - String[] args = - new String[] {"-targetDirectory", basedir + "/target/wsdl2java-source", - "-javaPackage", "org.apache.tuscany.tools.wsdl2java.generate.account", - basedir + "/src/test/resources/interopdoc.wsdl"}; - - WSDL2JavaGenerator.main(args); - - } -} diff --git a/branches/sca-java-1.0.1/modules/wsdl2java/src/test/java/org/soapinterop/CreditScoreDocLit.java b/branches/sca-java-1.0.1/modules/wsdl2java/src/test/java/org/soapinterop/CreditScoreDocLit.java deleted file mode 100644 index e9e8aa882a..0000000000 --- a/branches/sca-java-1.0.1/modules/wsdl2java/src/test/java/org/soapinterop/CreditScoreDocLit.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.soapinterop; - -public interface CreditScoreDocLit { - public org.example.creditscore.doclit.CreditReport getCreditScore( - org.example.creditscore.doclit.Customer param0) throws java.rmi.RemoteException; - } - diff --git a/branches/sca-java-1.0.1/modules/wsdl2java/src/test/resources/AccountService.wsdl b/branches/sca-java-1.0.1/modules/wsdl2java/src/test/resources/AccountService.wsdl deleted file mode 100644 index 6f2fed1e2a..0000000000 --- a/branches/sca-java-1.0.1/modules/wsdl2java/src/test/resources/AccountService.wsdl +++ /dev/null @@ -1,242 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?>
-<!--
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.
- -->
-<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
- xmlns:tns="http://www.bigbank.com/Account/"
- xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:account="http://www.bigbank.com/Account/"
- targetNamespace="http://www.bigbank.com/Account/" - name="AccountService">
-
- <wsdl:types>
- <xsd:schema targetNamespace="http://www.bigbank.com/Account/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:account="http://www.bigbank.com/Account/" - xmlns:sdojava="commonj.sdo/java" - sdojava:package="org.apache.tuscany.samples.bigbank.account">
-
- <xsd:element name="getAccountReportWrapped0">
- <xsd:complexType>
- <xsd:sequence>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="getAccountReportWrapped0Response">
- <xsd:complexType>
- <xsd:sequence>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
-
- <xsd:element name="getAccountReportWrapped1"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="customerID" type="xsd:string"/> - </xsd:sequence> - </xsd:complexType> - </xsd:element>
- <xsd:element name="getAccountReportWrapped1Response"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="accountReport" type="account:AccountReport"/> - </xsd:sequence> - </xsd:complexType> - </xsd:element> -
- <xsd:element name="getAccountReportWrappedN">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="customerID" type="xsd:string"/>
- <xsd:element name="customerID2" type="xsd:int"/>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="getAccountReportWrappedNResponse">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="accountReport" type="account:AccountReport"/>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
-
- <xsd:element name="getAccountReportBare0" type="xsd:string"/>
- <xsd:element name="getAccountReportBare0Response" type="xsd:int"/>
-
- <xsd:element name="getAccountReportBare1Simple" type="xsd:string"/>
- <xsd:element name="getAccountReportBare1SimpleResponse" type="xsd:int"/>
-
- <xsd:element name="getAccountReportBare1Complex" type="account:AccountRequest"/>
- <xsd:element name="getAccountReportBare1ComplexResponse" type="account:AccountReport"/>
-
- <xsd:complexType name="AccountRequest">
- <xsd:sequence>
- <xsd:element name="customerID" type="xsd:string"/>
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="AccountReport">
- <xsd:sequence>
- <xsd:element name="accountSummaries" type="account:AccountSummary" maxOccurs="unbounded"/>
- </xsd:sequence>
- </xsd:complexType>
- <xsd:complexType name="AccountSummary">
- <xsd:attribute name="accountNumber" type="xsd:string"/>
- <xsd:attribute name="accountType" type="xsd:string"/>
- <xsd:attribute name="balance" type="xsd:float"/>
- </xsd:complexType>
-
- </xsd:schema>
- </wsdl:types>
-
- <wsdl:message name="getAccountReportWrapped0Request">
- <wsdl:part element="account:getAccountReportWrapped0" name="getAccountReportWrapped0Request"/>
- </wsdl:message>
- <wsdl:message name="getAccountReportWrapped0Response">
- <wsdl:part element="account:getAccountReportWrapped0Response" name="getAccountReportWrapped0Response"/>
- </wsdl:message>
-
- <wsdl:message name="getAccountReportWrapped1Request">
- <wsdl:part element="account:getAccountReportWrapped1" name="getAccountReportWrapped1Request"/>
- </wsdl:message>
- <wsdl:message name="getAccountReportWrapped1Response">
- <wsdl:part element="account:getAccountReportWrapped1Response" name="getAccountReportWrapped1Response"/>
- </wsdl:message>
-
- <wsdl:message name="getAccountReportWrappedNRequest">
- <wsdl:part element="account:getAccountReportWrappedN" name="getAccountReportWrappedNRequest"/>
- </wsdl:message>
- <wsdl:message name="getAccountReportWrappedNResponse">
- <wsdl:part element="account:getAccountReportWrappedNResponse" name="getAccountReportWrappedNResponse"/>
- </wsdl:message>
-
- <wsdl:message name="getAccountReportBare0Request">
- </wsdl:message>
- <wsdl:message name="getAccountReportBare0Response">
- </wsdl:message>
-
- <wsdl:message name="getAccountReportBare1SimpleRequest">
- <wsdl:part element="account:getAccountReportBare1Simple" name="getAccountReportBare1SimpleRequest"/>
- </wsdl:message>
- <wsdl:message name="getAccountReportBare1SimpleResponse">
- <wsdl:part element="account:getAccountReportBare1SimpleResponse" name="getAccountReportBare1SimpleResponse"/>
- </wsdl:message>
-
- <wsdl:message name="getAccountReportBare1ComplexRequest">
- <wsdl:part element="account:getAccountReportBare1Complex" name="getAccountReportBare1ComplexRequest"/>
- </wsdl:message>
- <wsdl:message name="getAccountReportBare1ComplexResponse">
- <wsdl:part element="account:getAccountReportBare1ComplexResponse" name="getAccountReportBare1ComplexResponse"/>
- </wsdl:message>
-
- <wsdl:portType name="Account_Service">
- <wsdl:operation name="getAccountReportWrapped0">
- <wsdl:input message="tns:getAccountReportWrapped0Request"/>
- <wsdl:output message="tns:getAccountReportWrapped0Response"/>
- </wsdl:operation>
- <wsdl:operation name="getAccountReportWrapped1">
- <wsdl:input message="tns:getAccountReportWrapped1Request"/>
- <wsdl:output message="tns:getAccountReportWrapped1Response"/>
- </wsdl:operation>
- <wsdl:operation name="getAccountReportWrappedN">
- <wsdl:input message="tns:getAccountReportWrappedNRequest"/>
- <wsdl:output message="tns:getAccountReportWrappedNResponse"/>
- </wsdl:operation>
- <wsdl:operation name="getAccountReportBare0">
- <wsdl:input message="tns:getAccountReportBare0Request"/>
- <wsdl:output message="tns:getAccountReportBare0Response"/>
- </wsdl:operation>
- <wsdl:operation name="getAccountReportBare1Simple">
- <wsdl:input message="tns:getAccountReportBare1SimpleRequest"/>
- <wsdl:output message="tns:getAccountReportBare1SimpleResponse"/>
- </wsdl:operation>
- <wsdl:operation name="getAccountReportBare1Complex">
- <wsdl:input message="tns:getAccountReportBare1ComplexRequest"/>
- <wsdl:output message="tns:getAccountReportBare1ComplexResponse"/>
- </wsdl:operation>
- </wsdl:portType>
- <wsdl:binding name="AccountServiceSOAP" type="tns:Account_Service">
- <soap:binding style="document"
- transport="http://schemas.xmlsoap.org/soap/http"/>
- <wsdl:operation name="getAccountReportWrapped0">
- <soap:operation
- soapAction="http://www.bigbank.com/Account/getAccountReportWrapped0"/>
- <wsdl:input>
- <soap:body use="literal"/>
- </wsdl:input>
- <wsdl:output>
- <soap:body use="literal"/>
- </wsdl:output>
- </wsdl:operation>
- <wsdl:operation name="getAccountReportWrapped1">
- <soap:operation
- soapAction="http://www.bigbank.com/Account/getAccountReportWrapped1"/>
- <wsdl:input>
- <soap:body use="literal"/>
- </wsdl:input>
- <wsdl:output>
- <soap:body use="literal"/>
- </wsdl:output>
- </wsdl:operation>
- <wsdl:operation name="getAccountReportWrappedN">
- <soap:operation
- soapAction="http://www.bigbank.com/Account/getAccountReportWrappedN"/>
- <wsdl:input>
- <soap:body use="literal"/>
- </wsdl:input>
- <wsdl:output>
- <soap:body use="literal"/>
- </wsdl:output>
- </wsdl:operation>
- <wsdl:operation name="getAccountReportBare0">
- <soap:operation
- soapAction="http://www.bigbank.com/Account/getAccountReportBare0"/>
- <wsdl:input>
- <soap:body use="literal"/>
- </wsdl:input>
- <wsdl:output>
- <soap:body use="literal"/>
- </wsdl:output>
- </wsdl:operation>
- <wsdl:operation name="getAccountReportBare1Simple">
- <soap:operation
- soapAction="http://www.bigbank.com/Account/getAccountReportBare1Simple"/>
- <wsdl:input>
- <soap:body use="literal"/>
- </wsdl:input>
- <wsdl:output>
- <soap:body use="literal"/>
- </wsdl:output>
- </wsdl:operation>
- <wsdl:operation name="getAccountReportBare1Complex">
- <soap:operation
- soapAction="http://www.bigbank.com/Account/getAccountReportBare1Complex"/>
- <wsdl:input>
- <soap:body use="literal"/>
- </wsdl:input>
- <wsdl:output>
- <soap:body use="literal"/>
- </wsdl:output>
- </wsdl:operation>
- </wsdl:binding>
- <wsdl:service name="AccountService">
- <wsdl:port binding="tns:AccountServiceSOAP"
- name="AccountServiceSOAP">
- <soap:address location="http://localhost:8085/sample-account/services/AccountService"/>
- </wsdl:port>
- </wsdl:service>
-</wsdl:definitions>
diff --git a/branches/sca-java-1.0.1/modules/wsdl2java/src/test/resources/AccountServiceWithFault.wsdl b/branches/sca-java-1.0.1/modules/wsdl2java/src/test/resources/AccountServiceWithFault.wsdl deleted file mode 100644 index dda5a36085..0000000000 --- a/branches/sca-java-1.0.1/modules/wsdl2java/src/test/resources/AccountServiceWithFault.wsdl +++ /dev/null @@ -1,475 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. ---> -<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" - xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" - xmlns:xsd="http://www.w3.org/2001/XMLSchema" - xmlns:account="http://www.bigbank.com/account" - targetNamespace="http://www.bigbank.com/account" - name="AccountServiceWithFault"> - - <wsdl:types> - <xsd:schema targetNamespace="http://www.bigbank.com/account" - xmlns:xsd="http://www.w3.org/2001/XMLSchema" - xmlns:account="http://www.bigbank.com/account"> - - <xsd:element name="getAccountReport"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="customerID" - type="xsd:int" /> - </xsd:sequence> - </xsd:complexType> - </xsd:element> - <xsd:element name="getAccountReportResponse"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="accountReport" - type="account:AccountReport" /> - </xsd:sequence> - </xsd:complexType> - </xsd:element> - - <xsd:complexType name="AccountReport"> - <xsd:sequence> - <xsd:element name="accountSummaries" - type="account:AccountSummary" maxOccurs="unbounded" /> - <xsd:element name="stockSummaries" - type="account:StockSummary" maxOccurs="unbounded" /> - </xsd:sequence> - </xsd:complexType> - <xsd:complexType name="AccountSummary"> - <xsd:attribute name="accountNumber" type="xsd:string" /> - <xsd:attribute name="accountType" type="xsd:string" /> - <xsd:attribute name="balance" type="xsd:float" /> - </xsd:complexType> - - <xsd:complexType name="StockSummary"> - <!-- xsd:attribute name="id" type="xsd:int" / --> - <xsd:attribute name="purchaseLotNumber" type="xsd:int" /> - <!-- unique id for this purchase --> - <xsd:attribute name="symbol" type="xsd:string" /> - <xsd:attribute name="quantity" type="xsd:int" /> - <xsd:attribute name="purchaseDate" type="xsd:dateTime" /> - <xsd:attribute name="purchasePrice" type="xsd:float" /> - <xsd:attribute name="currentPrice" type="xsd:float" /> - <xsd:attribute name="company" type="xsd:string" /> - <xsd:attribute name="highPrice" type="xsd:float" /> - <xsd:attribute name="lowPrice" type="xsd:float" /> - - </xsd:complexType> - - <!-- Profile in data base --> - <xsd:element name="getCustomerProfile"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="loginID" type="xsd:string" /> - </xsd:sequence> - </xsd:complexType> - </xsd:element> - - <xsd:complexType name="CustomerProfileData"> - <xsd:sequence> - <xsd:element name="firstName" type="xsd:string" /> - <xsd:element name="lastName" type="xsd:string" /> - <xsd:element name="address" type="xsd:string" /> - <xsd:element name="email" type="xsd:string" /> - <xsd:element name="loginID" type="xsd:string" /> - <xsd:element name="password" type="xsd:string" /> - <xsd:element name="id" type="xsd:int" /> - </xsd:sequence> - </xsd:complexType> - - <xsd:element name="getCustomerProfileResponse"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="customerProfile" - type="account:CustomerProfileData" /> - </xsd:sequence> - </xsd:complexType> - </xsd:element> - - <xsd:element name="withdraw"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="accountNumber" - type="xsd:string" /> - <xsd:element name="amount" type="xsd:float" /> - </xsd:sequence> - </xsd:complexType> - </xsd:element> - <xsd:element name="withdrawResponse"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="balance" type="xsd:float" /> - </xsd:sequence> - </xsd:complexType> - </xsd:element> - <!-- @start added fault --> - <xsd:element name="insufficientFundsFault"> - <xsd:complexType name="insufficientFundsFault"> - <xsd:sequence> - <xsd:element name="message" type="xsd:string"/> - </xsd:sequence> - </xsd:complexType> - </xsd:element> - <!-- @end added fault --> - - <xsd:element name="deposit"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="accountNumber" - type="xsd:string" /> - <xsd:element name="amount" type="xsd:float" /> - </xsd:sequence> - </xsd:complexType> - </xsd:element> - <xsd:element name="depositResponse"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="balance" type="xsd:float" /> - </xsd:sequence> - </xsd:complexType> - </xsd:element> - - <xsd:element name="purchaseStock"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="id" type="xsd:int" /> - <xsd:element name="stock" type="account:StockSummary" /> - </xsd:sequence> - </xsd:complexType> - </xsd:element> - - <xsd:element name="purchaseStockResponse"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="purchaseSummary" - type="account:StockSummary" /> - </xsd:sequence> - </xsd:complexType> - </xsd:element> - - - - <xsd:element name="sellStock"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="purchaseLotNumber" - type="xsd:int" /><!-- unique id for this purchase --> - <xsd:element name="quantity" type="xsd:int" /> - </xsd:sequence> - </xsd:complexType> - </xsd:element> - - <xsd:element name="createAccount"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="customerProfile" - type="account:CustomerProfileData" /> - <xsd:element name="createSavings" - type="xsd:boolean" /> - <xsd:element name="createCheckings" - type="xsd:boolean" /> - </xsd:sequence> - </xsd:complexType> - </xsd:element> - <xsd:element name="createAccountResponse"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="customerProfile" - type="account:CustomerProfileData" /> - </xsd:sequence> - </xsd:complexType> - - </xsd:element> - - <xsd:element name="getAccountLog"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="customerID" - type="xsd:int" /> - </xsd:sequence> - </xsd:complexType> - </xsd:element> - <xsd:element name="getAccountLogResponse"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="accountLog" - type="account:AccountLog" /> - </xsd:sequence> - </xsd:complexType> - </xsd:element> - - <xsd:complexType name="AccountLog"> - <xsd:sequence> - <xsd:element name="accountLogEntries" - type="account:AccountLogEntry" maxOccurs="unbounded" /> - <xsd:element name="stockLogEntries" - type="account:StockLogEntry" maxOccurs="unbounded" /> - - </xsd:sequence> - </xsd:complexType> - - <xsd:complexType name="AccountLogEntry"> - <xsd:attribute name="logSeqNo" type="xsd:int" /> - <xsd:attribute name="id" type="xsd:int" /> - <xsd:attribute name="accountNumber" type="xsd:string" /> - <xsd:attribute name="actionType" type="xsd:string" /> - <xsd:attribute name="amount" type="xsd:float" /> - </xsd:complexType> - - <xsd:complexType name="StockLogEntry"> - <xsd:attribute name="logSeqNo" type="xsd:int" /> - <xsd:attribute name="id" type="xsd:int" /> - <xsd:attribute name="symbol" type="xsd:string" /> - <xsd:attribute name="quantity" type="xsd:int" /> - <xsd:attribute name="actionType" type="xsd:string" /> - <xsd:attribute name="purchaseLotNumber" type="xsd:int" /> - </xsd:complexType> - - </xsd:schema> - </wsdl:types> - <wsdl:message name="getAccountReportRequest"> - <wsdl:part element="account:getAccountReport" - name="getAccountReportRequest" /> - </wsdl:message> - <wsdl:message name="getAccountReportResponse"> - <wsdl:part element="account:getAccountReportResponse" - name="getAccountReportResponse" /> - </wsdl:message> - - <wsdl:message name="getCustomerProfileRequest"> - <wsdl:part element="account:getCustomerProfile" - name="getCustomerProfile" /> - </wsdl:message> - <wsdl:message name="getCustomerProfileResponse"> - <wsdl:part element="account:getCustomerProfileResponse" - name="getCustomerProfileResponse" /> - </wsdl:message> - - <wsdl:message name="withdrawRequest"> - <wsdl:part element="account:withdraw" name="withdrawRequest" /> - </wsdl:message> - - <wsdl:message name="withdrawResponse"> - <wsdl:part element="account:withdrawResponse" - name="withdrawResponse" /> - </wsdl:message> - - <!-- @start added fault --> - <wsdl:message name="insufficientFundsFault"> - <wsdl:part element="account:insufficientFundsFault" name="insufficientFundsFault" /> - </wsdl:message> - <!-- @end added fault --> - - <wsdl:message name="depositRequest"> - <wsdl:part element="account:deposit" name="depositRequest" /> - </wsdl:message> - - <wsdl:message name="depositResponse"> - <wsdl:part element="account:depositResponse" - name="depositResponse" /> - </wsdl:message> - - <wsdl:message name="purchaseStockRequest"> - <wsdl:part element="account:purchaseStock" - name="purchaseStockRequest" /> - </wsdl:message> - - <wsdl:message name="purchaseStockResponse"> - <wsdl:part element="account:purchaseStockResponse" - name="purchaseStockResponse" /> - </wsdl:message> - - <wsdl:message name="sellStockRequest"> - <wsdl:part element="account:sellStock" name="sellStockRequest" /> - </wsdl:message> - - <wsdl:message name="createAccountRequest"> - <wsdl:part element="account:createAccount" name="createAccountRequest" /> - </wsdl:message> - - <wsdl:message name="createAccountResponse"> - <wsdl:part element="account:createAccountResponse" name="createAccountResponse" /> - </wsdl:message> - - <wsdl:message name="getAccountLogRequest"> - <wsdl:part element="account:getAccountLog" - name="getAccountLogRequest" /> - </wsdl:message> - - <wsdl:message name="getAccountLogResponse"> - <wsdl:part element="account:getAccountLogResponse" - name="getAccountLogResponse" /> - </wsdl:message> - - <wsdl:portType name="AccountServiceWithFault"> - <wsdl:operation name="getAccountReport"> - <wsdl:input message="account:getAccountReportRequest" /> - <wsdl:output message="account:getAccountReportResponse" /> - </wsdl:operation> - - <wsdl:operation name="getCustomerProfile"> - <wsdl:input message="account:getCustomerProfileRequest" /> - <wsdl:output message="account:getCustomerProfileResponse" /> - </wsdl:operation> - - <wsdl:operation name="withdraw"> - <wsdl:input message="account:withdrawRequest" /> - <wsdl:output message="account:withdrawResponse" /> - <!-- @start added fault --> - <wsdl:fault message="account:insufficientFundsFault" name="insufficientFundsFault"/> - <!-- @end added fault --> - </wsdl:operation> - - <wsdl:operation name="deposit"> - <wsdl:input message="account:depositRequest" /> - <wsdl:output message="account:depositResponse" /> - </wsdl:operation> - - <wsdl:operation name="purchaseStock"> - <wsdl:input message="account:purchaseStockRequest" /> - <wsdl:output message="account:purchaseStockResponse" /> - </wsdl:operation> - - <wsdl:operation name="sellStock"> - <wsdl:input message="account:sellStockRequest" /> - <wsdl:output message="account:purchaseStockResponse" /> - </wsdl:operation> - - - <wsdl:operation name="createAccount"> - <wsdl:input message="account:createAccountRequest" /> - <wsdl:output message="account:createAccountResponse" /> - </wsdl:operation> - - <wsdl:operation name="getAccountLog"> - <wsdl:input message="account:getAccountLogRequest" /> - <wsdl:output message="account:getAccountLogResponse" /> - </wsdl:operation> - - </wsdl:portType> - - - - <wsdl:binding name="AccountServiceWithFaultSOAP" type="account:AccountServiceWithFault"> - <soap:binding style="document" - transport="http://schemas.xmlsoap.org/soap/http" /> - <wsdl:operation name="getAccountReport"> - <soap:operation - soapAction="http://www.bigbank.com/account/getAccountReport" /> - <wsdl:input> - <soap:body use="literal" /> - </wsdl:input> - <wsdl:output> - <soap:body use="literal" /> - </wsdl:output> - </wsdl:operation> - <wsdl:operation name="getCustomerProfile"> - <soap:operation - soapAction="http://www.bigbank.com/account/getCustomerProfile" /> - <wsdl:input> - <soap:body use="literal" /> - </wsdl:input> - <wsdl:output> - <soap:body use="literal" /> - </wsdl:output> - </wsdl:operation> - - <wsdl:operation name="withdraw"> - <soap:operation - soapAction="http://www.bigbank.com/account/withdraw" /> - <wsdl:input> - <soap:body use="literal" /> - </wsdl:input> - <wsdl:output> - <soap:body use="literal" /> - </wsdl:output> - <!-- @start added fault --> - <wsdl:fault name="insufficientFundsFault"> - <soap:fault name="insufficientFundsFault" use="literal"/> - </wsdl:fault> - <!-- @end added fault --> - </wsdl:operation> - - <wsdl:operation name="deposit"> - <soap:operation - soapAction="http://www.bigbank.com/account/deposit" /> - <wsdl:input> - <soap:body use="literal" /> - </wsdl:input> - <wsdl:output> - <soap:body use="literal" /> - </wsdl:output> - </wsdl:operation> - - <wsdl:operation name="purchaseStock"> - <soap:operation - soapAction="http://www.bigbank.com/account/purchaseStock" /> - <wsdl:input> - <soap:body use="literal" /> - </wsdl:input> - <wsdl:output> - <soap:body use="literal" /> - </wsdl:output> - </wsdl:operation> - - <wsdl:operation name="sellStock"> - <soap:operation - soapAction="http://www.bigbank.com/account/sellStock" /> - <wsdl:input> - <soap:body use="literal" /> - </wsdl:input> - <wsdl:output> - <soap:body use="literal" /> - </wsdl:output> - </wsdl:operation> - - <wsdl:operation name="createAccount"> - <soap:operation - soapAction="http://www.bigbank.com/account/createAccount" /> - <wsdl:input> - <soap:body use="literal" /> - </wsdl:input> - <wsdl:output> - <soap:body use="literal" /> - </wsdl:output> - </wsdl:operation> - - <wsdl:operation name="getAccountLog"> - <soap:operation - soapAction="http://www.bigbank.com/account/getAccountLog" /> - <wsdl:input> - <soap:body use="literal" /> - </wsdl:input> - <wsdl:output> - <soap:body use="literal" /> - </wsdl:output> - </wsdl:operation> - - </wsdl:binding> - <wsdl:service name="AccountServiceWithFault"> - <wsdl:port binding="account:AccountServiceWithFaultSOAP" - name="AccountServiceSOAP"> - <soap:address - location="http://localhost:8080/sample-bigbank-account/services/AccountServiceWithFault" /> - </wsdl:port> - </wsdl:service> -</wsdl:definitions> diff --git a/branches/sca-java-1.0.1/modules/wsdl2java/src/test/resources/CreditScoreDocLit.wsdl b/branches/sca-java-1.0.1/modules/wsdl2java/src/test/resources/CreditScoreDocLit.wsdl deleted file mode 100644 index 09d1a58589..0000000000 --- a/branches/sca-java-1.0.1/modules/wsdl2java/src/test/resources/CreditScoreDocLit.wsdl +++ /dev/null @@ -1,76 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (c) 2005 The Apache Software Foundation or its licensors, as applicable.
-
- 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.
- -->
-<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
- xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
- xmlns:tns="http://www.example.org/creditscore/doclit/"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="CreditScore"
- targetNamespace="http://www.example.org/creditscore/doclit/">
- <wsdl:types>
- <xsd:schema
- targetNamespace="http://www.example.org/creditscore/doclit/"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <xsd:element name="getCreditScoreRequest" type="tns:Customer" />
- <xsd:complexType name="Customer">
- <xsd:sequence>
- <xsd:element name="ssn" type="xsd:string" />
- <xsd:element name="firstName" type="xsd:string" />
- <xsd:element name="lastName" type="xsd:string" />
- </xsd:sequence>
- </xsd:complexType>
- <xsd:element name="getCreditScoreResponse" type="tns:CreditReport"/>
- <xsd:complexType name="CreditReport">
- <xsd:sequence>
- <xsd:element name="score" type="xsd:int"/>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:schema>
- </wsdl:types>
- <wsdl:message name="getCreditScoreResponse">
- <wsdl:part element="tns:getCreditScoreResponse"
- name="getCreditScoreResponse" />
- </wsdl:message>
- <wsdl:message name="getCreditScoreRequest">
- <wsdl:part element="tns:getCreditScoreRequest"
- name="getCreditScoreRequest" />
- </wsdl:message>
- <wsdl:portType name="CreditScoreDocLit">
- <wsdl:operation name="getCreditScore">
- <wsdl:input message="tns:getCreditScoreRequest" />
- <wsdl:output message="tns:getCreditScoreResponse" />
- </wsdl:operation>
- </wsdl:portType>
- <wsdl:binding name="CreditScoreDocLitSOAP" type="tns:CreditScoreDocLit">
- <soap:binding style="document"
- transport="http://schemas.xmlsoap.org/soap/http" />
- <wsdl:operation name="getCreditScore">
- <soap:operation
- soapAction="http://www.example.org/creditscore/doclit/getCreditScore" />
- <wsdl:input>
- <soap:body parts="getCreditScoreRequest" use="literal" />
- </wsdl:input>
- <wsdl:output>
- <soap:body parts="getCreditScoreResponse" use="literal" />
- </wsdl:output>
- </wsdl:operation>
- </wsdl:binding>
- <wsdl:service name="CreditScore">
- <wsdl:port binding="tns:CreditScoreDocLitSOAP"
- name="CreditScoreDocLitSOAP">
- <soap:address location="http://www.example.org/" />
- </wsdl:port>
- </wsdl:service>
-</wsdl:definitions>
diff --git a/branches/sca-java-1.0.1/modules/wsdl2java/src/test/resources/helloworld.wsdl b/branches/sca-java-1.0.1/modules/wsdl2java/src/test/resources/helloworld.wsdl deleted file mode 100644 index 051f604bb2..0000000000 --- a/branches/sca-java-1.0.1/modules/wsdl2java/src/test/resources/helloworld.wsdl +++ /dev/null @@ -1,121 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - --> -<wsdl:definitions targetNamespace="http://helloworldaxis.samples.tuscany.apache.org" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://helloworldaxis.samples.tuscany.apache.org" xmlns:intf="http://helloworldaxis.samples.tuscany.apache.org" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="stockquote"> - <!--WSDL created by Apache Axis version: 1.2.1 -Built on Jun 14, 2005 (09:15:57 EDT)--> - <wsdl:types> - <schema elementFormDefault="qualified" - xmlns:hello="http://helloworldaxis.samples.tuscany.apache.org" - xmlns:xsd="http://www.w3.org/2001/XMLSchema" - targetNamespace="http://helloworldaxis.samples.tuscany.apache.org" xmlns="http://www.w3.org/2001/XMLSchema"> - <complexType name="ComplexGreetings"> - <sequence> - <element name="greet1" type="xsd:string"/> - <element name="greet2" type="xsd:double"/> - </sequence> - </complexType> - <element name="getGreetings"> - <complexType> - <sequence> - <element name="in0" type="xsd:string"/> - <element name="in1" type="xsd:double"/> - <element name="in2" type="hello:ComplexGreetings"/> - </sequence> - <xsd:attribute name="language" type="xsd:string"/> - </complexType> - </element> - <element name="getGreetingsResponse"> - <complexType> - <sequence> - <element name="getGreetingsReturn" type="xsd:string"/> - </sequence> - </complexType> - </element> - </schema> - </wsdl:types> - - <wsdl:message name="getGreetingsRequest"> - - <wsdl:part element="impl:getGreetings" name="parameters"/> - - </wsdl:message> - - <wsdl:message name="getGreetingsResponse"> - - <wsdl:part element="impl:getGreetingsResponse" name="parameters"/> - - </wsdl:message> - - <wsdl:portType name="HelloWorldServiceImpl"> - - <wsdl:operation name="getGreetings"> - - <wsdl:input message="impl:getGreetingsRequest" name="getGreetingsRequest"/> - - <wsdl:output message="impl:getGreetingsResponse" name="getGreetingsResponse"/> - - </wsdl:operation> - - </wsdl:portType> - - <wsdl:binding name="helloworldSoapBinding" type="impl:HelloWorldServiceImpl"> - - <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> - - <wsdl:operation name="getGreetings"> - - <wsdlsoap:operation soapAction=""/> - - <wsdl:input name="getGreetingsRequest"> - - <wsdlsoap:body use="literal"/> - - </wsdl:input> - - <wsdl:output name="getGreetingsResponse"> - - <wsdlsoap:body use="literal"/> - - </wsdl:output> - - </wsdl:operation> - - </wsdl:binding> - - <wsdl:service name="HelloWorldServiceImplService"> - - <wsdl:port binding="impl:helloworldSoapBinding" name="helloworld"> - - <!-- Tuscany SCA Service --> -<!-- - <wsdlsoap:address location="http://localhost:8080/tuscany-samples-helloworldws-service/services/HelloWorldService"/> ---> - <wsdlsoap:address location="http://localhost:9876/tuscany-samples-helloworldws-service/services/HelloWorldService"/> - - <!-- Axis Web Service --> - <!-- - <wsdlsoap:address location="http://localhost:8081/helloworldaxissvc-incubating-M1/services/helloworld"/> - --> - - </wsdl:port> - - </wsdl:service> - -</wsdl:definitions> diff --git a/branches/sca-java-1.0.1/modules/wsdl2java/src/test/resources/interopdoc.wsdl b/branches/sca-java-1.0.1/modules/wsdl2java/src/test/resources/interopdoc.wsdl deleted file mode 100644 index 820c26ca34..0000000000 --- a/branches/sca-java-1.0.1/modules/wsdl2java/src/test/resources/interopdoc.wsdl +++ /dev/null @@ -1,180 +0,0 @@ -<?xml version="1.0"?> -<!-- - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - --> -<definitions name="InteropTestDoc" targetNamespace="http://soapinterop.org/" - xmlns="http://schemas.xmlsoap.org/wsdl/" - xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" - xmlns:xsd="http://www.w3.org/2001/XMLSchema" - xmlns:tns="http://soapinterop.org/" - xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> - - <types> - - <xsd:schema elementFormDefault="qualified" targetNamespace="http://soapinterop.org/" xmlns:interop="http://soapinterop.org/"> - - <xsd:element name="SingleTag"> - <xsd:complexType> - <xsd:sequence> - <xsd:element minOccurs="0" maxOccurs="1" name="SingleTag" type="interop:SingleTag"/> - </xsd:sequence> - </xsd:complexType> - </xsd:element> - - <xsd:complexType name="SingleTag"/> - <xsd:element name="SingleTagResponse"> - <xsd:complexType> - <xsd:sequence> - <xsd:element minOccurs="0" maxOccurs="1" name="SingleTag" type="interop:SingleTag"/> - </xsd:sequence> - </xsd:complexType> - </xsd:element> - <xsd:element name="SimpleDocument"> - <xsd:complexType> - <xsd:sequence> - <xsd:element minOccurs="0" maxOccurs="1" name="SimpleDocument" type="interop:SimpleDocument"/> - </xsd:sequence> - </xsd:complexType> - </xsd:element> - <xsd:complexType name="SimpleDocument"> - <xsd:simpleContent> - <xsd:extension base="xsd:string"/> - </xsd:simpleContent> - </xsd:complexType> - <xsd:element name="SimpleDocumentResponse"> - <xsd:complexType> - <xsd:sequence> - <xsd:element minOccurs="0" maxOccurs="1" name="SimpleDocument" type="interop:SimpleDocument"/> - </xsd:sequence> - </xsd:complexType> - </xsd:element> - <xsd:element name="ComplexDocument"> - <xsd:complexType> - <xsd:sequence> - <xsd:element minOccurs="0" maxOccurs="1" name="ComplexDocument" type="interop:ComplexDocument"/> - </xsd:sequence> - </xsd:complexType> - </xsd:element> - <xsd:complexType name="ComplexDocument"> - <xsd:sequence> - <xsd:element minOccurs="0" maxOccurs="1" name="simpleDoc" type="interop:ArrayOfSimpleDocument"/> - <xsd:element minOccurs="0" maxOccurs="1" name="child" type="interop:ChildDocument"/> - </xsd:sequence> - <xsd:attribute name="AnAttribute" type="xsd:string"/> - </xsd:complexType> - <xsd:complexType name="ArrayOfSimpleDocument"> - <xsd:sequence> - <xsd:element minOccurs="0" maxOccurs="unbounded" name="SimpleDocument" nillable="true" type="interop:SimpleDocument"/> - </xsd:sequence> - </xsd:complexType> - <xsd:complexType name="ChildDocument"> - <xsd:sequence> - <xsd:element minOccurs="0" maxOccurs="1" name="childSimpleDoc" type="interop:ArrayOfSimpleDocument"/> - </xsd:sequence> - </xsd:complexType> - <xsd:element name="ComplexDocumentResponse"> - <xsd:complexType> - <xsd:sequence> - <xsd:element minOccurs="0" maxOccurs="1" name="ComplexDocument" type="interop:ComplexDocument"/> - </xsd:sequence> - </xsd:complexType> - </xsd:element> - - </xsd:schema> - - </types> - - <message name="SingleTagSoapIn"> - <part name="parameters" element="tns:SingleTag"/> - </message> - <message name="SingleTagSoapOut"> - <part name="outputDoc" element="tns:SingleTagResponse"/> - </message> - <message name="SimpleDocumentSoapIn"> - <part name="parameters" element="tns:SimpleDocument"/> - </message> - <message name="SimpleDocumentSoapOut"> - <part name="outputDoc" element="tns:SimpleDocumentResponse"/> - </message> - <message name="ComplexDocumentSoapIn"> - <part name="parameters" element="tns:ComplexDocument"/> - </message> - <message name="ComplexDocumentSoapOut"> - <part name="outputDoc" element="tns:ComplexDocumentResponse"/> - </message> - - <portType name="DocTestPortType"> - - <operation name="SingleTag"> - <input message="tns:SingleTagSoapIn"/> - <output message="tns:SingleTagSoapOut"/> - </operation> - <operation name="SimpleDocument"> - <input message="tns:SimpleDocumentSoapIn"/> - <output message="tns:SimpleDocumentSoapOut"/> - </operation> - <operation name="ComplexDocument"> - <input message="tns:ComplexDocumentSoapIn"/> - <output message="tns:ComplexDocumentSoapOut"/> - </operation> - - </portType> - - <binding name="doc_test_binding" type="tns:DocTestPortType"> - <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> - - <operation name="SingleTag"> - <soap:operation soapAction="http://soapinterop.org/SingleTag"/> - <input> - <soap:body use="literal"/> - </input> - <output> - <soap:body use="literal"/> - </output> - </operation> - - <operation name="SimpleDocument"> - <soap:operation soapAction="http://soapinterop.org/SimpleDocument"/> - <input> - <soap:body use="literal"/> - </input> - <output> - <soap:body use="literal"/> - </output> - </operation> - - <operation name="ComplexDocument"> - <soap:operation soapAction="http://soapinterop.org/ComplexDocument"/> - <input> - <soap:body use="literal"/> - </input> - <output> - <soap:body use="literal"/> - </output> - </operation> - </binding> - - <service name="interopDocSvc"> - - <port name="interopDocPort" binding="tns:doc_test_binding"> - <soap:address location="http://www.whitemesa.net/interopdoc"/> - </port> - - </service> - -</definitions> diff --git a/branches/sca-java-1.0.1/modules/wsdl2java/src/test/resources/sequences.xsd b/branches/sca-java-1.0.1/modules/wsdl2java/src/test/resources/sequences.xsd deleted file mode 100644 index a565f3fa65..0000000000 --- a/branches/sca-java-1.0.1/modules/wsdl2java/src/test/resources/sequences.xsd +++ /dev/null @@ -1,100 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - --> -<xsd:schema xmlns:seq="http://www.example.com/sequences" - xmlns:xsd="http://www.w3.org/2001/XMLSchema" - targetNamespace="http://www.example.com/sequences"> - - <xsd:element name="mixedStockQuote" type="seq:MixedQuote" /> - <xsd:element name="rc" type="seq:RepeatingChoice" /> - <xsd:element name="mrc" type="seq:MixedRepeatingChoice" /> - <xsd:element name="rc2" type="seq:TwoRCs" /> - <xsd:element name="mrc2" type="seq:TwoRCsMixed" /> - - - - <xsd:complexType mixed="true" name="MixedQuote"> - <xsd:sequence> - <xsd:element name="symbol" type="xsd:string" /> - <xsd:element name="companyName" type="xsd:string" /> - <xsd:element name="price" type="xsd:decimal" /> - <xsd:element name="open1" type="xsd:decimal" /> - <xsd:element name="high" type="xsd:decimal" /> - <xsd:element name="low" type="xsd:decimal" /> - <xsd:element name="volume" type="xsd:double" /> - <xsd:element name="change1" type="xsd:double" /> - <xsd:element maxOccurs="unbounded" minOccurs="0" - name="quotes" type="seq:MixedQuote" /> - </xsd:sequence> - </xsd:complexType> - - - <xsd:complexType name="RepeatingChoice"> - <xsd:choice maxOccurs="unbounded" minOccurs="0"> - <xsd:element name="a" type="xsd:string" /> - <xsd:element name="b" type="xsd:int" /> - </xsd:choice> - </xsd:complexType> - - - <xsd:complexType mixed="true" name="MixedRepeatingChoice"> - <xsd:choice maxOccurs="unbounded" minOccurs="0"> - <xsd:element name="a" type="xsd:string" /> - <xsd:element name="b" type="xsd:int" /> - </xsd:choice> - </xsd:complexType> - - - <xsd:complexType name="TwoRCs"> - <xsd:sequence> - - <xsd:choice maxOccurs="unbounded" minOccurs="0"> - <xsd:element name="a" type="xsd:string" /> - <xsd:element name="b" type="xsd:int" /> - </xsd:choice> - - <xsd:element name="split" type="xsd:string" /> - - <xsd:choice maxOccurs="unbounded" minOccurs="0"> - <xsd:element name="y" type="xsd:string" /> - <xsd:element name="z" type="xsd:int" /> - </xsd:choice> - - </xsd:sequence> - </xsd:complexType> - - <xsd:complexType mixed="true" name="TwoRCsMixed"> - <xsd:sequence> - - <xsd:choice maxOccurs="unbounded" minOccurs="0"> - <xsd:element name="a" type="xsd:string" /> - <xsd:element name="b" type="xsd:int" /> - </xsd:choice> - - <xsd:element name="split" type="xsd:string" /> - - <xsd:choice maxOccurs="unbounded" minOccurs="0"> - <xsd:element name="y" type="xsd:string" /> - <xsd:element name="z" type="xsd:int" /> - </xsd:choice> - - </xsd:sequence> - </xsd:complexType> - -</xsd:schema> |