| /* |
| * Copyright (c) 2011, 2020 Oracle and/or its affiliates. All rights reserved. |
| * |
| * This program and the accompanying materials are made available under the |
| * terms of the Eclipse Public License v. 2.0 which is available at |
| * http://www.eclipse.org/legal/epl-2.0, |
| * or the Eclipse Distribution License v. 1.0 which is available at |
| * http://www.eclipse.org/org/documents/edl-v10.php. |
| * |
| * SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause |
| */ |
| |
| // Contributors: |
| // David McCann - June 2013 - Initial Implementation |
| package dbws.testing.namingtransformer; |
| |
| //javase imports |
| import java.io.StringReader; |
| import java.lang.reflect.Field; |
| import java.sql.SQLException; |
| import java.sql.Statement; |
| import org.w3c.dom.Document; |
| |
| //java eXtension imports |
| import javax.wsdl.WSDLException; |
| |
| //JUnit4 imports |
| import org.junit.AfterClass; |
| import org.junit.BeforeClass; |
| import org.junit.Test; |
| import static org.junit.Assert.assertNotNull; |
| import static org.junit.Assert.assertTrue; |
| |
| //EclipseLink imports |
| import org.eclipse.persistence.internal.descriptors.TransformerBasedFieldTransformation; |
| import org.eclipse.persistence.internal.sessions.factories.ObjectPersistenceWorkbenchXMLProject; |
| import org.eclipse.persistence.internal.xr.Invocation; |
| import org.eclipse.persistence.internal.xr.Operation; |
| import org.eclipse.persistence.mappings.transformers.ConstantTransformer; |
| import org.eclipse.persistence.oxm.XMLMarshaller; |
| import org.eclipse.persistence.oxm.mappings.XMLTransformationMapping; |
| import org.eclipse.persistence.sessions.Project; |
| import org.eclipse.persistence.tools.dbws.BaseDBWSBuilderHelper; |
| import org.eclipse.persistence.tools.dbws.DBWSBuilder; |
| import org.eclipse.persistence.tools.dbws.DefaultNamingConventionTransformer; |
| import org.eclipse.persistence.tools.dbws.oracle.OracleHelper; |
| |
| //test imports |
| import dbws.testing.DBWSTestSuite; |
| |
| /** |
| * Test use of a custom naming convention transformer. |
| * |
| */ |
| public class NamingTransformerTestSuite extends DBWSTestSuite { |
| |
| static final String CREATE_TABLETYPE_TABLE = |
| "CREATE TABLE TABLETYPE (" + |
| "\nID NUMERIC(4) NOT NULL," + |
| "\nNAME VARCHAR(25)," + |
| "\nDEPTNO DECIMAL(2,0)," + |
| "\nDEPTNAME VARCHAR2(40)," + |
| "\nSECTION CHAR(1)," + |
| "\nSAL FLOAT," + |
| "\nCOMMISSION REAL," + |
| "\nSALES DOUBLE PRECISION," + |
| "\nBINID BLOB," + |
| "\nB BLOB," + |
| "\nC CLOB," + |
| "\nR RAW(3)," + |
| "\nPRIMARY KEY (ID)" + |
| "\n)"; |
| static final String[] POPULATE_TABLETYPE_TABLE = new String[] { |
| "INSERT INTO TABLETYPE (ID, NAME, DEPTNO, DEPTNAME, SECTION, SAL, COMMISSION, SALES, BINID, B, C, R) VALUES (1, 'mike', 99, 'sales', 'a', 100000.80, 450.80, 10000.80, '1010', '010101010101010101010101010101', 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', '010101')", |
| "INSERT INTO TABLETYPE (ID, NAME, DEPTNO, DEPTNAME, SECTION, SAL, COMMISSION, SALES, BINID, B, C, R) VALUES (2, 'merrick', 98, 'delivery', 'f', 20000, 0, 0, '0101', '020202020202020202020202020202', 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb', '020202')", |
| "INSERT INTO TABLETYPE (ID, NAME, DEPTNO, DEPTNAME, SECTION, SAL, COMMISSION, SALES, BINID, B, C, R) VALUES (3, 'rick', 99, 'sales', 'b', 98000.20, 150.20, 2000.20, '1110', '030303030303030303030303030303', 'cccccccccccccccccccccccccccccc', '030303')" |
| }; |
| static final String DROP_TABLETYPE_TABLE = |
| "DROP TABLE TABLETYPE"; |
| |
| static final String CREATE_MYTYPEX = |
| "CREATE OR REPLACE TYPE MYTYPE_X AS OBJECT (" + |
| "\nid NUMBER," + |
| "\nname VARCHAR2(30)" + |
| "\n)"; |
| static final String CREATE_GETMYTYPEX_PROC = |
| "CREATE OR REPLACE PROCEDURE GetMyTypeX(RESULT OUT MYTYPE_X) AS" + |
| "\nBEGIN" + |
| "\nRESULT := MYTYPE_X(66, 'Steve French');" + |
| "\nEND GetMyTypeX;"; |
| static final String DROP_GETMYTYPEX_PROC = |
| "DROP PROCEDURE GetMyTypeX"; |
| static final String DROP_MYTYPEX = |
| "DROP TYPE MYTYPE_X"; |
| |
| static boolean ddlCreate = false; |
| static boolean ddlDrop = false; |
| static boolean ddlDebug = false; |
| |
| @BeforeClass |
| public static void setUp() throws WSDLException, SecurityException, NoSuchFieldException, |
| IllegalArgumentException, IllegalAccessException { |
| if (conn == null) { |
| try { |
| conn = buildConnection(); |
| } |
| catch (Exception e) { |
| e.printStackTrace(); |
| } |
| } |
| String ddlCreateProp = System.getProperty(DATABASE_DDL_CREATE_KEY, DEFAULT_DATABASE_DDL_CREATE); |
| if ("true".equalsIgnoreCase(ddlCreateProp)) { |
| ddlCreate = true; |
| } |
| String ddlDropProp = System.getProperty(DATABASE_DDL_DROP_KEY, DEFAULT_DATABASE_DDL_DROP); |
| if ("true".equalsIgnoreCase(ddlDropProp)) { |
| ddlDrop = true; |
| } |
| String ddlDebugProp = System.getProperty(DATABASE_DDL_DEBUG_KEY, DEFAULT_DATABASE_DDL_DEBUG); |
| if ("true".equalsIgnoreCase(ddlDebugProp)) { |
| ddlDebug = true; |
| } |
| if (ddlCreate) { |
| runDdl(conn, CREATE_TABLETYPE_TABLE, ddlDebug); |
| try { |
| Statement stmt = conn.createStatement(); |
| for (int i = 0; i < POPULATE_TABLETYPE_TABLE.length; i++) { |
| stmt.addBatch(POPULATE_TABLETYPE_TABLE[i]); |
| } |
| stmt.executeBatch(); |
| } |
| catch (SQLException e) { |
| //e.printStackTrace(); |
| } |
| runDdl(conn, CREATE_MYTYPEX, ddlDebug); |
| runDdl(conn, CREATE_GETMYTYPEX_PROC, ddlDebug); |
| } |
| DBWS_BUILDER_XML_USERNAME = |
| "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + |
| "<dbws-builder xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">" + |
| "<properties>" + |
| "<property name=\"projectName\">tabletype</property>" + |
| "<property name=\"logLevel\">off</property>" + |
| "<property name=\"username\">"; |
| DBWS_BUILDER_XML_PASSWORD = |
| "</property><property name=\"password\">"; |
| DBWS_BUILDER_XML_URL = |
| "</property><property name=\"url\">"; |
| DBWS_BUILDER_XML_DRIVER = |
| "</property><property name=\"driver\">"; |
| DBWS_BUILDER_XML_PLATFORM = |
| "</property><property name=\"platformClassname\">"; |
| DBWS_BUILDER_XML_MAIN = |
| "</property>" + |
| "</properties>" + |
| "<table " + |
| "schemaPattern=\"%\" " + |
| "tableNamePattern=\"TABLETYPE\" " + |
| "/>" + |
| "<procedure " + |
| "name=\"GetMyTypeXTest\" " + |
| "catalogPattern=\"TOPLEVEL\" " + |
| "procedurePattern=\"GetMyTypeX\" " + |
| "isAdvancedJDBC=\"true\" " + |
| "/>" + |
| "</dbws-builder>"; |
| builder = new DBWSBuilder(); |
| builder.setTopNamingConventionTransformer(new DBWSNamingConventionTransformer()); |
| OracleHelper builderHelper = new OracleHelper(builder); |
| builder.setBuilderHelper(builderHelper); |
| Field workbenchProj_field = BaseDBWSBuilderHelper.class.getDeclaredField("workbenchXMLProject"); |
| workbenchProj_field.setAccessible(true); |
| ObjectPersistenceWorkbenchXMLProject workbenchXMLProject = |
| (ObjectPersistenceWorkbenchXMLProject)workbenchProj_field.get(builderHelper); |
| XMLTransformationMapping versionMapping = |
| (XMLTransformationMapping)workbenchXMLProject.getDescriptor(Project.class). |
| getMappings().get(0); |
| TransformerBasedFieldTransformation versionTransformer = |
| (TransformerBasedFieldTransformation)versionMapping.getFieldTransformations().get(0); |
| Field transformerField = |
| TransformerBasedFieldTransformation.class.getDeclaredField("transformer"); |
| transformerField.setAccessible(true); |
| ConstantTransformer constantTransformer = |
| (ConstantTransformer)transformerField.get(versionTransformer); |
| constantTransformer.setValue("Eclipse Persistence Services - " + releaseVersion); |
| DBWSTestSuite.setUp("."); |
| } |
| |
| @AfterClass |
| public static void tearDown() { |
| if (ddlDrop) { |
| runDdl(conn, DROP_TABLETYPE_TABLE, ddlDebug); |
| runDdl(conn, DROP_GETMYTYPEX_PROC, ddlDebug); |
| runDdl(conn, DROP_MYTYPEX, ddlDebug); |
| } |
| } |
| |
| @Test |
| public void testNamingConventionTransformer() throws WSDLException { |
| Invocation invocation = new Invocation("findByPrimaryKey_TabletypeType"); |
| invocation.setParameter("id", 3); |
| Operation op = xrService.getOperation(invocation.getName()); |
| Object result = op.invoke(xrService, invocation); |
| assertNotNull("result is null", result); |
| Document doc = xmlPlatform.createDocument(); |
| XMLMarshaller marshaller = xrService.getXMLContext().createMarshaller(); |
| marshaller.marshal(result, doc); |
| removeEmptyTextNodes(doc); |
| Document controlDoc = xmlParser.parse(new StringReader(ANOTHER_PERSON_XML)); |
| removeEmptyTextNodes(controlDoc); |
| assertTrue("Control document not same as instance document. Expected:\n" + documentToString(controlDoc) + "\nActual:\n" + documentToString(doc), comparer.isNodeEqual(controlDoc, doc)); |
| } |
| |
| public static final String ANOTHER_PERSON_XML = |
| REGULAR_XML_HEADER + |
| "<TABLETYPExTYPE xmlns=\"urn:tabletype\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" id=\"3\">" + |
| "<name>rick</name>" + |
| "</TABLETYPExTYPE>"; |
| |
| @Test |
| public void testTransformerOnObject() throws WSDLException { |
| Invocation invocation = new Invocation("GetMyTypeXTest"); |
| Operation op = xrService.getOperation(invocation.getName()); |
| Object result = op.invoke(xrService, invocation); |
| assertNotNull("result is null", result); |
| Document doc = xmlPlatform.createDocument(); |
| XMLMarshaller marshaller = xrService.getXMLContext().createMarshaller(); |
| marshaller.marshal(result, doc); |
| Document controlDoc = xmlParser.parse(new StringReader(MYTYPEX_XML)); |
| assertTrue("Control document not same as instance document. Expected:\n" + documentToString(controlDoc) + "\nActual:\n" + documentToString(doc), comparer.isNodeEqual(controlDoc, doc)); |
| } |
| |
| public static final String MYTYPEX_XML = |
| REGULAR_XML_HEADER + |
| "<MYTYPE_XxTYPE xmlns=\"urn:tabletype\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" id=\"66\">" + |
| "<name>Steve French</name>" + |
| "</MYTYPE_XxTYPE>"; |
| |
| /** |
| * Inner class used for testing NamingConventionTransformer |
| * |
| */ |
| static class DBWSNamingConventionTransformer extends DefaultNamingConventionTransformer { |
| |
| @Override |
| public String generateSchemaAlias(String tableName) { |
| return super.generateSchemaAlias(tableName +"xTYPE"); |
| } |
| |
| @Override |
| public String generateElementAlias(String originalElementName) { |
| return super.generateElementAlias(originalElementName.toLowerCase()); |
| } |
| |
| @Override |
| public ElementStyle styleForElement(String elementName) { |
| if ("id".equalsIgnoreCase(elementName)) { |
| return ElementStyle.ATTRIBUTE; |
| } |
| if ("deptno".equalsIgnoreCase(elementName) || |
| "deptname".equalsIgnoreCase(elementName) || |
| "section".equalsIgnoreCase(elementName) || |
| "sal".equalsIgnoreCase(elementName) || |
| "commission".equalsIgnoreCase(elementName) || |
| "sales".equalsIgnoreCase(elementName) || |
| "binid".equalsIgnoreCase(elementName) || |
| "b".equalsIgnoreCase(elementName) || |
| "c".equalsIgnoreCase(elementName) || |
| "r".equalsIgnoreCase(elementName)) { |
| return ElementStyle.NONE; |
| } |
| return ElementStyle.ELEMENT; |
| } |
| } |
| |
| @Test |
| public void validateSchema() { |
| Document testDoc = xmlParser.parse(new StringReader(DBWS_SCHEMA_STREAM.toString())); |
| Document controlDoc = xmlParser.parse(new StringReader(XSD)); |
| removeEmptyTextNodes(testDoc); |
| removeEmptyTextNodes(controlDoc); |
| assertTrue("Schema validation failed:\nExpected:" + documentToString(controlDoc) + "\nbut was:\n" + documentToString(testDoc), comparer.isNodeEqual(controlDoc, testDoc)); |
| } |
| |
| protected static final String XSD = |
| "<?xml version = \"1.0\" encoding = \"UTF-8\"?>" + |
| "<xsd:schema xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" targetNamespace=\"urn:tabletype\" xmlns=\"urn:tabletype\" elementFormDefault=\"qualified\">" + |
| " <xsd:complexType name=\"MYTYPE_XxTYPE\">" + |
| " <xsd:sequence>" + |
| " <xsd:element name=\"name\" type=\"xsd:string\" minOccurs=\"0\" nillable=\"true\"/>" + |
| " </xsd:sequence>" + |
| " <xsd:attribute name=\"id\" type=\"xsd:decimal\"/>" + |
| " </xsd:complexType>" + |
| " <xsd:complexType name=\"TABLETYPExTYPE\">" + |
| " <xsd:sequence>" + |
| " <xsd:element name=\"name\" type=\"xsd:string\" minOccurs=\"0\" nillable=\"true\"/>" + |
| " </xsd:sequence>" + |
| " <xsd:attribute name=\"id\" type=\"xsd:decimal\" use=\"required\"/>" + |
| " </xsd:complexType>" + |
| " <xsd:element name=\"MYTYPE_XxTYPE\" type=\"MYTYPE_XxTYPE\"/>" + |
| " <xsd:element name=\"TABLETYPExTYPE\" type=\"TABLETYPExTYPE\"/>" + |
| "</xsd:schema>"; |
| |
| @Test |
| public void validateWSDL() { |
| Document testDoc = xmlParser.parse(new StringReader(DBWS_WSDL_STREAM.toString())); |
| Document controlDoc = xmlParser.parse(new StringReader(WSDL)); |
| removeEmptyTextNodes(testDoc); |
| removeEmptyTextNodes(controlDoc); |
| assertTrue("WSDL validation failed:\nExpected:" + documentToString(controlDoc) + "\nbut was:\n" + documentToString(testDoc), comparer.isNodeEqual(controlDoc, testDoc)); |
| } |
| |
| protected static final String WSDL = |
| "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + |
| "<wsdl:definitions\n" + |
| "name=\"tabletypeService\"\n" + |
| "targetNamespace=\"urn:tabletypeService\"\n" + |
| "xmlns:ns1=\"urn:tabletype\"\n" + |
| "xmlns:wsdl=\"http://schemas.xmlsoap.org/wsdl/\"\n" + |
| "xmlns:tns=\"urn:tabletypeService\"\n" + |
| "xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"\n" + |
| "xmlns:soap=\"http://schemas.xmlsoap.org/wsdl/soap/\"\n" + |
| ">\n" + |
| "<wsdl:types>\n" + |
| "<xsd:schema elementFormDefault=\"qualified\" targetNamespace=\"urn:tabletypeService\" xmlns:tns=\"urn:tabletypeService\"\n" + |
| "xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">\n" + |
| "<xsd:import namespace=\"urn:tabletype\" schemaLocation=\"eclipselink-dbws-schema.xsd\"/>\n" + |
| "<xsd:complexType name=\"findAll_TabletypeTypeRequestType\"/>\n" + |
| "<xsd:complexType name=\"update_TabletypeTypeRequestType\">\n" + |
| "<xsd:sequence>\n" + |
| "<xsd:element name=\"theInstance\">\n" + |
| "<xsd:complexType>\n" + |
| "<xsd:sequence>\n" + |
| "<xsd:element ref=\"ns1:TABLETYPExTYPE\"/>\n" + |
| "</xsd:sequence>\n" + |
| "</xsd:complexType>\n" + |
| "</xsd:element>\n" + |
| "</xsd:sequence>\n" + |
| "</xsd:complexType>\n" + |
| "<xsd:complexType name=\"findAll_TabletypeTypeResponseType\">\n" + |
| "<xsd:sequence>\n" + |
| "<xsd:element name=\"result\">\n" + |
| "<xsd:complexType>\n" + |
| "<xsd:sequence>\n" + |
| "<xsd:element maxOccurs=\"unbounded\" minOccurs=\"0\" ref=\"ns1:TABLETYPExTYPE\"/>\n" + |
| "</xsd:sequence>\n" + |
| "</xsd:complexType>\n" + |
| "</xsd:element>\n" + |
| "</xsd:sequence>\n" + |
| "</xsd:complexType>\n" + |
| "<xsd:complexType name=\"delete_TabletypeTypeRequestType\">\n" + |
| "<xsd:sequence>\n" + |
| "<xsd:element name=\"id\" type=\"xsd:decimal\"/>\n" + |
| "</xsd:sequence>\n" + |
| "</xsd:complexType>\n" + |
| "<xsd:complexType name=\"findByPrimaryKey_TabletypeTypeResponseType\">\n" + |
| "<xsd:sequence>\n" + |
| "<xsd:element name=\"result\">\n" + |
| "<xsd:complexType>\n" + |
| "<xsd:sequence>\n" + |
| "<xsd:element minOccurs=\"0\" ref=\"ns1:TABLETYPExTYPE\"/>\n" + |
| "</xsd:sequence>\n" + |
| "</xsd:complexType>\n" + |
| "</xsd:element>\n" + |
| "</xsd:sequence>\n" + |
| "</xsd:complexType>\n" + |
| "<xsd:complexType name=\"findByPrimaryKey_TabletypeTypeRequestType\">\n" + |
| "<xsd:sequence>\n" + |
| "<xsd:element name=\"id\" type=\"xsd:decimal\"/>\n" + |
| "</xsd:sequence>\n" + |
| "</xsd:complexType>\n" + |
| "<xsd:complexType name=\"create_TabletypeTypeRequestType\">\n" + |
| "<xsd:sequence>\n" + |
| "<xsd:element name=\"theInstance\">\n" + |
| "<xsd:complexType>\n" + |
| "<xsd:sequence>\n" + |
| "<xsd:element ref=\"ns1:TABLETYPExTYPE\"/>\n" + |
| "</xsd:sequence>\n" + |
| "</xsd:complexType>\n" + |
| "</xsd:element>\n" + |
| "</xsd:sequence>\n" + |
| "</xsd:complexType>\n" + |
| "<xsd:complexType name=\"GetMyTypeXTestResponseType\">\n" + |
| "<xsd:sequence>\n" + |
| "<xsd:element name=\"result\">\n" + |
| "<xsd:complexType>\n" + |
| "<xsd:sequence>\n" + |
| "<xsd:element ref=\"ns1:MYTYPE_XxTYPE\" minOccurs=\"0\"/>\n" + |
| "</xsd:sequence>\n" + |
| "</xsd:complexType>\n" + |
| "</xsd:element>\n" + |
| "</xsd:sequence>\n" + |
| "</xsd:complexType>\n" + |
| "<xsd:complexType name=\"GetMyTypeXTestRequestType\"/>\n" + |
| "<xsd:element name=\"update_TabletypeType\" type=\"tns:update_TabletypeTypeRequestType\"/>\n" + |
| "<xsd:element name=\"findAll_TabletypeTypeResponse\" type=\"tns:findAll_TabletypeTypeResponseType\"/>\n" + |
| "<xsd:element name=\"findByPrimaryKey_TabletypeType\" type=\"tns:findByPrimaryKey_TabletypeTypeRequestType\"/>\n" + |
| "<xsd:element name=\"create_TabletypeType\" type=\"tns:create_TabletypeTypeRequestType\"/>\n" + |
| "<xsd:element name=\"findAll_TabletypeType\" type=\"tns:findAll_TabletypeTypeRequestType\"/>\n" + |
| "<xsd:element name=\"findByPrimaryKey_TabletypeTypeResponse\" type=\"tns:findByPrimaryKey_TabletypeTypeResponseType\"/>\n" + |
| "<xsd:element name=\"FaultType\">\n" + |
| "<xsd:complexType>\n" + |
| "<xsd:sequence>\n" + |
| "<xsd:element name=\"faultCode\" type=\"xsd:string\"/>\n" + |
| "<xsd:element name=\"faultString\" type=\"xsd:string\"/>\n" + |
| "</xsd:sequence>\n" + |
| "</xsd:complexType>\n" + |
| "</xsd:element>\n" + |
| "<xsd:element name=\"EmptyResponse\">\n" + |
| "<xsd:complexType/>\n" + |
| "</xsd:element>\n" + |
| "<xsd:element name=\"delete_TabletypeType\" type=\"tns:delete_TabletypeTypeRequestType\"/>\n" + |
| "<xsd:element name=\"GetMyTypeXTestResponse\" type=\"tns:GetMyTypeXTestResponseType\"/>\n" + |
| "<xsd:element name=\"GetMyTypeXTest\" type=\"tns:GetMyTypeXTestRequestType\"/>\n" + |
| "</xsd:schema>\n" + |
| "</wsdl:types>\n" + |
| "<wsdl:message name=\"update_TabletypeTypeRequest\">\n" + |
| "<wsdl:part name=\"update_TabletypeTypeRequest\" element=\"tns:update_TabletypeType\">\n" +"</wsdl:part>\n" + |
| "</wsdl:message>\n" + |
| "<wsdl:message name=\"findByPrimaryKey_TabletypeTypeRequest\">\n" + |
| "<wsdl:part name=\"findByPrimaryKey_TabletypeTypeRequest\" element=\"tns:findByPrimaryKey_TabletypeType\">\n" +"</wsdl:part>\n" + |
| "</wsdl:message>\n" + |
| "<wsdl:message name=\"create_TabletypeTypeRequest\">\n" + |
| "<wsdl:part name=\"create_TabletypeTypeRequest\" element=\"tns:create_TabletypeType\">\n" +"</wsdl:part>\n" + |
| "</wsdl:message>\n" + |
| "<wsdl:message name=\"findAll_TabletypeTypeResponse\">\n" + |
| "<wsdl:part name=\"findAll_TabletypeTypeResponse\" element=\"tns:findAll_TabletypeTypeResponse\">\n" +"</wsdl:part>\n" + |
| "</wsdl:message>\n" + |
| "<wsdl:message name=\"FaultType\">\n" + |
| "<wsdl:part name=\"fault\" element=\"tns:FaultType\">\n" +"</wsdl:part>\n" + |
| "</wsdl:message>\n" + |
| "<wsdl:message name=\"findByPrimaryKey_TabletypeTypeResponse\">\n" + |
| "<wsdl:part name=\"findByPrimaryKey_TabletypeTypeResponse\" element=\"tns:findByPrimaryKey_TabletypeTypeResponse\">\n" +"</wsdl:part>\n" + |
| "</wsdl:message>\n" + |
| "<wsdl:message name=\"EmptyResponse\">\n" + |
| "<wsdl:part name=\"emptyResponse\" element=\"tns:EmptyResponse\">\n" +"</wsdl:part>\n" + |
| "</wsdl:message>\n" + |
| "<wsdl:message name=\"findAll_TabletypeTypeRequest\">\n" + |
| "<wsdl:part name=\"findAll_TabletypeTypeRequest\" element=\"tns:findAll_TabletypeType\">\n" +"</wsdl:part>\n" + |
| "</wsdl:message>\n" + |
| "<wsdl:message name=\"delete_TabletypeTypeRequest\">\n" + |
| "<wsdl:part name=\"delete_TabletypeTypeRequest\" element=\"tns:delete_TabletypeType\">\n" +"</wsdl:part>\n" + |
| "</wsdl:message>\n" + |
| "<wsdl:message name=\"GetMyTypeXTestRequest\">\n" + |
| "<wsdl:part name=\"GetMyTypeXTestRequest\" element=\"tns:GetMyTypeXTest\"/>\n" + |
| "</wsdl:message>\n" + |
| "<wsdl:message name=\"GetMyTypeXTestResponse\">\n" + |
| "<wsdl:part name=\"GetMyTypeXTestResponse\" element=\"tns:GetMyTypeXTestResponse\"/>\n" + |
| "</wsdl:message>\n" + |
| "<wsdl:portType name=\"tabletypeService_Interface\">\n" + |
| "<wsdl:operation name=\"update_TabletypeType\">\n" + |
| "<wsdl:input message=\"tns:update_TabletypeTypeRequest\">\n" +"</wsdl:input>\n" + |
| "<wsdl:output name=\"update_TabletypeTypeEmptyResponse\" message=\"tns:EmptyResponse\">\n" +"</wsdl:output>\n" + |
| "<wsdl:fault name=\"FaultException\" message=\"tns:FaultType\">\n" +"</wsdl:fault>\n" + |
| "</wsdl:operation>\n" + |
| "<wsdl:operation name=\"create_TabletypeType\">\n" + |
| "<wsdl:input message=\"tns:create_TabletypeTypeRequest\">\n" +"</wsdl:input>\n" + |
| "<wsdl:output name=\"create_TabletypeTypeEmptyResponse\" message=\"tns:EmptyResponse\">\n" +"</wsdl:output>\n" + |
| "<wsdl:fault name=\"FaultException\" message=\"tns:FaultType\">\n" +"</wsdl:fault>\n" + |
| "</wsdl:operation>\n" + |
| "<wsdl:operation name=\"findAll_TabletypeType\">\n" + |
| "<wsdl:input message=\"tns:findAll_TabletypeTypeRequest\">\n" +"</wsdl:input>\n" + |
| "<wsdl:output message=\"tns:findAll_TabletypeTypeResponse\">\n" +"</wsdl:output>\n" + |
| "</wsdl:operation>\n" + |
| "<wsdl:operation name=\"findByPrimaryKey_TabletypeType\">\n" + |
| "<wsdl:input message=\"tns:findByPrimaryKey_TabletypeTypeRequest\">\n" +"</wsdl:input>\n" + |
| "<wsdl:output message=\"tns:findByPrimaryKey_TabletypeTypeResponse\">\n" +"</wsdl:output>\n" + |
| "</wsdl:operation>\n" + |
| "<wsdl:operation name=\"delete_TabletypeType\">\n" + |
| "<wsdl:input message=\"tns:delete_TabletypeTypeRequest\">\n" +"</wsdl:input>\n" + |
| "<wsdl:output name=\"delete_TabletypeTypeEmptyResponse\" message=\"tns:EmptyResponse\">\n" +"</wsdl:output>\n" + |
| "<wsdl:fault name=\"FaultException\" message=\"tns:FaultType\">\n" +"</wsdl:fault>\n" + |
| "</wsdl:operation>\n" + |
| "<wsdl:operation name=\"GetMyTypeXTest\">\n" + |
| "<wsdl:input message=\"tns:GetMyTypeXTestRequest\"/>\n" + |
| "<wsdl:output message=\"tns:GetMyTypeXTestResponse\"/>\n" + |
| "</wsdl:operation>\n" + |
| "</wsdl:portType>\n" + |
| "<wsdl:binding name=\"tabletypeService_SOAP_HTTP\" type=\"tns:tabletypeService_Interface\">\n" + |
| "<soap:binding style=\"document\" transport=\"http://schemas.xmlsoap.org/soap/http\"/>\n" + |
| "<wsdl:operation name=\"update_TabletypeType\">\n" + |
| "<soap:operation soapAction=\"urn:tabletypeService:update_TabletypeType\"/>\n" + |
| "<wsdl:input>\n" + |
| "<soap:body use=\"literal\"/>\n" + |
| "</wsdl:input>\n" + |
| "<wsdl:output>\n" + |
| "<soap:body use=\"literal\"/>\n" + |
| "</wsdl:output>\n" + |
| "<wsdl:fault name=\"FaultException\">\n" + |
| "<soap:fault name=\"FaultException\" use=\"literal\"/>\n" + |
| "</wsdl:fault>\n" + |
| "</wsdl:operation>\n" + |
| "<wsdl:operation name=\"create_TabletypeType\">\n" + |
| "<soap:operation soapAction=\"urn:tabletypeService:create_TabletypeType\"/>\n" + |
| "<wsdl:input>\n" + |
| "<soap:body use=\"literal\"/>\n" + |
| "</wsdl:input>\n" + |
| "<wsdl:output>\n" + |
| "<soap:body use=\"literal\"/>\n" + |
| "</wsdl:output>\n" + |
| "<wsdl:fault name=\"FaultException\">\n" + |
| "<soap:fault name=\"FaultException\" use=\"literal\"/>\n" + |
| "</wsdl:fault>\n" + |
| "</wsdl:operation>\n" + |
| "<wsdl:operation name=\"findAll_TabletypeType\">\n" + |
| "<soap:operation soapAction=\"urn:tabletypeService:findAll_TabletypeType\"/>\n" + |
| "<wsdl:input>\n" + |
| "<soap:body use=\"literal\"/>\n" + |
| "</wsdl:input>\n" + |
| "<wsdl:output>\n" + |
| "<soap:body use=\"literal\"/>\n" + |
| "</wsdl:output>\n" + |
| "</wsdl:operation>\n" + |
| "<wsdl:operation name=\"findByPrimaryKey_TabletypeType\">\n" + |
| "<soap:operation soapAction=\"urn:tabletypeService:findByPrimaryKey_TabletypeType\"/>\n" + |
| "<wsdl:input>\n" + |
| "<soap:body use=\"literal\"/>\n" + |
| "</wsdl:input>\n" + |
| "<wsdl:output>\n" + |
| "<soap:body use=\"literal\"/>\n" + |
| "</wsdl:output>\n" + |
| "</wsdl:operation>\n" + |
| "<wsdl:operation name=\"delete_TabletypeType\">\n" + |
| "<soap:operation soapAction=\"urn:tabletypeService:delete_TabletypeType\"/>\n" + |
| "<wsdl:input>\n" + |
| "<soap:body use=\"literal\"/>\n" + |
| "</wsdl:input>\n" + |
| "<wsdl:output>\n" + |
| "<soap:body use=\"literal\"/>\n" + |
| "</wsdl:output>\n" + |
| "<wsdl:fault name=\"FaultException\">\n" + |
| "<soap:fault name=\"FaultException\" use=\"literal\"/>\n" + |
| "</wsdl:fault>\n" + |
| "</wsdl:operation>\n" + |
| "<wsdl:operation name=\"GetMyTypeXTest\">\n" + |
| "<soap:operation soapAction=\"urn:tabletypeService:GetMyTypeXTest\"/>\n" + |
| "<wsdl:input>\n" + |
| "<soap:body use=\"literal\"/>\n" + |
| "</wsdl:input>\n" + |
| "<wsdl:output>\n" + |
| "<soap:body use=\"literal\"/>\n" + |
| "</wsdl:output>\n" + |
| "</wsdl:operation>\n" + |
| "</wsdl:binding>\n" + |
| "<wsdl:service name=\"tabletypeService\">\n" + |
| "<wsdl:port name=\"tabletypeServicePort\" binding=\"tns:tabletypeService_SOAP_HTTP\">\n" + |
| "<soap:address location=\"REPLACE_WITH_ENDPOINT_ADDRESS\"/>\n" + |
| "</wsdl:port>\n" + |
| "</wsdl:service>\n" + |
| "</wsdl:definitions>\n"; |
| |
| } |