summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorGravatar gmcdonald2010-02-13 01:32:03 +0000
committerGravatar gmcdonald2010-02-13 01:32:03 +0000
commit0425aadc78680e53000fd0108b540d6eca048516 (patch)
tree8ec7ab8e015d454c5ec586dfc91e05a2dce1cfc0 /test
downloadaxis2c-0425aadc78680e53000fd0108b540d6eca048516.tar.gz
axis2c-0425aadc78680e53000fd0108b540d6eca048516.tar.bz2
Moving axis svn, part of TLP move INFRA-2441
git-svn-id: http://svn.apache.org/repos/asf/axis/axis2/c/core/trunk@909681 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'test')
-rw-r--r--test/Makefile.am2
-rw-r--r--test/core/Makefile.am3
-rw-r--r--test/core/addr/Makefile.am21
-rw-r--r--test/core/addr/test_addr.c182
-rw-r--r--test/core/clientapi/Makefile.am49
-rw-r--r--test/core/clientapi/addr_echo.xml23
-rw-r--r--test/core/clientapi/echo.xml1
-rw-r--r--test/core/clientapi/test_client.c182
-rw-r--r--test/core/clientapi/test_clientapi.c119
-rw-r--r--test/core/clientapi/test_svc_client_handler_count.c22
-rw-r--r--test/core/context/Makefile.am21
-rw-r--r--test/core/context/test_context.c124
-rw-r--r--test/core/deployment/Makefile.am25
-rw-r--r--test/core/deployment/axis2.xml126
-rw-r--r--test/core/deployment/test_deployment.c360
-rw-r--r--test/core/description/Makefile.am26
-rw-r--r--test/core/description/test_description.c215
-rw-r--r--test/core/engine/Makefile.am25
-rw-r--r--test/core/engine/test_engine.c123
-rw-r--r--test/core/transport/Makefile.am1
-rw-r--r--test/core/transport/http/Makefile.am21
-rw-r--r--test/core/transport/http/test_http_transport.c274
-rw-r--r--test/find_policy.c303
-rw-r--r--test/itest/Makefile.am1
-rw-r--r--test/itest/whitemesa/Makefile.am2
-rw-r--r--test/itest/whitemesa/round1/Makefile.am16
-rw-r--r--test/itest/whitemesa/round1/README.txt2
-rw-r--r--test/itest/whitemesa/round1/input6
-rw-r--r--test/itest/whitemesa/round1/round1_client.c258
-rw-r--r--test/itest/whitemesa/round1/run.sh1
-rw-r--r--test/itest/whitemesa/round1/todo19
-rw-r--r--test/itest/whitemesa/round2/Makefile.am15
-rw-r--r--test/itest/whitemesa/round2/README.txt8
-rw-r--r--test/itest/whitemesa/round2/input6
-rw-r--r--test/itest/whitemesa/round2/readme1
-rw-r--r--test/itest/whitemesa/round2/round2_client.c251
-rw-r--r--test/itest/whitemesa/round2/run.sh1
-rw-r--r--test/itest/whitemesa/round2/todo8
-rw-r--r--test/resources/services.xml22
-rw-r--r--test/resources/wsdl/Attachment1.wsdl76
-rw-r--r--test/resources/wsdl/AttachmentService.wsdl139
-rw-r--r--test/resources/wsdl/AxisBench.wsdl108
-rw-r--r--test/resources/wsdl/BasicAllTest.wsdl102
-rw-r--r--test/resources/wsdl/BasicChoice.wsdl104
-rw-r--r--test/resources/wsdl/Calculator.wsdl135
-rw-r--r--test/resources/wsdl/CalculatorDoc.wsdl255
-rw-r--r--test/resources/wsdl/Choice.wsdl104
-rw-r--r--test/resources/wsdl/CombinedAllTest.wsdl107
-rw-r--r--test/resources/wsdl/CombinedChoice.wsdl110
-rw-r--r--test/resources/wsdl/ComplexLists.wsdl192
-rw-r--r--test/resources/wsdl/ComplexTypeAll.wsdl81
-rw-r--r--test/resources/wsdl/DataHandlerService.wsdl291
-rw-r--r--test/resources/wsdl/Enumeration.wsdl108
-rw-r--r--test/resources/wsdl/ExceptionTest.wsdl97
-rw-r--r--test/resources/wsdl/ExceptionTestDoc.wsdl160
-rw-r--r--test/resources/wsdl/ExtensibilityQuery.wsdl154
-rw-r--r--test/resources/wsdl/FaultMapping.wsdl97
-rw-r--r--test/resources/wsdl/FaultMappingDoc.wsdl160
-rw-r--r--test/resources/wsdl/FourLevelTestDoc.wsdl73
-rw-r--r--test/resources/wsdl/InOut.wsdl429
-rw-r--r--test/resources/wsdl/InteropTestRound1.wsdl333
-rw-r--r--test/resources/wsdl/InteropTestRound1Doc.wsdl774
-rw-r--r--test/resources/wsdl/LargeReturningString.wsdl95
-rw-r--r--test/resources/wsdl/LimitedAllTest.wsdl103
-rw-r--r--test/resources/wsdl/ManyTypeRefRoot.wsdl89
-rw-r--r--test/resources/wsdl/MathOps.wsdl71
-rw-r--r--test/resources/wsdl/MathOpsDoc.wsdl118
-rw-r--r--test/resources/wsdl/MinOccurTest.wsdl107
-rw-r--r--test/resources/wsdl/MultiOut.wsdl139
-rw-r--r--test/resources/wsdl/NestedArrays.wsdl105
-rw-r--r--test/resources/wsdl/NestedComplex.wsdl130
-rw-r--r--test/resources/wsdl/NillableArrays.wsdl266
-rw-r--r--test/resources/wsdl/OtherFaultException.wsdl97
-rw-r--r--test/resources/wsdl/PlainTextAttachment.wsdl69
-rw-r--r--test/resources/wsdl/PrimitiveAndArray.wsdl155
-rw-r--r--test/resources/wsdl/RPCAllTest.wsdl101
-rw-r--r--test/resources/wsdl/RecurseTypes.wsdl101
-rw-r--r--test/resources/wsdl/RpcHttpHeaderTest1.wsdl333
-rw-r--r--test/resources/wsdl/RpcHttpHeaderTest2.wsdl333
-rw-r--r--test/resources/wsdl/RpcHttpHeaderTest3.wsdl333
-rw-r--r--test/resources/wsdl/RpcHttpHeaderTest4.wsdl333
-rw-r--r--test/resources/wsdl/RpcHttpHeaderTest5.wsdl333
-rw-r--r--test/resources/wsdl/RpcHttpHeaderTest7.wsdl333
-rw-r--r--test/resources/wsdl/RpcHttpHeaderTest8.wsdl333
-rw-r--r--test/resources/wsdl/RpcSoapHeaderTest1.wsdl333
-rw-r--r--test/resources/wsdl/RpcSoapHeaderTest10.wsdl333
-rw-r--r--test/resources/wsdl/RpcSoapHeaderTest2.wsdl333
-rw-r--r--test/resources/wsdl/RpcSoapHeaderTest3.wsdl333
-rw-r--r--test/resources/wsdl/RpcSoapHeaderTest4.wsdl333
-rw-r--r--test/resources/wsdl/RpcSoapHeaderTest6.wsdl333
-rw-r--r--test/resources/wsdl/RpcSoapHeaderTest8.wsdl333
-rw-r--r--test/resources/wsdl/RpcSoapHeaderTest9.wsdl333
-rw-r--r--test/resources/wsdl/SimpleArray.wsdl64
-rw-r--r--test/resources/wsdl/SimpleArrayDoc.wsdl85
-rw-r--r--test/resources/wsdl/SimpleArrays.wsdl299
-rw-r--r--test/resources/wsdl/SimpleChoice.wsdl104
-rw-r--r--test/resources/wsdl/SimpleRef.wsdl114
-rw-r--r--test/resources/wsdl/SimpleRefDoc.wsdl100
-rw-r--r--test/resources/wsdl/SimpleTypeArray.wsdl75
-rw-r--r--test/resources/wsdl/SimpleTypeInnerUnbounded.wsdl113
-rw-r--r--test/resources/wsdl/SimpleTypeInnerUnboundedInOutput.wsdl113
-rw-r--r--test/resources/wsdl/StockQuotes.wsdl48
-rw-r--r--test/resources/wsdl/TestTransportTimeout.wsdl255
-rw-r--r--test/resources/wsdl/UDDI.wsdl31
-rw-r--r--test/resources/wsdl/UnboundedChoice.wsdl104
-rw-r--r--test/resources/wsdl/UnboundedStringChoice.wsdl103
-rw-r--r--test/resources/wsdl/XSDAttribute.wsdl1046
-rw-r--r--test/resources/wsdl/XSDElement.wsdl1422
-rw-r--r--test/resources/wsdl/XSDElementNil.wsdl1414
-rw-r--r--test/resources/wsdl/XSD_ENTITIES.wsdl285
-rw-r--r--test/resources/wsdl/XSD_ENTITY.wsdl285
-rw-r--r--test/resources/wsdl/XSD_ID.wsdl285
-rw-r--r--test/resources/wsdl/XSD_IDREF.wsdl285
-rw-r--r--test/resources/wsdl/XSD_IDREFS.wsdl285
-rw-r--r--test/resources/wsdl/XSD_NCName.wsdl285
-rw-r--r--test/resources/wsdl/XSD_NMTOKEN.wsdl285
-rw-r--r--test/resources/wsdl/XSD_NMTOKENS.wsdl285
-rw-r--r--test/resources/wsdl/XSD_NOTATION.wsdl285
-rw-r--r--test/resources/wsdl/XSD_Name.wsdl285
-rw-r--r--test/resources/wsdl/XSD_QName.wsdl285
-rw-r--r--test/resources/wsdl/XSD_anyURI.wsdl285
-rw-r--r--test/resources/wsdl/XSD_base64Binary.wsdl285
-rw-r--r--test/resources/wsdl/XSD_boolean.wsdl285
-rw-r--r--test/resources/wsdl/XSD_byte.wsdl285
-rw-r--r--test/resources/wsdl/XSD_date.wsdl285
-rw-r--r--test/resources/wsdl/XSD_dateTime.wsdl285
-rw-r--r--test/resources/wsdl/XSD_decimal.wsdl285
-rw-r--r--test/resources/wsdl/XSD_double.wsdl285
-rw-r--r--test/resources/wsdl/XSD_duration.wsdl285
-rw-r--r--test/resources/wsdl/XSD_float.wsdl285
-rw-r--r--test/resources/wsdl/XSD_gDay.wsdl285
-rw-r--r--test/resources/wsdl/XSD_gMonth.wsdl285
-rw-r--r--test/resources/wsdl/XSD_gMonthDay.wsdl285
-rw-r--r--test/resources/wsdl/XSD_gYear.wsdl285
-rw-r--r--test/resources/wsdl/XSD_gYearMonth.wsdl285
-rw-r--r--test/resources/wsdl/XSD_hexBinary.wsdl285
-rw-r--r--test/resources/wsdl/XSD_int.wsdl285
-rw-r--r--test/resources/wsdl/XSD_integer.wsdl285
-rw-r--r--test/resources/wsdl/XSD_language.wsdl285
-rw-r--r--test/resources/wsdl/XSD_long.wsdl285
-rw-r--r--test/resources/wsdl/XSD_negativeInteger.wsdl285
-rw-r--r--test/resources/wsdl/XSD_nonNegativeInteger.wsdl285
-rw-r--r--test/resources/wsdl/XSD_nonPositiveInteger.wsdl285
-rw-r--r--test/resources/wsdl/XSD_normalizedString.wsdl285
-rw-r--r--test/resources/wsdl/XSD_positiveInteger.wsdl285
-rw-r--r--test/resources/wsdl/XSD_short.wsdl285
-rw-r--r--test/resources/wsdl/XSD_string.wsdl285
-rw-r--r--test/resources/wsdl/XSD_time.wsdl285
-rw-r--r--test/resources/wsdl/XSD_token.wsdl285
-rw-r--r--test/resources/wsdl/XSD_unsignedByte.wsdl285
-rw-r--r--test/resources/wsdl/XSD_unsignedInt.wsdl285
-rw-r--r--test/resources/wsdl/XSD_unsignedLong.wsdl285
-rw-r--r--test/resources/wsdl/XSD_unsignedShort.wsdl285
-rw-r--r--test/resources/wsdl/inquire_v2.wsdl273
-rw-r--r--test/resources/wsdl/interoptestdoclitparameters.wsdl175
-rw-r--r--test/resources/wsdl/nillableComplexType.wsdl78
-rw-r--r--test/resources/wsdl/nillableComplexType.xsd26
-rw-r--r--test/resources/xml/om/axis.xml25
-rw-r--r--test/resources/xml/om/basic.xml11
-rw-r--r--test/resources/xml/om/basicupdate.xml47
-rw-r--r--test/resources/xml/om/contents.xml70
-rw-r--r--test/resources/xml/om/defaultNamespace.xml6
-rw-r--r--test/resources/xml/om/evaluate.xml28
-rw-r--r--test/resources/xml/om/fibo.xml29
-rw-r--r--test/resources/xml/om/id.xml21
-rw-r--r--test/resources/xml/om/jaxen24.xml2
-rw-r--r--test/resources/xml/om/jaxen3.xml15
-rw-r--r--test/resources/xml/om/lang.xml11
-rw-r--r--test/resources/xml/om/message.xml27
-rw-r--r--test/resources/xml/om/moreover.xml244
-rw-r--r--test/resources/xml/om/much_ado.xml6850
-rw-r--r--test/resources/xml/om/namespaces.xml18
-rw-r--r--test/resources/xml/om/nitf.xml67
-rw-r--r--test/resources/xml/om/numbers.xml18
-rw-r--r--test/resources/xml/om/pi.xml13
-rw-r--r--test/resources/xml/om/pi2.xml6
-rw-r--r--test/resources/xml/om/simple.xml2
-rw-r--r--test/resources/xml/om/spaces.xml10
-rw-r--r--test/resources/xml/om/test.xml12
-rw-r--r--test/resources/xml/om/testNamespaces.xml22
-rw-r--r--test/resources/xml/om/underscore.xml6
-rw-r--r--test/resources/xml/om/web.xml42
-rw-r--r--test/resources/xml/om/web2.xml7
-rw-r--r--test/resources/xml/soap/OMElementTest.xml22
-rw-r--r--test/resources/xml/soap/badsoap/bodyNotQualified.xml19
-rw-r--r--test/resources/xml/soap/badsoap/envelopeMissing.xml20
-rw-r--r--test/resources/xml/soap/badsoap/haederBodyWrongOrder.xml20
-rw-r--r--test/resources/xml/soap/badsoap/notnamespaceQualified.xml15
-rw-r--r--test/resources/xml/soap/badsoap/twoBodymessage.xml24
-rw-r--r--test/resources/xml/soap/badsoap/twoheaders.xml29
-rw-r--r--test/resources/xml/soap/badsoap/wrongSoapNs.xml20
-rw-r--r--test/resources/xml/soap/emtyBodymessage.xml18
-rw-r--r--test/resources/xml/soap/invalidMustUnderstandSOAP12.xml13
-rw-r--r--test/resources/xml/soap/minimalMessage.xml4
-rw-r--r--test/resources/xml/soap/reallyReallyBigMessage.xml2529
-rw-r--r--test/resources/xml/soap/sample1.txt12
-rw-r--r--test/resources/xml/soap/sample1.xml9
-rw-r--r--test/resources/xml/soap/security2-soap.xml54
-rw-r--r--test/resources/xml/soap/soap11/soap11fault.xml16
-rw-r--r--test/resources/xml/soap/soap11/soap11message.xml46
-rw-r--r--test/resources/xml/soap/soap12message.xml58
-rw-r--r--test/resources/xml/soap/soapmessage.txt16
-rw-r--r--test/resources/xml/soap/soapmessage.xml20
-rw-r--r--test/resources/xml/soap/soapmessage1.xml27
-rw-r--r--test/resources/xml/soap/test.xml59
-rw-r--r--test/resources/xml/soap/whitespacedMessage.xml27
-rw-r--r--test/resources/xml/soap/wrongEnvelopeNamespace.xml12
207 files changed, 43075 insertions, 0 deletions
diff --git a/test/Makefile.am b/test/Makefile.am
new file mode 100644
index 0000000..c95f314
--- /dev/null
+++ b/test/Makefile.am
@@ -0,0 +1,2 @@
+TESTS =
+SUBDIRS = core
diff --git a/test/core/Makefile.am b/test/core/Makefile.am
new file mode 100644
index 0000000..3fa8f58
--- /dev/null
+++ b/test/core/Makefile.am
@@ -0,0 +1,3 @@
+TESTS =
+SUBDIRS = description context engine deployment addr transport clientapi
+
diff --git a/test/core/addr/Makefile.am b/test/core/addr/Makefile.am
new file mode 100644
index 0000000..9d42172
--- /dev/null
+++ b/test/core/addr/Makefile.am
@@ -0,0 +1,21 @@
+TESTS = test_addr
+check_PROGRAMS = test_addr
+noinst_PROGRAMS = test_addr
+SUBDIRS =
+AM_CFLAGS = -g -pthread
+test_addr_SOURCES = test_addr.c
+
+test_addr_LDADD = \
+ ../../../util/src/libaxutil.la \
+ ../../../axiom/src/om/libaxis2_axiom.la \
+ ../../../axiom/src/parser/$(WRAPPER_DIR)/libaxis2_parser.la \
+ $(top_builddir)/neethi/src/libneethi.la \
+ $(top_builddir)/src/core/engine/libaxis2_engine.la \
+ $(top_builddir)/src/core/transport/http/common/libaxis2_http_common.la
+
+INCLUDES = -I${CUTEST_HOME}/include \
+ -I$(top_builddir)/src/xml/guththila \
+ -I$(top_builddir)/include \
+ -I ../../../util/include \
+ -I ../../../axiom/include
+
diff --git a/test/core/addr/test_addr.c b/test/core/addr/test_addr.c
new file mode 100644
index 0000000..c013a57
--- /dev/null
+++ b/test/core/addr/test_addr.c
@@ -0,0 +1,182 @@
+
+/*
+ * 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.
+ */
+
+#include <axis2_msg_info_headers.h>
+#include <axutil_env.h>
+#include <axutil_allocator.h>
+#include <axis2_endpoint_ref.h>
+#include <stdio.h>
+
+int
+axis2_test_msg_info_headers(
+ )
+{
+ axis2_endpoint_ref_t *to = NULL;
+ axis2_endpoint_ref_t *from = NULL;
+ axis2_endpoint_ref_t *reply_to = NULL;
+ axis2_endpoint_ref_t *fault_to = NULL;
+ axis2_endpoint_ref_t *axis2_endpoint_ref = NULL;
+ axis2_status_t status = AXIS2_FAILURE;
+ axis2_msg_info_headers_t *axis2_msg_info_headers = NULL;
+ axutil_allocator_t *allocator = axutil_allocator_init(NULL);
+ const axutil_env_t *env = axutil_env_create(allocator);
+ const axis2_char_t *action = "test action";
+ const axis2_char_t *get_action = NULL;
+ to = axis2_endpoint_ref_create(env, "to");
+ from = axis2_endpoint_ref_create(env, "from");
+ reply_to = axis2_endpoint_ref_create(env, "reply to");
+ fault_to = axis2_endpoint_ref_create(env, "fault to");
+
+ axis2_msg_info_headers = axis2_msg_info_headers_create(env, NULL, action);
+ if (axis2_msg_info_headers)
+ printf("SUCCESS axis2_msg_info_headers_create\n");
+ else
+ {
+ printf("ERROR AXIS2_MSG_INFO_HEADERS_CREATE\n");
+ return -1;
+ }
+
+ status = axis2_msg_info_headers_set_to(axis2_msg_info_headers, env, to);
+
+ if (status == AXIS2_SUCCESS)
+ printf("SUCCESS axis2_msg_info_headers_set_to\n");
+ else
+ {
+ printf("ERROR axis2_msg_info_headers_set_to");
+ return -1;
+ }
+
+ axis2_endpoint_ref =
+ axis2_msg_info_headers_get_to(axis2_msg_info_headers, env);
+
+ if (axis2_endpoint_ref)
+ printf("SUCCESS axis2_msg_info_headers_get_to\n");
+ else
+ {
+ printf("ERROR axis2_msg_info_headers_get_to\n");
+ return -1;
+ }
+
+ status = AXIS2_FAILURE;
+ status = axis2_msg_info_headers_set_from(axis2_msg_info_headers, env, from);
+
+ if (status)
+ printf("SUCCESS axis2_msg_info_headers_set_from\n");
+ else
+ {
+ printf("ERROR axis2_msg_info_headers_set_from\n");
+ return -1;
+ }
+
+ axis2_endpoint_ref = NULL;
+ axis2_endpoint_ref =
+ axis2_msg_info_headers_get_from(axis2_msg_info_headers, env);
+
+ if (axis2_endpoint_ref)
+ printf("SUCCESS axis2_msg_info_headers_get_from\n");
+ else
+ {
+ printf("ERROR axis2_msg_info_headers_get_from\n");
+ return -1;
+ }
+
+ axis2_endpoint_ref = NULL;
+ axis2_endpoint_ref =
+ axis2_msg_info_headers_get_reply_to(axis2_msg_info_headers, env);
+
+ if (status)
+ printf("SUCCESS axis2_msg_info_headers_get_reply_to\n");
+ else
+ {
+ printf("ERROR axis2_msg_info_headers_get_reply_to\n");
+ return -1;
+ }
+
+ status = AXIS2_FAILURE;
+ status =
+ axis2_msg_info_headers_set_reply_to(axis2_msg_info_headers, env,
+ reply_to);
+
+ if (status)
+ printf("SUCCESS axis2_msg_info_headers_set_reply_to\n");
+ else
+ {
+ printf("ERROR axis2_msg_info_headers_set_reply_to\n");
+ return -1;
+ }
+
+ status = AXIS2_FAILURE;
+ status =
+ axis2_msg_info_headers_set_fault_to(axis2_msg_info_headers, env,
+ fault_to);
+ if (status)
+ printf("SUCCESS axis2_msg_info_headers_set_fault_to\n");
+ else
+ {
+ printf("ERROR axis2_msg_info_headers_set_fault_to\n");
+ return -1;
+ }
+
+ axis2_endpoint_ref = NULL;
+ axis2_endpoint_ref =
+ axis2_msg_info_headers_get_fault_to(axis2_msg_info_headers, env);
+ if (axis2_endpoint_ref)
+ printf("SUCCESS axis2_msg_info_headers_get_fault_to\n");
+ else
+ {
+ printf("ERROR axis2_msg_info_headers_get_fault_to\n");
+ return -1;
+ }
+
+ get_action = axis2_msg_info_headers_get_action(axis2_msg_info_headers, env);
+ if (get_action)
+ printf("SUCCESS axis2_msg_info_headers_get_action\n");
+ else
+ {
+ printf("ERROR axis2_msg_info_headers_get_action\n");
+ return -1;
+ }
+
+ status = AXIS2_FAILURE;
+ status =
+ axis2_msg_info_headers_set_action(axis2_msg_info_headers, env, action);
+ if (status)
+ printf("SUCCESS axis2_msg_info_headers_set_action\n");
+ else
+ {
+ printf("ERROR axis2_msg_info_headers_set_action\n");
+ }
+
+ status = AXIS2_FAILURE;
+ /* status = axis2_msg_info_headers_free(axis2_msg_info_headers, env); */
+ if (status)
+ printf("SUCCESS axis2_msg_info_headers_free\n");
+ else
+ {
+ printf("ERROR axis2_msg_info_headers_free\n");
+ }
+ return 0;
+}
+
+int
+main(
+ )
+{
+ axis2_test_msg_info_headers();
+ return 0;
+}
diff --git a/test/core/clientapi/Makefile.am b/test/core/clientapi/Makefile.am
new file mode 100644
index 0000000..e88c350
--- /dev/null
+++ b/test/core/clientapi/Makefile.am
@@ -0,0 +1,49 @@
+TESTS = test_client test_clientapi test_svc_client_handler_count
+noinst_PROGRAMS = test_client test_clientapi test_svc_client_handler_count
+check_PROGRAMS = test_client test_clientapi test_svc_client_handler_count
+SUBDIRS =
+AM_CFLAGS = -g -pthread
+test_client_SOURCES = test_client.c
+test_clientapi_SOURCES = test_clientapi.c
+test_svc_client_handler_count_SOURCES = test_svc_client_handler_count.c
+
+test_clientapi_LDADD = \
+ ../../../util/src/libaxutil.la \
+ ../../../axiom/src/om/libaxis2_axiom.la \
+ ../../../axiom/src/parser/$(WRAPPER_DIR)/libaxis2_parser.la \
+ $(top_builddir)/neethi/src/libneethi.la \
+ -lpthread \
+ $(top_builddir)/src/core/engine/libaxis2_engine.la \
+ $(top_builddir)/src/core/transport/http/sender/libaxis2_http_sender.la
+
+test_client_LDADD = \
+ ../../../util/src/libaxutil.la \
+ ../../../axiom/src/om/libaxis2_axiom.la \
+ ../../../axiom/src/parser/$(WRAPPER_DIR)/libaxis2_parser.la \
+ $(top_builddir)/neethi/src/libneethi.la \
+ -lpthread \
+ $(top_builddir)/src/core/engine/libaxis2_engine.la \
+ $(top_builddir)/src/core/transport/http/sender/libaxis2_http_sender.la
+
+test_svc_client_handler_count_LDADD = \
+ ../../../util/src/libaxutil.la \
+ ../../../axiom/src/om/libaxis2_axiom.la \
+ ../../../axiom/src/parser/$(WRAPPER_DIR)/libaxis2_parser.la \
+ $(top_builddir)/neethi/src/libneethi.la \
+ -lpthread \
+ $(top_builddir)/src/core/engine/libaxis2_engine.la \
+ $(top_builddir)/src/core/transport/http/sender/libaxis2_http_sender.la
+
+
+INCLUDES = -I${CUTEST_HOME}/include \
+ -I$(top_builddir)/include \
+ -I$(top_builddir)/src/core/description \
+ -I$(top_builddir)/src/core/context \
+ -I$(top_builddir)/src/core/phaseresolver \
+ -I$(top_builddir)/src/core/deployment \
+ -I$(top_builddir)/src/core/engine \
+ -I$(top_builddir)/src/core/clientapi \
+ -I ../../../util/include \
+ -I ../../../neethi/include \
+ -I ../../../axiom/include
+
diff --git a/test/core/clientapi/addr_echo.xml b/test/core/clientapi/addr_echo.xml
new file mode 100644
index 0000000..85284bf
--- /dev/null
+++ b/test/core/clientapi/addr_echo.xml
@@ -0,0 +1,23 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope" xmlns:wsa=
+"http://schemas.xmlsoap.org/ws/2004/08/addressing">
+ <soapenv:Header>
+ <wsrm:Sequence xmlns:wsrm="http://schemas.xmlsoap.org/ws/2005/02/rm" soapenv:mustUnderstand="1">
+ <wsrm:Identifier>uuid:967F11455D2EC0EC9411374901147634</wsrm:Identifier>
+ <wsrm:MessageNumber>1</wsrm:MessageNumber>
+ <wsrm:LastMessage />
+ </wsrm:Sequence>
+ <wsa:To xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing">http://127.0.0.1:9090/axis2/services/echo</wsa:To>
+ <wsa:Action xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing">http://127.0.0.1:9090/axis2/services/echo/__OPERATION_OUT_IN__</wsa:Action>
+ <wsa:ReplyTo xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing">
+ <wsa:Address>http://192.168.1.217:9090/axis2/services/__ANONYMOUS_SERVICE__/__OPERATION_OUT_IN__</wsa:Address>
+ </wsa:ReplyTo>
+ <wsa:MessageID xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing">38DDECF77196B604F511374901138822
+ </wsa:MessageID>
+ </soapenv:Header>
+ <soapenv:Body>
+ <echoString xmlns="">
+ <text xmlns="">echo5</text>
+ </echoString>
+ </soapenv:Body>
+ </soapenv:Envelope> \ No newline at end of file
diff --git a/test/core/clientapi/echo.xml b/test/core/clientapi/echo.xml
new file mode 100644
index 0000000..fad1895
--- /dev/null
+++ b/test/core/clientapi/echo.xml
@@ -0,0 +1 @@
+<?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"><soapenv:Body><echoString><text>echo5</text></echoString></soapenv:Body></soapenv:Envelope>
diff --git a/test/core/clientapi/test_client.c b/test/core/clientapi/test_client.c
new file mode 100644
index 0000000..83a417e
--- /dev/null
+++ b/test/core/clientapi/test_client.c
@@ -0,0 +1,182 @@
+
+/*
+ * 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.
+ */
+
+#include <stdio.h>
+#include <strings.h>
+#include <string.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <netdb.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <axis2_const.h>
+#include <stdlib.h>
+
+/* Function prototypes */
+int write_to_socket(
+ const char *address,
+ const char *port,
+ const char *filename,
+ const char *endpoint);
+
+/* End of function prototypes */
+
+void
+error(
+ const char *msg)
+{
+ perror(msg);
+ exit(0);
+}
+
+int
+main(
+ int argc,
+ char *argv[])
+{
+ const axis2_char_t *hostname = "localhost";
+ const axis2_char_t *port = "9090";
+ const axis2_char_t *filename = "echo.xml";
+ const axis2_char_t *endpoint = "/axis2/services/echo/echo";
+ int c;
+ extern char *optarg;
+
+ while ((c = getopt(argc, argv, ":h:p:f:e:")) != -1)
+ {
+ switch (c)
+ {
+ case 'h':
+ hostname = optarg;
+ break;
+ case 'p':
+ port = optarg;
+ break;
+ case 'f':
+ filename = optarg;
+ break;
+ case 'e':
+ endpoint = optarg;
+ break;
+ }
+ }
+
+ write_to_socket(hostname, port, filename, endpoint);
+ return 0;
+}
+
+int
+write_to_socket(
+ const char *address,
+ const char *port,
+ const char *filename,
+ const char *endpoint)
+{
+ axis2_char_t buffer_l[4999];
+ int sockfd,
+ portno,
+ n,
+ i;
+ struct sockaddr_in serv_addr;
+ struct hostent *server;
+ struct stat buf;
+ axis2_char_t *buffer;
+ axis2_char_t tmpstr[10];
+ int bufsize = 0;
+
+ portno = atoi(port);
+ sockfd = socket(AF_INET, SOCK_STREAM, 0);
+ if (sockfd < 0)
+ error("ERROR opening socket");
+ server = gethostbyname(address);
+ if (server == NULL)
+ {
+ fprintf(stderr, "ERROR, no such host\n");
+ exit(0);
+ }
+ bzero((char *) &serv_addr, sizeof(serv_addr));
+ serv_addr.sin_family = AF_INET;
+ bcopy((char *) server->h_addr,
+ (char *) &serv_addr.sin_addr.s_addr, server->h_length);
+ serv_addr.sin_port = htons(portno);
+ if (connect(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0)
+ error("ERROR connecting");
+
+ /* Read from file */
+ stat(filename, &buf);
+ bufsize = (buf.st_size + 1) * sizeof(char);
+ buffer = (char *) malloc(bufsize);
+ int fd = open(filename, O_RDONLY, 0);
+ if (fd == -1)
+ {
+ printf("can't open file %s\n", filename);
+ return -1;
+ }
+ else
+ printf("opened file %s\n", filename);
+
+ i = read(fd, buffer, bufsize - 1);
+ if (i > 0)
+ {
+ buffer[i] = '\0';
+ printf("%s...\n", buffer);
+ }
+ sprintf(buffer_l,
+ "POST %s HTTP/1.1\r\nUser-Agent: Axis/2.0/C\r\nConnection: Keep-Alive\r\nHost: ",
+ endpoint);
+ strcat(buffer_l, address);
+ strcat(buffer_l, ":");
+ strcat(buffer_l, port);
+ strcat(buffer_l, "\r\n");
+ strcat(buffer_l, "Content-Length: ");
+ sprintf(tmpstr, "%d", (int) strlen(buffer));
+ strcat(buffer_l, tmpstr);
+ strcat(buffer_l, "\r\n");
+ /*strcat(buffer_l, "SOAPAction: http://localhost:9090/axis2/services/echo/echo\r\n"); */
+ strcat(buffer_l, "Content-Type: application/soap+xml;\r\n");
+ strcat(buffer_l, "\r\n");
+
+ printf("Writing buffer_1...\n%s", buffer_l);
+ n = write(sockfd, buffer_l, strlen(buffer_l));
+
+ n = write(sockfd, buffer, strlen(buffer));
+ if (n < 0)
+ error("ERROR writing to socket");
+
+ printf("Done writing to server\n");
+
+ buffer[0] = '\0';
+
+ printf("Reading the reply from server :\n");
+ while ((n = read(sockfd, buffer, bufsize - 1)) > 0)
+ {
+ buffer[n] = '\0';
+ printf("%s", buffer);
+ }
+ printf("\nReading from server done ...\n");
+
+ if (n < 0)
+ {
+ error("ERROR reading from socket");
+ buffer[0] = '\0';
+ }
+ free(buffer);
+ return 0;
+}
diff --git a/test/core/clientapi/test_clientapi.c b/test/core/clientapi/test_clientapi.c
new file mode 100644
index 0000000..e20d44a
--- /dev/null
+++ b/test/core/clientapi/test_clientapi.c
@@ -0,0 +1,119 @@
+
+/*
+ * 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.
+ */
+
+#include <axis2_const.h>
+#include <axutil_env.h>
+#include <axis2_engine.h>
+#include <axutil_allocator.h>
+#include <axis2_svc_client.h>
+#include <axis2_options.h>
+#include <platforms/axutil_platform_auto_sense.h>
+
+axiom_node_t *build_om_payload_for_echo_svc(
+ const axutil_env_t * env,
+ const axis2_char_t * echo_str);
+
+void
+axis2_test_svc_client_blocking(
+ )
+{
+ axutil_env_t *env = NULL;
+ axis2_options_t *options = NULL;
+ const axis2_char_t *client_home = NULL;
+ axis2_svc_client_t *svc_client = NULL;
+ axiom_node_t *payload = NULL;
+ axiom_node_t *ret_node = NULL;
+ const axis2_char_t *address = NULL;
+ axis2_endpoint_ref_t *endpoint_ref = NULL;
+
+ axutil_allocator_t *allocator = axutil_allocator_init(NULL);
+ env = axutil_env_create(allocator);
+ axiom_element_t *result_ele = NULL;
+ const axis2_char_t *echo_text = "echo_text";
+ axis2_char_t *result = NULL;
+
+ address = "http://localhost:9090/axis2/services/echo/echo";
+ endpoint_ref = axis2_endpoint_ref_create(env, address);
+ client_home = AXIS2_GETENV("AXIS2C_HOME");
+ if (!client_home)
+ client_home = "../../deploy";
+
+ svc_client = axis2_svc_client_create(env, client_home);
+
+ if (!svc_client)
+ {
+ printf("axis2_test axis2_svc_client_create FAILURE\n");
+ printf
+ ("Client repository path not properly set. Please check AXIS2C_HOME setting\n");
+ return;
+ }
+
+ options = axis2_options_create(env);
+ axis2_options_set_to(options, env, endpoint_ref);
+ axis2_svc_client_set_options(svc_client, env, options);
+
+ payload = build_om_payload_for_echo_svc(env, echo_text);
+ ret_node = axis2_svc_client_send_receive(svc_client, env, payload);
+ if (ret_node)
+ {
+ if (axiom_node_get_node_type(ret_node, env) == AXIOM_ELEMENT)
+ {
+ ret_node = axiom_node_get_first_child(ret_node, env);
+ result_ele =
+ (axiom_element_t *) axiom_node_get_data_element(ret_node, env);
+ result = axiom_element_get_text(result_ele, env, ret_node);
+ if (!strcmp(result, echo_text))
+ printf("axis2_test SVC_CLIENT_SEND_RECEIVE SUCCESS\n");
+ else
+ printf("axis2_test SVC_CLIENT_SEND_RECEIVE FAILURE\n");
+ }
+ }
+ axis2_svc_client_free(svc_client, env);
+}
+
+/* build SOAP request message content using OM */
+axiom_node_t *
+build_om_payload_for_echo_svc(
+ const axutil_env_t * env,
+ const axis2_char_t * echo_text)
+{
+ axiom_node_t *echo_om_node = NULL;
+ axiom_element_t *echo_om_ele = NULL;
+ axiom_node_t *text_om_node = NULL;
+ axiom_element_t *text_om_ele = NULL;
+ axiom_namespace_t *ns1 = NULL;
+
+ ns1 =
+ axiom_namespace_create(env, "http://ws.apache.org/axis2/c/samples",
+ "ns1");
+ echo_om_ele =
+ axiom_element_create(env, NULL, "echoString", ns1, &echo_om_node);
+ text_om_ele =
+ axiom_element_create(env, echo_om_node, "text", NULL, &text_om_node);
+ axiom_element_set_text(text_om_ele, env, echo_text, text_om_node);
+
+ return echo_om_node;
+}
+
+int
+main(
+ )
+{
+ axis2_test_svc_client_blocking();
+ return 0;
+}
diff --git a/test/core/clientapi/test_svc_client_handler_count.c b/test/core/clientapi/test_svc_client_handler_count.c
new file mode 100644
index 0000000..a4904dd
--- /dev/null
+++ b/test/core/clientapi/test_svc_client_handler_count.c
@@ -0,0 +1,22 @@
+#include <stdio.h>
+#include <axis2_util.h>
+#include <axis2_client.h>
+
+int
+main(
+ )
+{
+ axutil_env_t *env =
+ axutil_env_create_all("hello_client.log", AXIS2_LOG_LEVEL_TRACE);
+ const int TIMES = 1000;
+ int i;
+ for (i = 1; i <= TIMES; ++i)
+ {
+ printf("%d\n", i);
+ axis2_svc_client_t *svc_client =
+ axis2_svc_client_create(env, AXIS2_GETENV("AXIS2C_HOME"));
+ axis2_svc_client_free(svc_client, env);
+ }
+ axutil_env_free(env);
+ return 0;
+}
diff --git a/test/core/context/Makefile.am b/test/core/context/Makefile.am
new file mode 100644
index 0000000..01642e2
--- /dev/null
+++ b/test/core/context/Makefile.am
@@ -0,0 +1,21 @@
+TESTS = test_context
+check_PROGRAMS = test_context
+noinst_PROGRAMS = test_context
+SUBDIRS =
+AM_CFLAGS = -g -pthread
+test_context_SOURCES = test_context.c
+
+
+test_context_LDADD = ../../../util/src/libaxutil.la \
+ ../../../axiom/src/om/libaxis2_axiom.la \
+ ../../../axiom/src/parser/$(WRAPPER_DIR)/libaxis2_parser.la \
+ $(top_builddir)/src/core/engine/libaxis2_engine.la \
+ $(top_builddir)/src/core/transport/http/common/libaxis2_http_common.la \
+ $(top_builddir)/neethi/src/libneethi.la
+
+INCLUDES = -I${CUTEST_HOME}/include \
+ -I$(top_builddir)/src/xml/guththila/src \
+ -I$(top_builddir)/include \
+ -I$(top_builddir)/src/core/description \
+ -I ../../../util/include \
+ -I ../../../axiom/include
diff --git a/test/core/context/test_context.c b/test/core/context/test_context.c
new file mode 100644
index 0000000..253691a
--- /dev/null
+++ b/test/core/context/test_context.c
@@ -0,0 +1,124 @@
+
+/*
+ * 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.
+ */
+
+#include <axis2_conf_ctx.h>
+#include <axis2_svc_grp.h>
+#include <axis2_const.h>
+#include <axutil_allocator.h>
+#include <axutil_env.h>
+#include <stdio.h>
+
+void
+axis2_test_conf_ctx_init(
+ )
+{
+ struct axis2_conf *conf = NULL;
+ struct axis2_svc_grp_ctx *svc_grp_ctx1 = NULL;
+ struct axis2_svc_grp_ctx *svc_grp_ctx2 = NULL;
+ struct axis2_svc_grp *svc_grp1 = NULL;
+ struct axis2_svc_grp *svc_grp2 = NULL;
+ struct axis2_conf_ctx *conf_ctx = NULL;
+ struct axis2_svc_ctx *svc_ctx1 = NULL;
+ struct axis2_svc_ctx *svc_ctx2 = NULL;
+ struct axis2_svc *svc1 = NULL;
+ struct axis2_svc *svc2 = NULL;
+ struct axutil_qname *qname1 = NULL;
+ struct axutil_qname *qname2 = NULL;
+ struct axis2_op_ctx *op_ctx1 = NULL;
+ struct axis2_op_ctx *op_ctx2 = NULL;
+ struct axis2_op *op = NULL;
+ struct axutil_hash_t *op_ctx_map = NULL;
+ struct axutil_hash_t *svc_ctx_map = NULL;
+ struct axutil_hash_t *svc_grp_ctx_map = NULL;
+
+ axis2_status_t status = AXIS2_FAILURE;
+ axutil_allocator_t *allocator = axutil_allocator_init(NULL);
+ const axutil_env_t *env = axutil_env_create(allocator);
+
+ conf = axis2_conf_create(env);
+
+ op = axis2_op_create(env);
+
+ conf_ctx = axis2_conf_ctx_create(env, conf);
+
+ svc_grp1 = axis2_svc_grp_create(env);
+ svc_grp2 = axis2_svc_grp_create(env);
+
+ svc_grp_ctx1 = axis2_svc_grp_ctx_create(env, svc_grp1, conf_ctx);
+ svc_grp_ctx2 = axis2_svc_grp_ctx_create(env, svc_grp2, conf_ctx);
+
+ qname1 = axutil_qname_create(env, "name1", NULL, NULL);
+ qname2 = axutil_qname_create(env, "name2", NULL, NULL);
+
+ svc1 = axis2_svc_create_with_qname(env, qname1);
+ svc2 = axis2_svc_create_with_qname(env, qname2);
+
+ svc_ctx1 = axis2_svc_ctx_create(env, svc1, svc_grp_ctx1);
+ svc_ctx2 = axis2_svc_ctx_create(env, svc2, svc_grp_ctx2);
+
+ op = axis2_op_create(env);
+ op_ctx1 = axis2_op_ctx_create(env, op, svc_ctx1);
+ op_ctx2 = axis2_op_ctx_create(env, op, svc_ctx2);
+
+ op_ctx_map = axis2_conf_ctx_get_op_ctx_map(conf_ctx, env);
+
+ if (op_ctx_map)
+ {
+ axutil_hash_set(op_ctx_map, "op_ctx1", AXIS2_HASH_KEY_STRING, op_ctx1);
+ axutil_hash_set(op_ctx_map, "op_ctx2", AXIS2_HASH_KEY_STRING, op_ctx2);
+ }
+
+ svc_ctx_map = axis2_conf_ctx_get_svc_ctx_map(conf_ctx, env);
+
+ if (svc_ctx_map)
+ {
+ axutil_hash_set(svc_ctx_map, "svc_ctx1", AXIS2_HASH_KEY_STRING,
+ svc_ctx1);
+ axutil_hash_set(svc_ctx_map, "svc_ctx2", AXIS2_HASH_KEY_STRING,
+ svc_ctx2);
+ }
+
+ svc_grp_ctx_map = axis2_conf_ctx_get_svc_grp_ctx_map(conf_ctx, env);
+
+ if (svc_grp_ctx_map)
+ {
+ axutil_hash_set(svc_ctx_map, "svc_grp_ctx1", AXIS2_HASH_KEY_STRING,
+ svc_grp_ctx1);
+ axutil_hash_set(svc_ctx_map, "svc_grp_ctx2", AXIS2_HASH_KEY_STRING,
+ svc_grp_ctx2);
+ }
+
+ status = axis2_conf_ctx_init(conf_ctx, env, conf);
+
+ if (status != AXIS2_SUCCESS)
+ {
+ printf("ERROR %d\n", status);
+ }
+ else
+ printf("SUCCESS\n");
+
+ axis2_conf_ctx_free(conf_ctx, env);
+}
+
+int
+main(
+ )
+{
+ axis2_test_conf_ctx_init();
+ return 0;
+}
diff --git a/test/core/deployment/Makefile.am b/test/core/deployment/Makefile.am
new file mode 100644
index 0000000..298457d
--- /dev/null
+++ b/test/core/deployment/Makefile.am
@@ -0,0 +1,25 @@
+TESTS = test_deployment
+noinst_PROGRAMS = test_deployment
+SUBDIRS =
+AM_CFLAGS = $(CFLAGS) -g -pthread
+test_deployment_SOURCES = test_deployment.c
+
+test_deployment_LDADD = \
+ ../../../util/src/libaxutil.la \
+ ../../../axiom/src/om/libaxis2_axiom.la \
+ ../../../axiom/src/parser/$(WRAPPER_DIR)/libaxis2_parser.la \
+ $(top_builddir)/neethi/src/libneethi.la \
+ $(top_builddir)/src/core/engine/libaxis2_engine.la \
+ $(top_builddir)/src/core/transport/http/common/libaxis2_http_common.la
+
+INCLUDES = -I$(top_builddir)/include \
+ -I$(top_builddir)/src/core/description \
+ -I$(top_builddir)/src/core/context \
+ -I$(top_builddir)/src/core/phaseresolver \
+ -I$(top_builddir)/src/core/deployment \
+ -I$(top_builddir)/src/core/engine \
+ -I$(top_builddir)/src/core/clientapi \
+ -I$(top_builddir)/src/core/util \
+ -I ../../../util/include \
+ -I ../../../axiom/include \
+ -I ../../../neethi/include
diff --git a/test/core/deployment/axis2.xml b/test/core/deployment/axis2.xml
new file mode 100644
index 0000000..fb4ccc4
--- /dev/null
+++ b/test/core/deployment/axis2.xml
@@ -0,0 +1,126 @@
+<axisconfig name="AxisJava2.0">
+ <!-- ================================================= -->
+ <!-- Parameters -->
+ <!-- ================================================= -->
+ <parameter name="hotdeployment" locked="false">true</parameter>
+ <parameter name="hotupdate" locked="false">false</parameter>
+ <parameter name="enableMTOM" locked="false">true</parameter>
+ <!-- Uncomment this to enable REST support -->
+ <!-- <parameter name="enableREST" locked="false">true</parameter>-->
+
+
+ <parameter name="userName" locked="false">admin</parameter>
+ <parameter name="password" locked="false">axis2</parameter>
+
+ <parameter name="seralizeLocation" locked="false">.</parameter>
+
+
+
+ <!--if you want to extract the service archive file and work with that please uncomment this-->
+ <!--else , it wont extract archive file or does not take into consideration if someone drop-->
+ <!--exploded directory into /service directory-->
+ <!--<parameter name="extractServiceArchive" locked="false">true</parameter>-->
+
+
+<!-- The way of adding listener to the system-->
+<!-- <listener class="org.apache.axis2.ObserverIMPL">-->
+<!-- <parameter name="RSS_URL" locked="false">http://127.0.0.1/rss</parameter>-->
+<!-- </listener>-->
+
+ <!--Registering Axis Storage Class if you comment this default one will -->
+ <!--does the job (org.apache.axis2.storage.impl.AxisMemoryStorage) , if you-->
+ <!--want to register new one write a class by extanding AbastractStorage-->
+ <!--and put that name here-->
+ <axisStorage class="org.apache.axis2.storage.impl.AxisMemoryStorage">
+ <parameter name="StoreLocation" locked="false">N:S</parameter>
+ </axisStorage>
+
+
+
+ <!-- ================================================= -->
+ <!-- Message Receivers -->
+ <!-- ================================================= -->
+ <!-- This is the Deafult Message Receiver for the Request Response style Operations -->
+ <messageReceiver mep="INOUT" class="axis2_raw_xml_in_out_msg_recv">
+
+ <!-- ================================================= -->
+ <!-- Transport Ins -->
+ <!-- ================================================= -->
+ <transportReceiver name="http" class="org.apache.axis2.transport.http.SimpleHTTPServer">
+ <parameter name="port" locked="false">6060</parameter>
+ </transportReceiver>
+
+ <!-- Uncomment this one with the appropriate papameters to enable the SMTP transport Receiver
+ <transportReceiver name="mail" class="org.apache.axis2.transport.mail.SimpleMailListener">
+ <parameter name="transport.mail.pop3.host" locked="false">127.0.0.1</parameter>
+ <parameter name="transport.mail.pop3.user" locked="false">axis2</parameter>
+ <parameter name="transport.mail.pop3.password" locked="false">axis2</parameter>
+ <parameter name="transport.mail.pop3.port" locked="false">110</parameter>
+ <parameter name="transport.mail.replyToAddress" locked="false">axis2@127.0.0.1</parameter>
+ </transportReceiver> -->
+
+ <transportReceiver name="tcp" class="org.apache.axis2.transport.tcp.TCPServer">
+ <parameter name="port" locked="false">6060</parameter>
+ </transportReceiver>
+
+ <!-- ================================================= -->
+ <!-- Transport Outs -->
+ <!-- ================================================= -->
+
+ <transportSender name="tcp" class="org.apache.axis2.transport.tcp.TCPTransportSender"/>
+ <transportSender name="local" class="org.apache.axis2.transport.local.LocalTransportSender"/>
+ <transportSender name="http" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+ <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
+ </transportSender>
+ <transportSender name="https" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+ <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
+ </transportSender>
+
+ <!-- Uncomment this one with the appropriate papameters to enable the SMTP transport Receiver
+ <transportSender name="mail" class="org.apache.axis2.transport.mail.MailTransportSender">
+ <parameter name="transport.mail.smtp.host" locked="false">127.0.0.1</parameter>
+ <parameter name="transport.mail.smtp.user" locked="false">axis2</parameter>
+ <parameter name="transport.mail.smtp.password" locked="false">axis2</parameter>
+ <parameter name="transport.mail.smtp.port" locked="false">25</parameter>
+ </transportSender>
+ -->
+
+ <!-- ================================================= -->
+ <!-- Global Modules -->
+ <!-- ================================================= -->
+ <!-- Comment this to disable Addressing -->
+ <module ref="addressing"/>
+
+
+ <!--Configuring module , providing paramters for modules whether they refer or not-->
+ <!--<moduleConfig name="addressing">-->
+ <!--<parameter name="addressingPara" locked="false">N/A</parameter>-->
+ <!--</moduleConfig>-->
+
+ <!-- ================================================= -->
+ <!-- Phases -->
+ <!-- ================================================= -->
+ <phaseOrder type="inflow">
+ <!-- System pre defined phases -->
+ <phase name="TransportIn"/>
+ <phase name="PreDispatch"/>
+ <phase name="Dispatch"/>
+ <phase name="PostDispatch"/>
+ <!-- System pre defined phases -->
+ <!-- After Postdispatch phase module author or or service author can add any phase he want -->
+ <phase name="userphase1"/>
+ </phaseOrder>
+ <phaseOrder type="outflow">
+ <!-- user can add his own phases to this area -->
+ <phase name="userphase1"/>
+ </phaseOrder>
+ <phaseOrder type="INfaultflow">
+ <!-- user can add his own phases to this area -->
+ <phase name="userphase1"/>
+ </phaseOrder>
+ <phaseOrder type="Outfaultflow">
+ <!-- user can add his own phases to this area -->
+ <phase name="userphase1"/>
+ </phaseOrder>
+</axisconfig>
+
diff --git a/test/core/deployment/test_deployment.c b/test/core/deployment/test_deployment.c
new file mode 100644
index 0000000..d0730d8
--- /dev/null
+++ b/test/core/deployment/test_deployment.c
@@ -0,0 +1,360 @@
+
+/*
+ * 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.
+ */
+
+#include <stdio.h>
+#include <axis2_op.h>
+#include <axis2_module_desc.h>
+#include <axis2_phases_info.h>
+#include <stdio.h>
+#include <axis2_op.h>
+#include <axis2_dep_engine.h>
+#include <axutil_env.h>
+#include <axutil_allocator.h>
+#include <axutil_class_loader.h>
+#include <axutil_error_default.h>
+#include <axutil_log_default.h>
+#include <axis2_transport_sender.h>
+#include <axis2_transport_receiver.h>
+#include <axis2_core_utils.h>
+
+const axutil_env_t *env = NULL;
+
+int
+axis2_test_dep_engine_load(
+ )
+{
+ axis2_dep_engine_t *dep_engine = NULL;
+ axis2_conf_t *conf = NULL;
+ axutil_hash_t *svc_map = NULL;
+ axutil_array_list_t *in_phases = NULL;
+ axis2_char_t *axis2c_home = NULL;
+
+ printf("******************************************\n");
+ printf("testing dep_engine_load method \n");
+ printf("******************************************\n");
+
+ axis2c_home = AXIS2_GETENV("AXIS2C_HOME");
+ dep_engine = axis2_dep_engine_create_with_repos_name(env, axis2c_home);
+ if (!dep_engine)
+ {
+ printf("dep engine is not created \n");
+ return -1;
+ }
+ conf = axis2_dep_engine_load(dep_engine, env);
+ axis2_conf_set_dep_engine(conf, env, dep_engine);
+ if (!conf)
+ {
+ printf("conf is NULL\n)");
+ return -1;
+ }
+
+ svc_map = axis2_conf_get_all_svcs(conf, env);
+ if (svc_map)
+ printf("svc_map count = %d\n", axutil_hash_count(svc_map));
+ else
+ printf("svc_map count = zero\n");
+
+ if (svc_map)
+ {
+ axutil_hash_index_t *hi = NULL;
+ void *service = NULL;
+ for (hi = axutil_hash_first(svc_map, env);
+ hi; hi = axutil_hash_next(env, hi))
+ {
+ axutil_hash_t *ops = NULL;
+ axis2_svc_t *svc = NULL;
+ axutil_param_t *impl_info_param = NULL;
+
+ axutil_hash_this(hi, NULL, NULL, &service);
+ svc = (axis2_svc_t *) service;
+ impl_info_param =
+ axis2_svc_get_param(svc, env, AXIS2_SERVICE_CLASS);
+ if (!impl_info_param)
+ {
+ printf("imple_info_param is null\n");
+ }
+ ops = axis2_svc_get_all_ops(svc, env);
+ if (ops)
+ {
+ printf("ops count = %d\n", axutil_hash_count(ops));
+
+ axutil_hash_index_t *hi2 = NULL;
+ void *op = NULL;
+ axis2_char_t *oname = NULL;
+
+ for (hi2 = axutil_hash_first(ops, env); hi2;
+ hi2 = axutil_hash_next(env, hi2))
+ {
+ if (!hi2)
+ break;
+ axutil_hash_this(hi2, NULL, NULL, &op);
+ if (op)
+ {
+ const axutil_qname_t *qname = NULL;
+ qname = axis2_op_get_qname((axis2_op_t *) op, env);
+ oname = axutil_qname_get_localpart(qname, env);
+ printf("op name = %s\n", oname);
+ }
+ }
+ }
+ else
+ printf("ops count = zero\n");
+ }
+ }
+
+ in_phases =
+ axis2_conf_get_in_phases_upto_and_including_post_dispatch(conf, env);
+ if (!in_phases)
+ {
+ printf("in phases up to and including post dispatch is NULL\n");
+ }
+ else
+ {
+ printf("dep engine load is successfull\n");
+ }
+ axis2_conf_free(conf, env);
+
+ return 0;
+}
+
+int
+axis2_test_transport_receiver_load(
+ )
+{
+ axutil_dll_desc_t *dll_desc = NULL;
+ axis2_char_t *dll_name = NULL;
+ axis2_transport_receiver_t *transport_recv = NULL;
+ axutil_param_t *impl_info_param = NULL;
+ axis2_bool_t is_running = AXIS2_FALSE;
+ axis2_char_t *axis2c_home = NULL;
+
+ printf("******************************************\n");
+ printf("testing axis2_transport_recv load\n");
+ printf("******************************************\n");
+
+ dll_desc = axutil_dll_desc_create(env);
+
+ axis2c_home = AXIS2_GETENV("AXIS2C_HOME");
+ dll_name =
+ axutil_stracat(env, axis2c_home, "/lib/libaxis2_http_receiver.so");
+ printf("transport receiver name:%s\n", dll_name);
+ axutil_dll_desc_set_name(dll_desc, env, dll_name);
+ axutil_dll_desc_set_type(dll_desc, env, AXIS2_TRANSPORT_RECV_DLL);
+ impl_info_param = axutil_param_create(env, NULL, NULL);
+ axutil_param_set_value(impl_info_param, env, dll_desc);
+ axutil_class_loader_init(env);
+ transport_recv =
+ (axis2_transport_receiver_t *) axutil_class_loader_create_dll(env,
+ impl_info_param);
+ is_running = axis2_transport_receiver_is_running(transport_recv, env);
+ printf("is_running:%d\n", is_running);
+ AXIS2_FREE(env->allocator, dll_name);
+ printf("transport receiver load test successful\n");
+ return 0;
+}
+
+int
+axis2_test_transport_sender_load(
+ )
+{
+ axutil_dll_desc_t *dll_desc = NULL;
+ axis2_char_t *dll_name = NULL;
+ axis2_transport_sender_t *transport_sender = NULL;
+ axutil_param_t *impl_info_param = NULL;
+ axis2_char_t *axis2c_home = NULL;
+ axis2_msg_ctx_t *msg_ctx = NULL;
+
+ printf("******************************************\n");
+ printf("testing axis2_transport_sender load\n");
+ printf("******************************************\n");
+
+ msg_ctx = (axis2_msg_ctx_t *) AXIS2_MALLOC(env->allocator, 5);
+ dll_desc = axutil_dll_desc_create(env);
+
+ axis2c_home = AXIS2_GETENV("AXIS2C_HOME");
+ dll_name = axutil_stracat(env, axis2c_home, "/lib/libaxis2_http_sender.so");
+ printf("transport sender name:%s\n", dll_name);
+ axutil_dll_desc_set_name(dll_desc, env, dll_name);
+ axutil_dll_desc_set_type(dll_desc, env, AXIS2_TRANSPORT_SENDER_DLL);
+ impl_info_param = axutil_param_create(env, NULL, NULL);
+ axutil_param_set_value(impl_info_param, env, dll_desc);
+ axutil_class_loader_init(env);
+ transport_sender =
+ (axis2_transport_sender_t *) axutil_class_loader_create_dll(env,
+ impl_info_param);
+
+ AXIS2_FREE(env->allocator, dll_name);
+ printf("transport sender load test successful\n");
+ return 0;
+}
+
+int
+axis2_test_default_module_version(
+ )
+{
+
+ axis2_conf_t *axis_conf = NULL;
+ axutil_qname_t *mod_qname1 = NULL;
+ axutil_qname_t *mod_qname2 = NULL;
+ axutil_qname_t *mod_qname3 = NULL;
+ axutil_qname_t *mod_qname4 = NULL;
+ axutil_qname_t *mod_qname5 = NULL;
+ axis2_module_desc_t *module1 = NULL;
+ axis2_module_desc_t *module2 = NULL;
+ axis2_module_desc_t *module3 = NULL;
+ axis2_module_desc_t *module4 = NULL;
+ axis2_module_desc_t *module5 = NULL;
+ axis2_module_desc_t *def_mod = NULL;
+ axutil_array_list_t *engaged_modules = NULL;
+ axutil_qname_t *engage_qname = NULL;
+ axis2_bool_t found1 = AXIS2_FALSE;
+ axis2_bool_t found2 = AXIS2_FALSE;
+ axis2_bool_t found3 = AXIS2_FALSE;
+
+ printf("******************************************\n");
+ printf("testing axis2_default_module_version\n");
+ printf("******************************************\n");
+
+ axis_conf = axis2_conf_create(env);
+ mod_qname1 = axutil_qname_create(env, "module1", NULL, NULL);
+ module1 = axis2_module_desc_create_with_qname(env, mod_qname1);
+ axis2_conf_add_module(axis_conf, env, module1);
+
+ mod_qname2 = axutil_qname_create(env, "module2-0.90", NULL, NULL);
+ module2 = axis2_module_desc_create_with_qname(env, mod_qname2);
+ axis2_conf_add_module(axis_conf, env, module2);
+
+ mod_qname3 = axutil_qname_create(env, "module2-0.92", NULL, NULL);
+ module3 = axis2_module_desc_create_with_qname(env, mod_qname3);
+ axis2_conf_add_module(axis_conf, env, module3);
+
+ mod_qname4 = axutil_qname_create(env, "module2-0.91", NULL, NULL);
+ module4 = axis2_module_desc_create_with_qname(env, mod_qname4);
+ axis2_conf_add_module(axis_conf, env, module4);
+
+ mod_qname5 = axutil_qname_create(env, "test_module-1.92", NULL, NULL);
+ module5 = axis2_module_desc_create_with_qname(env, mod_qname5);
+ axis2_conf_add_module(axis_conf, env, module5);
+
+ axis2_core_utils_calculate_default_module_version(env,
+ axis2_conf_get_all_modules
+ (axis_conf, env),
+ axis_conf);
+ def_mod = axis2_conf_get_default_module(axis_conf, env, "module1");
+ if (def_mod != module1)
+ {
+ printf("axis2_default_module_version (module1) .. FAILED\n");
+ return AXIS2_FAILURE;
+ }
+ def_mod = axis2_conf_get_default_module(axis_conf, env, "module2");
+ if (def_mod != module3)
+ {
+ printf("axis2_default_module_version (module2) .. FAILED\n");
+ return AXIS2_FAILURE;
+ }
+ def_mod = axis2_conf_get_default_module(axis_conf, env, "test_module");
+ if (def_mod != module5)
+ {
+ printf("axis2_default_module_version (test_module) .. FAILED\n");
+ return AXIS2_FAILURE;
+ }
+ engage_qname = axutil_qname_create(env, "module2", NULL, NULL);
+ axis2_conf_engage_module(axis_conf, env, engage_qname);
+ axutil_qname_free(engage_qname, env);
+ engage_qname = NULL;
+
+ engage_qname = axutil_qname_create(env, "module1", NULL, NULL);
+ axis2_conf_engage_module(axis_conf, env, engage_qname);
+ axutil_qname_free(engage_qname, env);
+ engage_qname = NULL;
+
+ axis2_conf_engage_module_with_version(axis_conf, env, "test_module",
+ "1.92");
+
+ engaged_modules = axis2_conf_get_all_engaged_modules(axis_conf, env);
+
+ if (engaged_modules)
+ {
+ int list_size = 0;
+ int i = 0;
+ list_size = axutil_array_list_size(engaged_modules, env);
+ for (i = 0; i < list_size; i++)
+ {
+ axutil_qname_t *engaged_mod_qname = NULL;
+ engaged_mod_qname = axutil_array_list_get(engaged_modules, env, i);
+ if (0 == axutil_strcmp("module2-0.92",
+ axutil_qname_get_localpart(engaged_mod_qname,
+ env)))
+ {
+ found1 = AXIS2_TRUE;
+ }
+ if (0 == axutil_strcmp("module1",
+ axutil_qname_get_localpart(engaged_mod_qname,
+ env)))
+ {
+ found2 = AXIS2_TRUE;
+ }
+ if (0 == axutil_strcmp("test_module-1.92",
+ axutil_qname_get_localpart(engaged_mod_qname,
+ env)))
+ {
+ found3 = AXIS2_TRUE;
+ }
+
+ }
+ }
+ if (AXIS2_FALSE == found1)
+ {
+ printf("axis2_default_module_version (module2 engaging) .. FAILED\n");
+ return AXIS2_FAILURE;
+ }
+ if (AXIS2_FALSE == found2)
+ {
+ printf("axis2_default_module_version (module1 engaging) .. FAILED\n");
+ return AXIS2_FAILURE;
+ }
+ if (AXIS2_FALSE == found3)
+ {
+ printf
+ ("axis2_default_module_version (test_module engaging) .. FAILED\n");
+ return AXIS2_FAILURE;
+ }
+ printf("axis2_default_module_version .. SUCCESS\n");
+ axis2_conf_free(axis_conf, env);
+ return AXIS2_SUCCESS;
+}
+
+int
+main(
+ )
+{
+ axutil_allocator_t *allocator = NULL;
+ axutil_error_t *error = NULL;
+ axutil_log_t *log = NULL;
+
+ allocator = axutil_allocator_init(NULL);
+ error = axutil_error_create(allocator);
+ log = axutil_log_create(allocator, NULL, "test_deployment.log");
+ env = axutil_env_create_with_error_log(allocator, error, log);
+ env->log->level = AXIS2_LOG_LEVEL_INFO;
+ /*axis2_test_transport_receiver_load();
+ axis2_test_transport_sender_load(); */
+ axis2_test_dep_engine_load();
+ axis2_test_default_module_version();
+ return 0;
+}
diff --git a/test/core/description/Makefile.am b/test/core/description/Makefile.am
new file mode 100644
index 0000000..0241eeb
--- /dev/null
+++ b/test/core/description/Makefile.am
@@ -0,0 +1,26 @@
+TESTS = test_description
+noinst_PROGRAMS = test_description
+SUBDIRS =
+AM_CFLAGS = -g -O2 -pthread
+test_description_SOURCES = test_description.c
+
+test_description_LDADD = \
+ ../../../util/src/libaxutil.la \
+ ../../../axiom/src/om/libaxis2_axiom.la \
+ ../../../axiom/src/parser/$(WRAPPER_DIR)/libaxis2_parser.la \
+ -lpthread \
+ $(top_builddir)/neethi/src/libneethi.la \
+ $(top_builddir)/src/core/engine/libaxis2_engine.la \
+ $(top_builddir)/src/core/transport/http/common/libaxis2_http_common.la
+
+INCLUDES = -I$(top_builddir)/include \
+ -I$(top_builddir)/src/core/description \
+ -I$(top_builddir)/src/core/context \
+ -I$(top_builddir)/src/core/phaseresolver \
+ -I$(top_builddir)/src/core/deployment \
+ -I$(top_builddir)/src/core/transport \
+ -I$(top_builddir)/src/core/engine \
+ -I$(top_builddir)/src/core/clientapi \
+ -I ../../../util/include \
+ -I ../../../axiom/include
+
diff --git a/test/core/description/test_description.c b/test/core/description/test_description.c
new file mode 100644
index 0000000..17675ba
--- /dev/null
+++ b/test/core/description/test_description.c
@@ -0,0 +1,215 @@
+
+/*
+ * 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.
+ */
+
+#include <stdio.h>
+#include <axis2_op.h>
+#include <axis2_conf.h>
+#include <axis2_module_desc.h>
+#include <axis2_phases_info.h>
+#include <axutil_env.h>
+#include <axutil_allocator.h>
+
+struct axis2_module_desc *create_module_desc(
+ const axutil_env_t * env);
+
+int
+axis2_test_op_engage_module(
+ )
+{
+ struct axis2_module_desc *moduleref = NULL;
+ axis2_conf_t *conf = NULL;
+
+ axis2_status_t status = AXIS2_FAILURE;
+
+ printf("******************************************\n");
+ printf("testing axis2_op_engage_module\n");
+ printf("******************************************\n");
+
+ axutil_allocator_t *allocator = axutil_allocator_init(NULL);
+ axutil_env_t *env = axutil_env_create(allocator);
+ axis2_op_t *op = axis2_op_create(env);
+
+ moduleref = axis2_module_desc_create(env);
+ conf = axis2_conf_create(env);
+
+ status = axis2_op_engage_module(op, env, moduleref, conf);
+ moduleref = NULL;
+ if (status != AXIS2_SUCCESS)
+ {
+ axis2_op_free(op, env);
+ printf("ERROR %d\n", status);
+ }
+
+ axis2_op_free(op, env);
+ axutil_env_free(env);
+ return 0;
+}
+
+int
+axis2_test_svc_add_module_ops(
+ )
+{
+ struct axis2_svc *svc = NULL;
+ struct axutil_qname *qname = NULL;
+ struct axis2_module_desc *module_desc = NULL;
+ struct axis2_conf *axis2_config = NULL;
+
+ axis2_status_t status = AXIS2_FAILURE;
+
+ printf("******************************************\n");
+ printf("testing axis2_svc_add_module_ops\n");
+ printf("******************************************\n");
+
+ axutil_allocator_t *allocator = axutil_allocator_init(NULL);
+ const axutil_env_t *env = axutil_env_create(allocator);
+ qname = axutil_qname_create(env, "name1", NULL, NULL);
+ svc = axis2_svc_create_with_qname(env, qname);
+ module_desc = axis2_module_desc_create(env);
+ axis2_config = axis2_conf_create(env);
+ status = axis2_svc_add_module_ops(svc, env, module_desc, axis2_config);
+ if (status != AXIS2_SUCCESS)
+ {
+ printf("axis2_test_description_add_module_ops ERROR %d\n", status);
+ }
+ else
+ printf("axis2_test_add_module_ops SUCCESS\n");
+
+ axis2_svc_free(svc, env);
+ axutil_qname_free(qname, env);
+ axis2_module_desc_free(module_desc, env);
+ axis2_conf_free(axis2_config, env);
+
+ return 0;
+}
+
+int
+axis2_test_svc_engage_module(
+ )
+{
+ axis2_svc_t *svc = NULL;
+ axutil_qname_t *qname = NULL;
+ axis2_module_desc_t *moduleref = NULL;
+ axis2_conf_t *axis2_config = NULL;
+ axis2_status_t status = AXIS2_FAILURE;
+
+ printf("******************************************\n");
+ printf("testing axis2_svc_engage_module\n");
+ printf("******************************************\n");
+
+ axutil_allocator_t *allocator = axutil_allocator_init(NULL);
+ const axutil_env_t *env = axutil_env_create(allocator);
+ qname = axutil_qname_create(env, "name1", NULL, NULL);
+ svc = axis2_svc_create_with_qname(env, qname);
+ moduleref = axis2_module_desc_create(env);
+ axis2_config = axis2_conf_create(env);
+
+ status = axis2_svc_engage_module(svc, env, moduleref, axis2_config);
+ moduleref = NULL;
+ if (status != AXIS2_SUCCESS)
+ {
+ printf("axis2_test_description_svc_engage_module ERROR %d\n", status);
+ }
+ else
+ printf("axis2_test_svc_engage_module SUCCESS\n");
+
+ axis2_svc_free(svc, env);
+ axutil_qname_free(qname, env);
+ axis2_conf_free(axis2_config, env);
+
+ return 0;
+}
+
+int
+axis2_test_svc_get_op(
+ )
+{
+ struct axis2_svc *svc = NULL;
+ struct axutil_qname *qname = NULL;
+ struct axutil_hash_t *ops = NULL;
+ struct axis2_op *op = NULL;
+ axis2_status_t status = AXIS2_SUCCESS;
+
+ printf("******************************************\n");
+ printf("testing axis2_svc_get_op\n");
+ printf("******************************************\n");
+
+ axutil_allocator_t *allocator = axutil_allocator_init(NULL);
+ const axutil_env_t *env = axutil_env_create(allocator);
+ qname = axutil_qname_create(env, "op1", NULL, NULL);
+ op = axis2_op_create_with_qname(env, qname);
+ qname = axutil_qname_create(env, "svc1", NULL, NULL);
+ svc = axis2_svc_create_with_qname(env, qname);
+
+ status = axis2_svc_add_op(svc, env, op);
+
+ qname = axutil_qname_create(env, "op2", NULL, NULL);
+ op = axis2_op_create_with_qname(env, qname);
+ status = axis2_svc_add_op(svc, env, op);
+
+ ops = axis2_svc_get_all_ops(svc, env);
+
+ if (ops)
+ printf("SUCCESS AXIS2_SVC_GET_OPS\n");
+ else
+ {
+ printf("ERROR AXIS2_SVC_GET_OPS\n");
+ return -1;
+ }
+
+ if (ops)
+ {
+ printf("ops count = %d\n", axutil_hash_count(ops));
+
+ axutil_hash_index_t *hi2 = NULL;
+ void *op2 = NULL;
+ axis2_char_t *oname = NULL;
+ int count = 0;
+
+ for (hi2 = axutil_hash_first(ops, env); hi2;
+ hi2 = axutil_hash_next(env, hi2))
+ {
+ printf("count = %d \n", count++);
+ axis2_svc_get_all_ops(svc, env);
+ if (!(hi2))
+ break;
+ axutil_hash_this(hi2, NULL, NULL, &op2);
+ if (op2)
+ {
+ const axutil_qname_t *qname = NULL;
+ qname = axis2_op_get_qname((axis2_op_t *) op2, env);
+ oname = axutil_qname_get_localpart(qname, env);
+ printf("op name = %s\n", oname);
+ }
+ }
+ }
+ else
+ printf("ops count = zero\n");
+
+ return 0;
+}
+
+int
+main(
+ )
+{
+ axis2_test_op_engage_module();
+ axis2_test_svc_add_module_ops();
+ axis2_test_svc_engage_module();
+ axis2_test_svc_get_op();
+ return 0;
+}
diff --git a/test/core/engine/Makefile.am b/test/core/engine/Makefile.am
new file mode 100644
index 0000000..e6d41de
--- /dev/null
+++ b/test/core/engine/Makefile.am
@@ -0,0 +1,25 @@
+TESTS = test_engine
+check_PROGRAMS = test_engine
+noinst_PROGRAMS = test_engine
+SUBDIRS =
+AM_CFLAGS = -g -pthread
+test_engine_SOURCES = test_engine.c
+
+
+test_engine_LDADD = \
+ ../../../util/src/libaxutil.la \
+ ../../../axiom/src/om/libaxis2_axiom.la \
+ ../../../axiom/src/parser/$(WRAPPER_DIR)/libaxis2_parser.la \
+ $(top_builddir)/src/core/engine/libaxis2_engine.la \
+ $(top_builddir)/src/core/transport/http/common/libaxis2_http_common.la \
+ $(top_builddir)/neethi/src/libneethi.la
+
+INCLUDES = -I$(top_builddir)/src/xml/guththila \
+ -I$(top_builddir)/include \
+ -I$(top_builddir)/src/core/description \
+ -I$(top_builddir)/src/core/deployment \
+ -I$(top_builddir)/src/core/engine \
+ -I ../../../util/include \
+ -I ../../../axiom/include \
+ -I ../../../neethi/include
+
diff --git a/test/core/engine/test_engine.c b/test/core/engine/test_engine.c
new file mode 100644
index 0000000..4df5b1d
--- /dev/null
+++ b/test/core/engine/test_engine.c
@@ -0,0 +1,123 @@
+
+/*
+ * 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.
+ */
+
+#include <stdio.h>
+#include <axutil_env.h>
+#include <axis2_engine.h>
+#include <axis2_conf_ctx.h>
+#include <axis2_msg_ctx.h>
+#include <axis2_conf_builder.h>
+
+int
+axis2_test_engine_send(
+ )
+{
+ axis2_status_t status = AXIS2_FAILURE;
+ axutil_allocator_t *allocator = axutil_allocator_init(NULL);
+ const axutil_env_t *env = axutil_env_create(allocator);
+ struct axis2_conf *conf = NULL;
+ conf = axis2_conf_create(env);
+
+ struct axis2_conf_ctx *conf_ctx;
+ struct axis2_msg_ctx *msg_ctx;
+ struct axis2_op_ctx *op_ctx;
+ struct axis2_op *op;
+ struct axis2_svc *svc;
+ struct axis2_svc_ctx *svc_ctx;
+ struct axis2_svc_grp *svc_grp;
+ struct axis2_svc_grp_ctx *svc_grp_ctx;
+ struct axutil_qname *qname;
+
+ conf_ctx = axis2_conf_ctx_create(env, conf);
+
+ svc_grp = axis2_svc_grp_create(env);
+ svc_grp_ctx = axis2_svc_grp_ctx_create(env, svc_grp, conf_ctx);
+
+ qname = axutil_qname_create(env, "name1", NULL, NULL);
+ svc = axis2_svc_create_with_qname(env, qname);
+ svc_ctx = axis2_svc_ctx_create(env, svc, svc_grp_ctx);
+
+ op = axis2_op_create(env);
+ op_ctx = axis2_op_ctx_create(env, op, svc_ctx);
+
+ msg_ctx = axis2_msg_ctx_create(env, conf_ctx, NULL, NULL);
+
+ axis2_msg_ctx_set_conf_ctx(msg_ctx, env, conf_ctx);
+ axis2_msg_ctx_set_op_ctx(msg_ctx, env, op_ctx);
+ axis2_msg_ctx_set_svc_ctx(msg_ctx, env, svc_ctx);
+
+ axis2_engine_t *engine = axis2_engine_create(env, conf_ctx);
+ status = axis2_engine_send(engine, env, msg_ctx);
+ if (status != AXIS2_SUCCESS)
+ {
+ printf("axis2_test_engine_send ERROR %d\n", status);
+ }
+ else
+ printf("axis2_test_engine_send SUCCESS\n");
+
+ axis2_conf_ctx_free(conf_ctx, env);
+ axis2_msg_ctx_free(msg_ctx, env);
+ axutil_qname_free(qname, env);
+ axis2_svc_grp_ctx_free(svc_grp_ctx, env);
+ axis2_svc_ctx_free(svc_ctx, env);
+ axis2_svc_free(svc, env);
+ axis2_op_ctx_free(op_ctx, env);
+ axis2_op_free(op, env);
+ axis2_engine_free(engine, env);
+ return 0;
+}
+
+int
+axis2_test_engine_receive(
+ )
+{
+ axis2_status_t status = AXIS2_FAILURE;
+ axutil_allocator_t *allocator = axutil_allocator_init(NULL);
+ const axutil_env_t *env = axutil_env_create(allocator);
+ axis2_conf_t *conf = NULL;
+ conf = axis2_conf_create(env);
+
+ struct axis2_conf_ctx *conf_ctx;
+ struct axis2_msg_ctx *msg_ctx;
+ conf_ctx = axis2_conf_ctx_create(env, conf);
+
+ msg_ctx = axis2_msg_ctx_create(env, conf_ctx, NULL, NULL);
+
+ axis2_engine_t *engine = axis2_engine_create(env, conf_ctx);
+
+ status = axis2_engine_receive(engine, env, msg_ctx);
+ if (status != AXIS2_SUCCESS)
+ {
+ printf("axis2_test_engine_receive ERROR %d\n", status);
+ }
+ else
+ printf("axis2_test_engine_receive SUCCESS\n");
+ axis2_conf_ctx_free(conf_ctx, env);
+ axis2_msg_ctx_free(msg_ctx, env);
+ axis2_engine_free(engine, env);
+ return 0;
+}
+
+int
+main(
+ )
+{
+ axis2_test_engine_send();
+ axis2_test_engine_receive();
+ return 0;
+}
diff --git a/test/core/transport/Makefile.am b/test/core/transport/Makefile.am
new file mode 100644
index 0000000..b7e93db
--- /dev/null
+++ b/test/core/transport/Makefile.am
@@ -0,0 +1 @@
+SUBDIRS = http
diff --git a/test/core/transport/http/Makefile.am b/test/core/transport/http/Makefile.am
new file mode 100644
index 0000000..34eeefe
--- /dev/null
+++ b/test/core/transport/http/Makefile.am
@@ -0,0 +1,21 @@
+TESTS = test_http_transport
+check_PROGRAMS = test_http_transport
+noinst_PROGRAMS = test_http_transport
+SUBDIRS =
+AM_CFLAGS = -g -pthread
+test_http_transport_SOURCES = test_http_transport.c
+
+test_http_transport_LDADD = \
+ $(LDFLAGS) \
+ ../../../../util/src/libaxutil.la \
+ ../../../../axiom/src/om/libaxis2_axiom.la \
+ $(top_builddir)/neethi/src/libneethi.la \
+ ../../../../axiom/src/parser/$(WRAPPER_DIR)/libaxis2_parser.la \
+ $(top_builddir)/src/core/engine/libaxis2_engine.la \
+ $(top_builddir)/src/core/transport/http/sender/libaxis2_http_sender.la
+
+INCLUDES = -I${CUTEST_HOME}/include \
+ -I$(top_builddir)/include \
+ -I ../../../../util/include \
+ -I ../../../../axiom/include
+
diff --git a/test/core/transport/http/test_http_transport.c b/test/core/transport/http/test_http_transport.c
new file mode 100644
index 0000000..69134bc
--- /dev/null
+++ b/test/core/transport/http/test_http_transport.c
@@ -0,0 +1,274 @@
+
+/*
+ * 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.
+ */
+
+#include <stdio.h>
+#include <axis2_http_request_line.h>
+#include <axis2_http_status_line.h>
+#include <axis2_http_header.h>
+#include <axutil_error_default.h>
+#include <axutil_url.h>
+#include <axis2_http_client.h>
+
+typedef struct a
+{
+ axis2_char_t *value;
+}
+a;
+
+axutil_env_t *
+test_init(
+ )
+{
+ axutil_allocator_t *allocator = axutil_allocator_init(NULL);
+ axutil_error_t *error = axutil_error_create(allocator);
+ axutil_env_t *env = axutil_env_create_with_error(allocator, error);
+ return env;
+}
+
+void
+test_http_request_line(
+ const axutil_env_t * env)
+{
+ const char *request_line_str =
+ "POST http://ws.apache.org/axis2/c/services/test_svc/test_op?x=1 HTTP/1.1\r\n";
+ axis2_http_request_line_t *request_line;
+
+ printf("Starting http_request_line tests\n");
+ request_line = axis2_http_request_line_parse_line(env, request_line_str);
+ printf("Method: %s|URI: %s|HTTP Version: %s|\n",
+ axis2_http_request_line_get_method(request_line, env),
+ axis2_http_request_line_get_uri(request_line, env),
+ axis2_http_request_line_get_http_version(request_line, env));
+ axis2_http_request_line_free(request_line, env);
+ printf("Finished http_request_line tests ..........\n\n");
+}
+
+void
+test_http_status_line(
+ const axutil_env_t * env)
+{
+ const char *status_line_str = "HTTP/1.1 202 Accepted\r\n";
+ axis2_http_status_line_t *status_line;
+
+ printf("Starting http_status_line tests\n");
+ status_line = axis2_http_status_line_create(env, status_line_str);
+ printf("Staus Line starts with HTTP ? :%d\n",
+ axis2_http_status_line_starts_with_http(status_line, env));
+ printf("HTTP Version :%s|Status Code:%d|Reason Phrase:%s|\n",
+ axis2_http_status_line_get_http_version(status_line, env),
+ axis2_http_status_line_get_status_code(status_line, env),
+ axis2_http_status_line_get_reason_phrase(status_line, env));
+ printf("to_string :%s\n",
+ axis2_http_status_line_to_string(status_line, env));
+ axis2_http_status_line_free(status_line, env);
+ printf("Finished http_status_line tests ..........\n\n");
+}
+
+void
+test_http_header(
+ const axutil_env_t * env)
+{
+ const char *header_name = "Content-Type";
+ const char *header_value = "text/xml";
+ const char *str_header = "Content-Type: text/xml; charset=UTF-8\r\n";
+ axis2_http_header_t *http_header;
+ axis2_char_t *external_form = NULL;
+
+ printf("Starting http_header tests\n");
+ http_header = axis2_http_header_create(env, header_name, header_value);
+ external_form = axis2_http_header_to_external_form(http_header, env);
+ printf("Heder Name :%s|Header Value:%s|External Form:%s\n",
+ axis2_http_header_get_name(http_header, env),
+ axis2_http_header_get_value(http_header, env), external_form);
+ AXIS2_FREE(env->allocator, external_form);
+ axis2_http_header_free(http_header, env);
+
+ http_header = axis2_http_header_create_by_str(env, str_header);
+ printf("Finished http_header tests ..........\n\n");
+}
+
+void
+test_url(
+ const axutil_env_t * env)
+{
+ const axis2_char_t *str_url = "http://ws.apache.org/axis2/";
+ axutil_url_t *url = axutil_url_parse_string(env, str_url);
+ if (!url)
+ {
+ printf("URL is NULL\n");
+ return;
+ }
+ printf("Starting URL Test ....\n");
+ printf
+ ("Parsed URL : \n Protocol :%s|\n Host :%s|\n Port :%d|\n Path : %s|\n",
+ axutil_url_get_protocol(url, env), axutil_url_get_host(url, env),
+ axutil_url_get_port(url, env), axutil_url_get_path(url, env));
+ printf("End of URL Test ... \n");
+ axutil_url_free(url, env);
+}
+
+void
+test_http_client(
+ const axutil_env_t * env)
+{
+ axis2_http_client_t *client = NULL;
+ axis2_http_simple_request_t *request = NULL;
+ axis2_http_request_line_t *request_line = NULL;
+ axutil_url_t *url = NULL;
+ axis2_http_header_t *header = NULL;
+ axutil_stream_t *request_body = NULL;
+ axis2_http_simple_response_t *response = NULL;
+ int status = 0;
+ char *body_bytes = NULL;
+ int body_bytes_len = 0;
+
+ printf("Starting http_client tests\n");
+ request_line = axis2_http_request_line_create(env, "GET",
+ "/axis2/services",
+ "HTTP/1.0");
+ request_body = axutil_stream_create_basic(env);
+ request = axis2_http_simple_request_create(env, request_line,
+ NULL, 0, NULL);
+ url = axutil_url_create(env, "http", "localhost", 80, NULL);
+ header =
+ axis2_http_header_create(env, "Host", axutil_url_get_host(url, env));
+ axis2_http_simple_request_add_header(request, env, header);
+ client = axis2_http_client_create(env, url);
+
+ status = axis2_http_client_send(client, env, request, NULL);
+ if (status < 0)
+ {
+ printf("Test FAILED .........Can't send the request. Status :%d\n",
+ status);
+ return;
+ }
+ status = axis2_http_client_recieve_header(client, env);
+ if (status < 0)
+ {
+ printf("Test FAILED ......... Can't recieve. Status: %d\n", status);
+ return;
+ }
+ response = axis2_http_client_get_response(client, env);
+ if (!response)
+ {
+ printf("Test Failed : NULL response");
+ return;
+ }
+ printf("Content Type :%s\n",
+ axis2_http_simple_response_get_content_type(response, env));
+ printf("Content Length :%d\n",
+ axis2_http_simple_response_get_content_length(response, env));
+ printf("Status code :%d\n", status);
+ body_bytes_len =
+ axis2_http_simple_response_get_body_bytes(response, env, &body_bytes);
+ printf("body :%s\n", body_bytes);
+
+ axis2_http_client_free(client, env);
+ axis2_http_simple_request_free(request, env);
+ axutil_stream_free(request_body, env);
+ AXIS2_FREE(env->allocator, body_bytes);
+ printf("Finished http_client tests ..........\n\n");
+}
+
+void
+test_https_client(
+ const axutil_env_t * env)
+{
+#ifndef AXIS2_SSL_ENABLED
+ return;
+#else
+ axis2_http_client_t *client = NULL;
+ axis2_http_simple_request_t *request = NULL;
+ axis2_http_request_line_t *request_line = NULL;
+ axutil_url_t *url = NULL;
+ axis2_http_header_t *header = NULL;
+ axutil_stream_t *request_body = NULL;
+ axis2_http_simple_response_t *response = NULL;
+ int status = 0;
+ char *body_bytes = NULL;
+ int body_bytes_len = 0;
+
+ printf("Starting https_client tests\n");
+ request_line = axis2_http_request_line_create(env, "GET", "/", "HTTP/1.0");
+ request_body = axutil_stream_create_basic(env);
+ request = axis2_http_simple_request_create(env, request_line,
+ NULL, 0, NULL);
+ url = axutil_url_create(env, "https", "localhost", 9090, NULL);
+
+ header =
+ axis2_http_header_create(env, "Host", axutil_url_get_host(url, env));
+ axis2_http_simple_request_add_header(request, env, header);
+ client = axis2_http_client_create(env, url);
+
+ /* if you weant to test the proxy uncomment following */
+ /*axis2_http_client_set_proxy(client, env, "127.0.0.1", 8080); */
+
+ /* Add CA/Server certificate */
+ status = axis2_http_client_set_server_cert(client, env,
+ "/home/dummy/dummyCA/demoCA/cacert.pem");
+
+ status = axis2_http_client_send(client, env, request, NULL);
+ if (status < 0)
+ {
+ printf("Test FAILED .........Can't send the request. Status :%d\n",
+ status);
+ return;
+ }
+ status = axis2_http_client_recieve_header(client, env);
+ if (status < 0)
+ {
+ printf("Test FAILED ......... Can't recieve. Status: %d\n", status);
+ return;
+ }
+ response = axis2_http_client_get_response(client, env);
+ if (!response)
+ {
+ printf("Test Failed : NULL response");
+ return;
+ }
+ printf("Content Type :%s\n",
+ axis2_http_simple_response_get_content_type(response, env));
+ printf("Content Length :%d\n",
+ axis2_http_simple_response_get_content_length(response, env));
+ printf("Status code :%d\n", status);
+ body_bytes_len =
+ axis2_http_simple_response_get_body_bytes(response, env, &body_bytes);
+
+ axis2_http_client_free(client, env);
+ axis2_http_simple_request_free(request, env);
+ axutil_stream_free(request_body, env);
+ AXIS2_FREE(env->allocator, body_bytes);
+ printf("Finished https_client tests ..........\n\n");
+#endif
+}
+
+int
+main(
+ void)
+{
+ axutil_env_t *env = test_init();
+ test_http_request_line(env);
+ test_http_status_line(env);
+ test_http_header(env);
+ test_http_client(env);
+ test_https_client(env);
+ test_url(env);
+
+ axutil_env_free(env);
+ return 0;
+}
diff --git a/test/find_policy.c b/test/find_policy.c
new file mode 100644
index 0000000..9549fdf
--- /dev/null
+++ b/test/find_policy.c
@@ -0,0 +1,303 @@
+
+/*
+ * 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.
+ */
+
+#include <axiom_stax_builder.h>
+#include <axiom_document.h>
+#include <axiom_node.h>
+#include <axiom_element.h>
+#include <axiom_text.h>
+#include <axiom_data_source.h>
+#include <axutil_stream.h>
+#include <axutil_log_default.h>
+#include <axutil_error_default.h>
+#include <axiom_xml_reader.h>
+#include <stdio.h>
+#include <axiom_xml_writer.h>
+#include <axutil_env.h>
+ axiom_node_t * return_policy_element(axis2_char_t * name,
+ const axutil_env_t * env,
+ axis2_char_t * wsdl_name);
+ axis2_char_t * get_policy_ref(axiom_node_t * node, const axutil_env_t * env);
+ void get_all_policy(
+ axis2_char_t * element_name,
+ const axutil_env_t * env,
+ axutil_array_list_t * policy_node_list,
+ axis2_char_t * wsdl_name);
+
+
+/**
+ Define the environment related variables globaly so that they are available
+ for both functions
+*/
+ axutil_allocator_t * allocator = NULL;
+ axutil_env_t * environment = NULL;
+ axutil_stream_t * stream = NULL;
+ axutil_error_t * error = NULL;
+ axutil_log_t * axis_log = NULL;
+ FILE * f = NULL;
+ FILE * o = NULL;
+
+
+/** a method that demonstrate creating a om model using an xml file */
+ int AXIS2_CALL
+read_input(
+ char *buffer,
+ int size,
+ void *ctx)
+{
+ int len = 0;
+ char *pos = NULL;
+ len = fread(buffer, sizeof(char), size, f);
+ if (buffer)
+ pos = strstr(buffer, "---");
+ if (pos)
+
+ {
+ len = pos - buffer;
+ *pos = '\0';
+ }
+ return len;
+ }
+ int
+main(
+ int argc,
+ char *argv[])
+{
+ axutil_qname_t * qname = NULL;
+ axiom_node_t * policy_node = NULL, *node = NULL;
+ axiom_xml_writer_t * writer = NULL;
+ axiom_output_t * om_output = NULL;
+ axis2_char_t * pol_ref = NULL;
+ axiom_element_t * policy_element = NULL, *ele = NULL;
+ axiom_node_t * child_node = NULL;
+ axutil_array_list_t * policy_array = NULL;
+ char *buffer = NULL;
+ const char *file_name =
+ "C:\\OMWsdl\\wsdltest\\debug\\PolicyAttachments.wsdl";
+ const char *out_file_name = "C:\\OMWsdl\\wsdltest\\debug\\out.xml";
+ allocator = axutil_allocator_init(NULL);
+ axis_log = axutil_log_create(allocator, NULL, NULL);
+ error = axutil_error_create(allocator);
+ environment =
+ axutil_env_create_with_error_log(allocator, error, axis_log);
+ policy_array = axutil_array_list_create(environment, 10);
+
+ /*get all the policy values of "Binding_2B"*/
+ get_all_policy("Binding-2B", environment, policy_array, file_name);
+ node =
+ (axiom_node_t *) axutil_array_list_get(policy_array, environment, 2);
+ ele = (axiom_element_t *) axiom_node_get_data_element(node, environment);
+ qname = axiom_element_get_qname(ele, environment, node);
+ printf("qname %s\n", axutil_qname_get_uri(qname, environment));
+ writer =
+ axiom_xml_writer_create_for_memory(environment, NULL, AXIS2_TRUE, 0,
+ AXIS2_XML_PARSER_TYPE_BUFFER);
+ om_output = axiom_output_create(environment, writer);
+ axiom_node_serialize(node, environment, om_output);
+ buffer = (axis2_char_t *) axiom_xml_writer_get_xml(writer, environment);
+ if (buffer)
+
+ {
+
+ /*printf(outfilename);*/
+ o = fopen("C:\\OMWsdl\\wsdltest\\debug\\out.xml", "w");
+ if (!o)
+ return -1;
+ printf("Printing the Buffer...\n");
+ printf("%s", buffer);
+ fprintf(o, "<?xml version=\"1.0\" ?>\n%s", buffer);
+ }
+ axiom_output_free(om_output, environment);
+ fclose(f);
+ axutil_env_free(environment);
+ return 0;
+ }
+
+ axiom_node_t * return_policy_element(axis2_char_t * name,
+ const axutil_env_t * env,
+ axis2_char_t * wsdl_name)
+{
+ axiom_element_t * ele1 = NULL, *ele2 = NULL;
+ axiom_document_t * document = NULL;
+ axiom_node_t * node1 = NULL, *node2 = NULL, *policy_node = NULL;
+ axiom_namespace_t * ns = NULL;
+ axiom_xml_reader_t * reader = NULL;
+ axiom_stax_builder_t * builder = NULL;
+ char *buffer = NULL;
+ axiom_attribute_t * attr = NULL;
+ axis2_char_t * value = NULL;
+ axis2_char_t * val = NULL;
+ axutil_hash_t * attr_hash = NULL;
+ axis2_char_t * xml_output = NULL;
+ axutil_hash_index_t * hi;
+ f = fopen(wsdl_name, "r");
+ if (!f)
+ return NULL;
+ reader =
+ axiom_xml_reader_create_for_io(environment, read_input, NULL, NULL,
+ NULL);
+ if (!reader)
+
+ {
+ printf("ERROR CREATING PULLPARSER");
+ return NULL;
+ }
+ builder = axiom_stax_builder_create(environment, reader);
+ if (!builder)
+
+ {
+ printf("ERROR CREATING PULL PARSER");
+ return NULL;
+ }
+ document = axiom_stax_builder_get_document(builder, environment);
+ if (!document)
+ return NULL;
+ node1 = axiom_document_get_root_element(document, environment);
+ if (!node1)
+
+ {
+ printf(" root element null ");
+ axiom_stax_builder_free(builder, environment);
+ return NULL;
+ }
+
+ do
+
+ {
+ node2 = axiom_document_build_next(document, environment);
+ if (!node2)
+ break;
+ if (axiom_node_get_node_type(node2, environment) == AXIOM_ELEMENT)
+
+ {
+ ele2 =
+ (axiom_element_t *) axiom_node_get_data_element(node2,
+ environment);
+ attr_hash = axiom_element_get_all_attributes(ele2, environment);
+ if (attr_hash)
+
+ {
+ hi = axutil_hash_first(attr_hash, environment);
+ axutil_hash_this(hi, NULL, NULL, &attr);
+ if (axutil_strcmp
+ (axiom_attribute_get_value(attr, environment), name) == 0)
+
+ {
+ policy_node = node2;
+ }
+ }
+ }
+ }
+ while (node2);
+ return policy_node;
+ }
+
+ axis2_char_t * get_policy_ref(axiom_node_t * node, const axutil_env_t * env)
+{
+ axiom_element_t * policy_element = NULL;
+ axiom_children_iterator_t * children_iter = NULL;
+ axiom_node_t * child_node = NULL;
+ axutil_qname_t * qname = NULL;
+ axis2_char_t * value = NULL;
+ axis2_char_t * val = NULL;
+ axiom_attribute_t * attr = NULL;
+ policy_element =
+ (axiom_element_t *) axiom_node_get_data_element(node, env);
+ children_iter = axiom_element_get_children(policy_element, env, node);
+ while (axiom_children_iterator_has_next(children_iter, env))
+
+ {
+ child_node = axiom_children_iterator_next(children_iter, env);
+ if (axiom_node_get_node_type(child_node, environment) == AXIOM_ELEMENT)
+
+ {
+ policy_element =
+ (axiom_element_t *) axiom_node_get_data_element(child_node,
+ environment);
+ if (axutil_strcmp
+ (axiom_element_get_localname(policy_element, environment),
+ "PolicyReference") == 0)
+
+ {
+ qname = axutil_qname_create(environment, "URI", NULL, NULL);
+ attr =
+ axiom_element_get_attribute(policy_element, environment,
+ qname);
+ if (attr)
+
+ {
+ value = axiom_attribute_get_value(attr, environment);
+ val = axutil_string_substring_starting_at(value, 1);
+ return val;
+ }
+ }
+ }
+ }
+ return NULL;
+ }
+ void
+get_all_policy(
+ axis2_char_t * element_name,
+ const axutil_env_t * env,
+ axutil_array_list_t * policy_node_list,
+ axis2_char_t * wsdl_name)
+{
+ axutil_hash_t * attr_hash = NULL;
+ axutil_hash_index_t * hi = NULL;
+ axiom_element_t * element = NULL;
+ axiom_attribute_t * attribute = NULL;
+ axis2_char_t * attribute_val = NULL;
+ axiom_node_t * parent_policy_node = NULL, *parent_node = NULL;
+ parent_node = return_policy_element(element_name, env, wsdl_name);
+ if (!parent_node)
+ return;
+ parent_policy_node =
+ return_policy_element(get_policy_ref(parent_node, env), env, wsdl_name);
+ axutil_array_list_add(policy_node_list, env, parent_policy_node);
+ if (axiom_node_get_node_type(parent_node, env) == AXIOM_ELEMENT)
+
+ {
+ element =
+ (axiom_element_t *) axiom_node_get_data_element(parent_node, env);
+ attr_hash = axiom_element_get_all_attributes(element, env);
+ if (attr_hash)
+
+ {
+ hi = axutil_hash_next(env, axutil_hash_first(attr_hash, env));
+
+ do
+
+ {
+ if (hi)
+
+ {
+ axutil_hash_this(hi, NULL, NULL, &attribute);
+ attribute_val = axiom_attribute_get_value(attribute, env);
+ attribute_val = axutil_rindex(attribute_val, ':');
+ attribute_val =
+ axutil_string_substring_starting_at(attribute_val, 1);
+ get_all_policy(attribute_val, env, policy_node_list,
+ wsdl_name);
+ hi = axutil_hash_next(env, hi);
+ }
+ }
+ while (hi);
+ }
+ }
+ return;
+ }
diff --git a/test/itest/Makefile.am b/test/itest/Makefile.am
new file mode 100644
index 0000000..150a20f
--- /dev/null
+++ b/test/itest/Makefile.am
@@ -0,0 +1 @@
+SUBDIRS =
diff --git a/test/itest/whitemesa/Makefile.am b/test/itest/whitemesa/Makefile.am
new file mode 100644
index 0000000..69a9094
--- /dev/null
+++ b/test/itest/whitemesa/Makefile.am
@@ -0,0 +1,2 @@
+TESTS =
+SUBDIRS = round1 round2
diff --git a/test/itest/whitemesa/round1/Makefile.am b/test/itest/whitemesa/round1/Makefile.am
new file mode 100644
index 0000000..2aef2ac
--- /dev/null
+++ b/test/itest/whitemesa/round1/Makefile.am
@@ -0,0 +1,16 @@
+noinst_PROGRAMS = round1
+round1_SOURCES = round1_client.c
+
+round1_LDADD = $(LDFLAGS) \
+ ../../../../util/src/libaxutil.la \
+ ../../../../axiom/src/om/libaxis2_axiom.la \
+ ../../../../axiom/src/parser/$(WRAPPER_DIR)/libaxis2_parser.la \
+ $(top_builddir)/src/core/engine/libaxis2_engine.la \
+ $(top_builddir)//src/core/transport/http/sender/libaxis2_http_sender.la \
+ $(top_builddir)/src/core/transport/http/receiver/libaxis2_http_receiver.la \
+ $(top_builddir)/src/core/transport/http/common/libaxis2_http_common.la
+
+INCLUDES = -I$(top_builddir)/include \
+ -I ../../../../util/include \
+ -I ../../../../axiom/include
+
diff --git a/test/itest/whitemesa/round1/README.txt b/test/itest/whitemesa/round1/README.txt
new file mode 100644
index 0000000..821ebcb
--- /dev/null
+++ b/test/itest/whitemesa/round1/README.txt
@@ -0,0 +1,2 @@
+Execute run.sh
+service endpoint = http://www.mssoapinterop.org/asmx/simple.asmx
diff --git a/test/itest/whitemesa/round1/input b/test/itest/whitemesa/round1/input
new file mode 100644
index 0000000..13fdde9
--- /dev/null
+++ b/test/itest/whitemesa/round1/input
@@ -0,0 +1,6 @@
+String Hello string
+Float 2.4 float
+HexBinary 6A hexBinary
+Decimal 2.4 decimal
+Integer 5 int
+Date 2005-06-30T12:00:00.0000000-07:00 dateTime
diff --git a/test/itest/whitemesa/round1/round1_client.c b/test/itest/whitemesa/round1/round1_client.c
new file mode 100644
index 0000000..f298327
--- /dev/null
+++ b/test/itest/whitemesa/round1/round1_client.c
@@ -0,0 +1,258 @@
+
+/*
+ * 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.
+ */
+
+#include <stdio.h>
+#include <axiom.h>
+#include <axis2_util.h>
+#include <axiom_soap.h>
+#include <axis2_client.h>
+#include <string.h>
+
+axiom_node_t *build_soap_body_content(
+ const axutil_env_t * env,
+ const axis2_char_t * echo_operation,
+ const axis2_char_t * echo_type,
+ const axis2_char_t * word_to_echo);
+
+int
+main(
+ int argc,
+ char **argv)
+{
+ axutil_env_t *env = NULL;
+ const axis2_char_t *address = NULL;
+ axis2_endpoint_ref_t *endpoint_ref = NULL;
+ axis2_options_t *options = NULL;
+ const axis2_char_t *client_home = NULL;
+ axis2_svc_client_t *svc_client = NULL;
+ axiom_node_t *payload = NULL;
+ axiom_node_t *ret_node = NULL;
+ axiom_element_t *ret_ele = NULL;
+ axis2_char_t *om_str = NULL;
+ axis2_char_t *result = NULL;
+
+ const axis2_char_t *echo_operation = NULL;
+ const axis2_char_t *word_to_echo = NULL;
+ const axis2_char_t *echo_type = NULL;
+ axis2_char_t operation[32];
+ axis2_char_t echo_response_buff[32];
+
+ echo_operation = "String";
+ word_to_echo = "helloworld";
+ echo_type = "string";
+
+ if ((argc > 1) && (axutil_strcmp("-h", argv[1]) == 0))
+ {
+ printf("\nUsage : %s [echo_operation] [echo_value] [XSD_type]\n",
+ argv[0]);
+ printf("use -h for help\n");
+ return 0;
+ }
+
+ if (argc > 1)
+ echo_operation = argv[1];
+ if (argc > 2)
+ word_to_echo = argv[2];
+ if (argc > 3)
+ echo_type = argv[3];
+
+ /* address = "http://localhost:7070/cgi-bin/interopserver"; */
+ address = "http://easysoap.sourceforge.net/cgi-bin/interopserver";
+
+ sprintf(operation, "echo%s", echo_operation);
+
+ printf("Using endpoint : %s\n", address);
+ printf("Invoking %s with param %s\n", operation, word_to_echo);
+
+ /* Set up the environment */
+ env = axutil_env_create_all("echo.log", AXIS2_LOG_LEVEL_TRACE);
+
+ /* Create EPR with given address */
+
+ endpoint_ref = axis2_endpoint_ref_create(env, address);
+ options = axis2_options_create(env);
+ axis2_options_set_to(options, env, endpoint_ref);
+
+ /* this itest requried soap 1.1 message */
+ axis2_options_set_soap_version(options, env, AXIOM_SOAP11);
+ client_home = AXIS2_GETENV("AXIS2C_HOME");
+ if (!client_home)
+ client_home = "../../deploy";
+
+ /* Create service client */
+ svc_client = axis2_svc_client_create(env, client_home);
+ if (!svc_client)
+ {
+ printf("Error creating service client\n");
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+ "Stub invoke FAILED: Error code:" " %d :: %s",
+ env->error->error_number,
+ axutil_error_get_message(env->error));
+ }
+
+ /* Set service client options */
+ axis2_svc_client_set_options(svc_client, env, options);
+
+ payload = build_soap_body_content(env, echo_operation,
+ echo_type, word_to_echo);
+ /* Send request */
+ ret_node = axis2_svc_client_send_receive(svc_client, env, payload);
+
+ if (ret_node)
+ {
+ om_str = AXIOM_NODE_TO_STRING(ret_node, env);
+ if (om_str)
+ printf("\nRecieving OM : %s\n", om_str);
+ if (AXIOM_NODE_GET_NODE_TYPE(ret_node, env) == AXIOM_ELEMENT)
+ {
+
+ sprintf(echo_response_buff, "echo%sResponse", echo_operation);
+ ret_ele =
+ (axiom_element_t *) AXIOM_NODE_GET_DATA_ELEMENT(ret_node, env);
+ if (axutil_strcmp
+ (axiom_element_get_localname(ret_ele, env),
+ echo_response_buff) != 0)
+ {
+ printf("%s != %s\n", axiom_element_get_localname(ret_ele, env),
+ echo_response_buff);
+ printf("\nFAIL\n\n");
+ return AXIS2_FAILURE;
+ }
+
+ ret_node = AXIOM_NODE_GET_FIRST_CHILD(ret_node, env);
+ ret_ele =
+ (axiom_element_t *) AXIOM_NODE_GET_DATA_ELEMENT(ret_node, env);
+ result = axiom_element_get_text(ret_ele, env, ret_node);
+ if (!strcmp(word_to_echo, result))
+ {
+ printf("\nSUCCESS\n\n");
+ }
+ else
+ {
+ printf("\nFAIL\n\n");
+ }
+
+ }
+ else
+ {
+ printf("\nFAIL\n\n");
+ return AXIS2_FAILURE;
+ }
+ }
+ else
+ {
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+ "Stub invoke FAILED: Error code:" " %d :: %s",
+ env->error->error_number,
+ axutil_error_get_message(env->error));
+ printf("round1 stub invoke FAILED!\n");
+ return AXIS2_FAILURE;
+ }
+
+ return AXIS2_SUCCESS;
+}
+
+axiom_node_t *
+build_soap_body_content(
+ const axutil_env_t * env,
+ const axis2_char_t * echo_operation,
+ const axis2_char_t * echo_type,
+ const axis2_char_t * word_to_echo)
+{
+
+ axiom_node_t *operation_om_node = NULL;
+ axiom_element_t *operation_om_ele = NULL;
+
+ axiom_node_t *text_om_node = NULL;
+ axiom_element_t *text_om_ele = NULL;
+
+ axiom_attribute_t *attri1 = NULL;
+ axiom_namespace_t *ns0 = NULL,
+ *ns1 = NULL,
+ *ns2 = NULL,
+ *ns3 = NULL,
+ *ns4 = NULL,
+ *ns5 = NULL;
+ axis2_char_t *om_str = NULL;
+
+ axis2_char_t echo_operation_buff[32];
+ axis2_char_t input_type_buff[32];
+ axis2_char_t xsd_type_buff[32];
+
+ /*generating the requried parameters */
+ sprintf(echo_operation_buff, "echo%s", echo_operation);
+ sprintf(input_type_buff, "input%s", echo_operation);
+ sprintf(xsd_type_buff, "xsd:%s", echo_type);
+
+ ns0 =
+ axiom_namespace_create(env,
+ "http://schemas.xmlsoap.org/soap/envelope/",
+ "soapenv");
+ ns1 =
+ axiom_namespace_create(env,
+ "http://www.w3.org/2001/XMLSchema-instance",
+ "xsi");
+ ns2 =
+ axiom_namespace_create(env, "http://www.w3.org/2001/XMLSchema", "xsd");
+ ns3 =
+ axiom_namespace_create(env,
+ "http://schemas.xmlsoap.org/soap/encoding/",
+ "soapenc");
+ ns4 = axiom_namespace_create(env, "http://soapinterop.org/", "tns");
+ ns5 =
+ axiom_namespace_create(env, "http://soapinterop.org/encodedTypes",
+ "types");
+
+ operation_om_ele = axiom_element_create(env, NULL, echo_operation_buff,
+ ns4, &operation_om_node);
+
+ axiom_element_declare_namespace(operation_om_ele, env,
+ operation_om_node, ns0);
+ axiom_element_declare_namespace(operation_om_ele, env,
+ operation_om_node, ns1);
+ axiom_element_declare_namespace(operation_om_ele, env,
+ operation_om_node, ns2);
+ axiom_element_declare_namespace(operation_om_ele, env,
+ operation_om_node, ns3);
+ axiom_element_declare_namespace(operation_om_ele, env,
+ operation_om_node, ns4);
+ axiom_element_declare_namespace(operation_om_ele, env,
+ operation_om_node, ns5);
+
+ attri1 =
+ axiom_attribute_create(env, "encodingStyle",
+ "http://schemas.xmlsoap.org/soap/encoding/",
+ ns0);
+
+ operation_om_ele = AXIOM_NODE_GET_DATA_ELEMENT(operation_om_node, env);
+ axiom_element_add_attribute(operation_om_ele, env, attri1,
+ operation_om_node);
+
+ text_om_ele =
+ axiom_element_create(env, operation_om_node, input_type_buff, NULL,
+ &text_om_node);
+ attri1 = axiom_attribute_create(env, "type", xsd_type_buff, ns1);
+ axiom_element_add_attribute(text_om_ele, env, attri1, text_om_node);
+ axiom_element_set_text(text_om_ele, env, word_to_echo, text_om_node);
+
+ om_str = AXIOM_NODE_TO_STRING(operation_om_node, env);
+ if (om_str)
+ printf("\nSending OM : %s\n", om_str);
+
+ return operation_om_node;
+}
diff --git a/test/itest/whitemesa/round1/run.sh b/test/itest/whitemesa/round1/run.sh
new file mode 100644
index 0000000..433815a
--- /dev/null
+++ b/test/itest/whitemesa/round1/run.sh
@@ -0,0 +1 @@
+while read x; do ./round1 $x; done < input
diff --git a/test/itest/whitemesa/round1/todo b/test/itest/whitemesa/round1/todo
new file mode 100644
index 0000000..b5c9f6b
--- /dev/null
+++ b/test/itest/whitemesa/round1/todo
@@ -0,0 +1,19 @@
+# echoBase64
+
+# echoBoolean
+
+# echoDecimal
+
+# echoFloatArray
+
+# echoHexBinary
+
+# echoIntegerArray
+
+# echoStringArray
+
+# echoStruct
+
+# echoStructArray
+
+# echoVoid
diff --git a/test/itest/whitemesa/round2/Makefile.am b/test/itest/whitemesa/round2/Makefile.am
new file mode 100644
index 0000000..a1ec399
--- /dev/null
+++ b/test/itest/whitemesa/round2/Makefile.am
@@ -0,0 +1,15 @@
+noinst_PROGRAMS = round2
+round2_SOURCES = round2_client.c
+
+round2_LDADD = $(LDFLAGS) \
+ ../../../../util/src/libaxutil.la \
+ ../../../../axiom/src/om/libaxis2_axiom.la \
+ ../../../../axiom/src/parser/$(WRAPPER_DIR)/libaxis2_parser.la \
+ $(top_builddir)/modules/core/engine/libaxis2_engine.la \
+ $(top_builddir)/modules/core/transport/http/sender/libaxis2_http_sender.la \
+ $(top_builddir)/modules/core/transport/http/receiver/libaxis2_http_receiver.la
+
+INCLUDES = -I$(top_builddir)/include \
+ -I ../../../../util/include \
+ -I ../../../../axiom/include
+
diff --git a/test/itest/whitemesa/round2/README.txt b/test/itest/whitemesa/round2/README.txt
new file mode 100644
index 0000000..f11b48a
--- /dev/null
+++ b/test/itest/whitemesa/round2/README.txt
@@ -0,0 +1,8 @@
+In order to run this sample, you need to get a Google license key.
+Please visit http://www.google.com/apis/ for details on how to get a license key.
+
+Use the '-h' option with the sample to get help on command line options.
+e.g.
+./google -h
+
+Samisa...
diff --git a/test/itest/whitemesa/round2/input b/test/itest/whitemesa/round2/input
new file mode 100644
index 0000000..ce75f3b
--- /dev/null
+++ b/test/itest/whitemesa/round2/input
@@ -0,0 +1,6 @@
+String Hello
+Integer 3
+Float 2.4
+Decimal 2.4
+Boolean true
+Date 2005-06-30T12:00:00.0000000-07:00
diff --git a/test/itest/whitemesa/round2/readme b/test/itest/whitemesa/round2/readme
new file mode 100644
index 0000000..09ee054
--- /dev/null
+++ b/test/itest/whitemesa/round2/readme
@@ -0,0 +1 @@
+www.whitemesa.net/interop
diff --git a/test/itest/whitemesa/round2/round2_client.c b/test/itest/whitemesa/round2/round2_client.c
new file mode 100644
index 0000000..a384ea8
--- /dev/null
+++ b/test/itest/whitemesa/round2/round2_client.c
@@ -0,0 +1,251 @@
+
+/*
+ * 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.
+ */
+
+#include <stdio.h>
+#include <axiom.h>
+#include <axis2_util.h>
+#include <axiom_soap.h>
+#include <axis2_client.h>
+#include <string.h>
+
+axiom_node_t *build_soap_body_content(
+ const axutil_env_t * env,
+ const axis2_char_t * echo_operation,
+ const axis2_char_t * echo_type,
+ const axis2_char_t * word_to_echo);
+
+int
+main(
+ int argc,
+ char **argv)
+{
+ axutil_env_t *env = NULL;
+ const axis2_char_t *address = NULL;
+ axis2_endpoint_ref_t *endpoint_ref = NULL;
+ axis2_options_t *options = NULL;
+ const axis2_char_t *client_home = NULL;
+ axis2_svc_client_t *svc_client = NULL;
+ axiom_node_t *payload = NULL;
+ axiom_node_t *ret_node = NULL;
+ axiom_element_t *ret_ele = NULL;
+ axis2_char_t *om_str = NULL;
+ axis2_char_t *result = NULL;
+
+ const axis2_char_t *echo_operation = NULL;
+ const axis2_char_t *word_to_echo = NULL;
+ const axis2_char_t *echo_type = NULL;
+ axis2_char_t operation[32];
+ axis2_char_t echo_response_buff[32];
+
+ echo_operation = "String";
+ word_to_echo = "helloworld";
+ echo_type = "string";
+
+ if ((argc > 1) && (axutil_strcmp("-h", argv[1]) == 0))
+ {
+ printf("\nUsage : %s [echo_operation] [echo_value] [XSD_type]\n",
+ argv[0]);
+ printf("use -h for help\n");
+ return 0;
+ }
+
+ if (argc > 1)
+ echo_operation = argv[1];
+ if (argc > 2)
+ word_to_echo = argv[2];
+ if (argc > 3)
+ echo_type = argv[3];
+
+ /* address = "http://localhost:7070/asmx/simple.asmx"; */
+ address = "http://www.mssoapinterop.org/asmx/simple.asmx";
+
+ sprintf(operation, "echo%s", echo_operation);
+
+ printf("Using endpoint : %s\n", address);
+ printf("Invoking %s with param %s\n", operation, word_to_echo);
+
+ /* Set up the environment */
+ env = axutil_env_create_all("echo.log", AXIS2_LOG_LEVEL_TRACE);
+
+ /* Create EPR with given address */
+
+ endpoint_ref = axis2_endpoint_ref_create(env, address);
+ options = axis2_options_create(env);
+ axis2_options_set_to(options, env, endpoint_ref);
+
+ /* this itest requried soap 1.1 message */
+ axis2_options_set_soap_version(options, env, AXIOM_SOAP11);
+ client_home = AXIS2_GETENV("AXIS2C_HOME");
+ if (!client_home)
+ client_home = "../../deploy";
+
+ /* Create service client */
+ svc_client = axis2_svc_client_create(env, client_home);
+ if (!svc_client)
+ {
+ printf("Error creating service client\n");
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+ "Stub invoke FAILED: Error code:" " %d :: %s",
+ env->error->error_number,
+ axutil_error_get_message(env->error));
+ }
+
+ /* Set service client options */
+ axis2_svc_client_set_options(svc_client, env, options);
+
+ payload = build_soap_body_content(env, echo_operation,
+ echo_type, word_to_echo);
+ /* Send request */
+ ret_node = axis2_svc_client_send_receive(svc_client, env, payload);
+
+ if (ret_node)
+ {
+ om_str = AXIOM_NODE_TO_STRING(ret_node, env);
+ if (om_str)
+ printf("\nRecieving OM : %s\n", om_str);
+ if (AXIOM_NODE_GET_NODE_TYPE(ret_node, env) == AXIOM_ELEMENT)
+ {
+
+ sprintf(echo_response_buff, "echo%sResponse", echo_operation);
+ ret_ele =
+ (axiom_element_t *) AXIOM_NODE_GET_DATA_ELEMENT(ret_node, env);
+ if (axutil_strcmp
+ (axiom_element_get_localname(ret_ele, env),
+ echo_response_buff) != 0)
+ {
+ printf("%s != %s\n", axiom_element_get_localname(ret_ele, env),
+ echo_response_buff);
+ printf("\nFAIL\n\n");
+ return AXIS2_FAILURE;
+ }
+
+ ret_node = AXIOM_NODE_GET_FIRST_CHILD(ret_node, env);
+ ret_ele =
+ (axiom_element_t *) AXIOM_NODE_GET_DATA_ELEMENT(ret_node, env);
+ result = axiom_element_get_text(ret_ele, env, ret_node);
+ if (!strcmp(word_to_echo, result))
+ {
+ printf("\nSUCCESS\n\n");
+ }
+ else
+ {
+ printf("\nFAIL\n\n");
+ }
+
+ }
+ else
+ {
+ printf("\nFAIL\n\n");
+ return AXIS2_FAILURE;
+ }
+ }
+ else
+ {
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+ "Stub invoke FAILED: Error code:" " %d :: %s",
+ env->error->error_number,
+ axutil_error_get_message(env->error));
+ printf("round1 stub invoke FAILED!\n");
+ return AXIS2_FAILURE;
+ }
+
+ return AXIS2_SUCCESS;
+}
+
+axiom_node_t *
+build_soap_body_content(
+ const axutil_env_t * env,
+ const axis2_char_t * echo_operation,
+ const axis2_char_t * echo_type,
+ const axis2_char_t * word_to_echo)
+{
+
+ axiom_node_t *operation_om_node = NULL;
+ axiom_element_t *operation_om_ele = NULL;
+
+ axiom_node_t *text_om_node = NULL;
+ axiom_element_t *text_om_ele = NULL;
+
+ axiom_attribute_t *attri1 = NULL;
+ axiom_namespace_t *ns0 = NULL,
+ *ns1 = NULL,
+ *ns2 = NULL,
+ *ns3 = NULL,
+ *ns4 = NULL,
+ *ns5 = NULL;
+ axis2_char_t *om_str = NULL;
+
+ axis2_char_t echo_operation_buff[32];
+ axis2_char_t input_type_buff[32];
+
+ /*generating the requried parameters */
+ sprintf(echo_operation_buff, "echo%s", echo_operation);
+ sprintf(input_type_buff, "input%s", echo_operation);
+
+ ns0 = axiom_namespace_create(env,
+ "http://schemas.xmlsoap.org/soap/envelope/",
+ "soapenv");
+ ns1 =
+ axiom_namespace_create(env, "http://www.w3.org/2001/XMLSchema-instance",
+ "xsi");
+ ns2 =
+ axiom_namespace_create(env, "http://www.w3.org/2001/XMLSchema", "xsd");
+ ns3 =
+ axiom_namespace_create(env, "http://schemas.xmlsoap.org/soap/encoding/",
+ "soapenc");
+ ns4 = axiom_namespace_create(env, "http://soapinterop.org/", "tns");
+ ns5 = axiom_namespace_create(env,
+ "http://soapinterop.org/encodedTypes",
+ "types");
+
+ operation_om_ele = axiom_element_create(env, NULL, echo_operation_buff,
+ ns4, &operation_om_node);
+
+ axiom_element_declare_namespace(operation_om_ele, env,
+ operation_om_node, ns0);
+ axiom_element_declare_namespace(operation_om_ele, env,
+ operation_om_node, ns1);
+ axiom_element_declare_namespace(operation_om_ele, env,
+ operation_om_node, ns2);
+ axiom_element_declare_namespace(operation_om_ele, env,
+ operation_om_node, ns3);
+ axiom_element_declare_namespace(operation_om_ele, env,
+ operation_om_node, ns4);
+ axiom_element_declare_namespace(operation_om_ele, env,
+ operation_om_node, ns5);
+
+ attri1 =
+ axiom_attribute_create(env, "encodingStyle",
+ "http://schemas.xmlsoap.org/soap/encoding/",
+ ns0);
+
+ operation_om_ele = AXIOM_NODE_GET_DATA_ELEMENT(operation_om_node, env);
+ AXIOM_ELEMENT_ADD_ATTRIBUTE(operation_om_ele, env, attri1,
+ operation_om_node);
+
+ text_om_ele =
+ axiom_element_create(env, operation_om_node, input_type_buff, NULL,
+ &text_om_node);
+ axiom_element_set_text(text_om_ele, env, word_to_echo, text_om_node);
+
+ om_str = AXIOM_NODE_TO_STRING(operation_om_node, env);
+ if (om_str)
+ printf("\nSending OM : %s\n", om_str);
+
+ return operation_om_node;
+}
diff --git a/test/itest/whitemesa/round2/run.sh b/test/itest/whitemesa/round2/run.sh
new file mode 100644
index 0000000..43cef29
--- /dev/null
+++ b/test/itest/whitemesa/round2/run.sh
@@ -0,0 +1 @@
+while read x; do ./round2 $x; done < input
diff --git a/test/itest/whitemesa/round2/todo b/test/itest/whitemesa/round2/todo
new file mode 100644
index 0000000..84a0aed
--- /dev/null
+++ b/test/itest/whitemesa/round2/todo
@@ -0,0 +1,8 @@
+* echoStringArray
+* echoIntegerArray
+* echoFloatArray
+* echoStruct
+* echoStructArray
+* echoVoid
+* echoBase64
+* echoHexBinary
diff --git a/test/resources/services.xml b/test/resources/services.xml
new file mode 100644
index 0000000..0fcdf07
--- /dev/null
+++ b/test/resources/services.xml
@@ -0,0 +1,22 @@
+<serviceGroup>
+
+ <service name="add_service">
+
+ <parameter name="ServiceClass" locked="xsd:false">add.so</parameter>
+
+ <operation name="add" >
+ <messageReceiver class="libaxis2_receivers.so" />
+ </operation>
+ </service>
+
+ <service name="multiply_service">
+
+ <parameter name="ServiceClass" locked="xsd:false">multiply.so</parameter>
+
+ <operation name="multiply" >
+ <messageReceiver class="libaxis2_receivers.so" />
+ </operation>
+
+ </service>
+
+</serviceGroup>
diff --git a/test/resources/wsdl/Attachment1.wsdl b/test/resources/wsdl/Attachment1.wsdl
new file mode 100644
index 0000000..0fc52d0
--- /dev/null
+++ b/test/resources/wsdl/Attachment1.wsdl
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions targetNamespace="http://attachment1"
+ xmlns:impl="http://attachment1"
+ xmlns:intf="http://attachment1"
+ xmlns:tns2="http://xml.apache.org/xml-soap"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+
+ <wsdl:types>
+ <schema elementFormDefault="qualified"
+ targetNamespace="http://attachment1"
+ xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:impl="http://attachment1"
+ xmlns:intf="http://attachment1"
+ xmlns:tns2="http://xml.apache.org/xml-soap"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <import namespace="http://xml.apache.org/xml-soap"/>
+ <element name="put">
+ <complexType>
+ <sequence>
+ <element name="arg1" type="tns2:Image"/>
+ <element name="arg2" type="tns2:PlainText"/>
+ <element name="arg3" type="tns2:Source"/>
+ <element name="arg4" type="tns2:octet-stream"/>
+ <element name="arg5" type="tns2:DataHandler"/>
+ <!-- element name="arg6" type="tns2:MimeMultipart"/ -->
+ <element name="arg7" nillable="true" type="tns2:DataHandler"/>
+ <element name="arg8" nillable="true" type="tns2:DataHandler"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="putResponse">
+ <complexType>
+ <sequence>
+ <element name="putReturn" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ </element>
+ </schema>
+ </wsdl:types>
+
+ <wsdl:message name="putRequest">
+ <wsdl:part element="impl:put" name="parameters"/>
+ </wsdl:message>
+ <wsdl:message name="putResponse">
+ <wsdl:part element="impl:putResponse" name="parameters"/>
+ </wsdl:message>
+
+ <wsdl:portType name="AttachmentBindingImpl">
+ <wsdl:operation name="put">
+ <wsdl:input message="impl:putRequest" name="putRequest"/>
+ <wsdl:output message="impl:putResponse" name="putResponse"/>
+ </wsdl:operation>
+ </wsdl:portType>
+
+ <wsdl:binding name="Attachment1SoapBinding" type="impl:AttachmentBindingImpl">
+ <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <wsdl:operation name="put">
+ <wsdlsoap:operation soapAction=""/>
+ <wsdl:input name="putRequest">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="putResponse">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+
+ <wsdl:service name="AttachmentBindingImplService">
+ <wsdl:port binding="impl:Attachment1SoapBinding" name="Attachment1">
+ <wsdlsoap:address location="http://localhost:9080/Attachment1/services/Attachment1"/>
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/test/resources/wsdl/AttachmentService.wsdl b/test/resources/wsdl/AttachmentService.wsdl
new file mode 100644
index 0000000..b94b757
--- /dev/null
+++ b/test/resources/wsdl/AttachmentService.wsdl
@@ -0,0 +1,139 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions targetNamespace="http://attachment.test.org" xmlns:impl="http://attachment.test.org" xmlns:intf="http://attachment.test.org" xmlns:tns2="http://xml.apache.org/xml-soap" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <wsdl:types>
+ <schema elementFormDefault="qualified" targetNamespace="http://attachment.test.org" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:impl="http://attachment.test.org" xmlns:intf="http://attachment.test.org" xmlns:tns2="http://xml.apache.org/xml-soap" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <import namespace="http://xml.apache.org/xml-soap"/>
+ <element name="multiAttachment">
+ <complexType>
+ <sequence>
+ <element name="arg_0_0" nillable="true" type="tns2:DataHandler"/>
+ <element name="arg_1_0" nillable="true" type="tns2:DataHandler"/>
+ <element name="arg_2_0" nillable="true" type="tns2:Image"/>
+ <element name="arg_3_0" nillable="true" type="tns2:DataHandler"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="multiAttachmentResponse">
+ <complexType>
+ <sequence>
+ <element maxOccurs="unbounded" minOccurs="0" name="multiAttachmentReturn" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="nillableAttachment">
+ <complexType>
+ <sequence>
+ <element name="arg_0_1" nillable="true" type="tns2:DataHandler"/>
+ <element name="arg_1_1" nillable="true" type="tns2:Image"/>
+ <element name="arg_2_1" nillable="true" type="tns2:Source"/>
+ <element name="arg_3_1" nillable="true" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="nillableAttachmentResponse">
+ <complexType>
+ <sequence>
+ <element name="nillableAttachmentReturn" nillable="true" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </element>
+ </schema>
+ </wsdl:types>
+
+ <wsdl:message name="multiAttachmentResponse">
+
+ <wsdl:part element="impl:multiAttachmentResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="nillableAttachmentRequest">
+
+ <wsdl:part element="impl:nillableAttachment" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="nillableAttachmentResponse">
+
+ <wsdl:part element="impl:nillableAttachmentResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="multiAttachmentRequest">
+
+ <wsdl:part element="impl:multiAttachment" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:portType name="AttachmentService">
+
+ <wsdl:operation name="multiAttachment">
+
+ <wsdl:input message="impl:multiAttachmentRequest" name="multiAttachmentRequest"/>
+
+ <wsdl:output message="impl:multiAttachmentResponse" name="multiAttachmentResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="nillableAttachment">
+
+ <wsdl:input message="impl:nillableAttachmentRequest" name="nillableAttachmentRequest"/>
+
+ <wsdl:output message="impl:nillableAttachmentResponse" name="nillableAttachmentResponse"/>
+
+ </wsdl:operation>
+
+ </wsdl:portType>
+
+ <wsdl:binding name="AttachmentServiceSoapBinding" type="impl:AttachmentService">
+
+ <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+
+ <wsdl:operation name="multiAttachment">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="multiAttachmentRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="multiAttachmentResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="nillableAttachment">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="nillableAttachmentRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="nillableAttachmentResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ </wsdl:binding>
+
+ <wsdl:service name="AttachmentServiceService">
+
+ <wsdl:port binding="impl:AttachmentServiceSoapBinding" name="AttachmentService">
+
+ <wsdlsoap:address location="http://localhost:9080/AttachmentService/services/AttachmentService"/>
+
+ </wsdl:port>
+
+ </wsdl:service>
+
+</wsdl:definitions>
diff --git a/test/resources/wsdl/AxisBench.wsdl b/test/resources/wsdl/AxisBench.wsdl
new file mode 100644
index 0000000..3138179
--- /dev/null
+++ b/test/resources/wsdl/AxisBench.wsdl
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- (c) Copyright IBM Corp. 2004, 2005 All Rights Reserved -->
+<!-- -->
+<!-- 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
+ targetNamespace="http://axisbench.test.apache.org"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:intf="http://axisbench.test.apache.org"
+ xmlns:impl="http://axisbench.test.apache.org"
+ xmlns:apachesoap="http://xml.apache.org/xml-soap"
+ xmlns="http://schemas.xmlsoap.org/wsdl/">
+ <wsdl:types>
+ <schema
+ elementFormDefault="qualified"
+ targetNamespace="http://axisbench.test.apache.org"
+ xmlns="http://www.w3.org/2001/XMLSchema">
+ <complexType name="BenchBasicDataType">
+ <sequence>
+ <element name="StringType" type="xsd:string"/>
+ <element name="IntType" type="xsd:int"/>
+ <element name="BooleanType" type="xsd:boolean"/>
+ <element name="DoubleType" type="xsd:double"/>
+ <element name="DateTimeType" type="xsd:dateTime"/>
+ <element name="DateType" type="xsd:date"/>
+ <element name="TimeType" type="xsd:time"/>
+ <element name="Base64BinaryType" type="xsd:base64Binary"/>
+ <element name="ByteType" type="xsd:byte"/>
+ <element name="DecimalType" type="xsd:decimal"/>
+ <element name="FloatType" type="xsd:float"/>
+ <element name="HexBinary" type="xsd:hexBinary"/>
+ <element name="IntegerType" type="xsd:integer"/>
+ <element name="LongType" type="xsd:long"/>
+ <element name="QNameType" type="xsd:QName"/>
+ <element name="ShortType" type="xsd:short"/>
+
+ <!-- Not tested yet
+ -->
+
+ </sequence>
+ </complexType>
+ <complexType name="BenchDataType">
+ <sequence>
+ <element name="count" type="xsd:int"/>
+ <element maxOccurs="unbounded" name="infos" type="impl:BenchBasicDataType"/>
+ </sequence>
+ </complexType>
+
+ <element name="doBenchRequest">
+ <complexType>
+ <sequence>
+ <element name="doBench" type="impl:BenchDataType"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="doBenchRequestResponse">
+ <complexType>
+ <sequence>
+ <element name="doBench" nillable="true" type="impl:BenchDataType"/>
+ </sequence>
+ </complexType>
+ </element>
+ </schema>
+ </wsdl:types>
+ <wsdl:message name="doBenchRequest">
+ <wsdl:part name="parameters" element="intf:doBenchRequest"/>
+ </wsdl:message>
+ <wsdl:message name="doBenchResponse">
+ <wsdl:part name="parameters" element="intf:doBenchRequestResponse"/>
+ </wsdl:message>
+ <wsdl:portType name="AxisBench">
+ <wsdl:operation name="doBenchRequest">
+ <wsdl:input name="doBenchRequest" message="intf:doBenchRequest"/>
+ <wsdl:output name="doBenchResponse" message="intf:doBenchResponse"/>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="AxisBenchSoapBinding" type="intf:AxisBench">
+ <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <wsdl:operation name="doBenchRequest">
+ <wsdlsoap:operation soapAction=""/>
+ <wsdl:input name="doBenchRequest">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="doBenchResponse">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="AxisBenchSoapSvc">
+ <wsdl:port name="AxisBenchSoapImpl" binding="intf:AxisBenchSoapBinding">
+ <wsdlsoap:address location="http://localhost:9080/AxisBench/services/AxisBenchSoapImpl"/>
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/test/resources/wsdl/BasicAllTest.wsdl b/test/resources/wsdl/BasicAllTest.wsdl
new file mode 100644
index 0000000..b73800c
--- /dev/null
+++ b/test/resources/wsdl/BasicAllTest.wsdl
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="utf-8"?>
+<definitions xmlns:s1="http://soapinterop.org/xsd" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s0="http://soapinterop.org/" xmlns:s3="http://soapinterop.org/echoheader/" xmlns:soap12enc="http://www.w3.org/2002/06/soap-envelope" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s2="http://soapinterop.org" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" targetNamespace="http://soapinterop.org/" xmlns="http://schemas.xmlsoap.org/wsdl/">
+ <types>
+ <s:schema elementFormDefault="qualified" targetNamespace="http://soapinterop.org/">
+ <s:import namespace="http://soapinterop.org/xsd" />
+
+
+
+
+ <s:element name="echoAll">
+ <s:complexType>
+ <s:sequence>
+ <s:element name="inputAll" type="s1:AllComplexType" />
+ </s:sequence>
+ </s:complexType>
+ </s:element>
+ <s:element name="echoAllResponse">
+ <s:complexType>
+ <s:sequence>
+ <s:element name="return" type="s1:AllComplexType" />
+ </s:sequence>
+ </s:complexType>
+ </s:element>
+
+
+
+ </s:schema>
+
+ <s:schema elementFormDefault="qualified" targetNamespace="http://soapinterop.org/xsd">
+ <s:import namespace="http://soapinterop.org/" />
+
+ <s:complexType name="AllComplexType">
+ <s:all>
+ <s:element minOccurs="0" name="IntValue" type="s:int" />
+ <s:element minOccurs="0" name="StringValue" type="s:string" />
+ </s:all>
+ </s:complexType>
+ </s:schema>
+
+ </types>
+
+
+
+ <message name="echoAllSoapIn">
+ <part name="parameters" element="s0:echoAll" />
+ </message>
+ <message name="echoAllSoapOut">
+ <part name="parameters" element="s0:echoAllResponse" />
+ </message>
+
+ <portType name="AllTestSoap">
+
+
+ <operation name="echoAll">
+ <input message="s0:echoAllSoapIn" />
+ <output message="s0:echoAllSoapOut" />
+ </operation>
+
+ </portType>
+
+
+ <binding name="AllTestSoap" type="s0:AllTestSoap">
+ <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
+
+ <operation name="echoAll">
+ <soap:operation soapAction="SimpleAllTest#echoAll" style="document" />
+ <input>
+ <soap:body use="literal" />
+ </input>
+ <output>
+ <soap:body use="literal" />
+ </output>
+ </operation>
+
+ </binding>
+
+<binding name="AllTestSoap12" type="s0:AllTestSoap">
+ <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
+
+
+ <operation name="echoAll">
+ <soap12:operation soapAction="All#echoAll" style="document" />
+ <input>
+ <soap12:body use="literal" />
+ </input>
+ <output>
+ <soap12:body use="literal" />
+ </output>
+ </operation>
+
+ </binding>
+
+<service name="AllTest">
+ <documentation>These operations implement DOC/LIT SOAP operations, for interop testing. Please email johnko@microsoft.com with any questions/coments.</documentation>
+ <port name="AllTestSoap" binding="s0:AllTestSoap">
+ <soap:address location="http://localhost:90/axis/All" />
+ </port>
+ <port name="AllTestSoap12" binding="s0:AllTestSoap12">
+ <soap12:address location="http://localhost:90/axis/All" />
+ </port>
+ </service>
+</definitions> \ No newline at end of file
diff --git a/test/resources/wsdl/BasicChoice.wsdl b/test/resources/wsdl/BasicChoice.wsdl
new file mode 100644
index 0000000..d04d0c3
--- /dev/null
+++ b/test/resources/wsdl/BasicChoice.wsdl
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="utf-8"?>
+<definitions xmlns:s1="http://soapinterop.org/xsd" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s0="http://soapinterop.org/" xmlns:s3="http://soapinterop.org/echoheader/" xmlns:soap12enc="http://www.w3.org/2002/06/soap-envelope" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s2="http://soapinterop.org" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" targetNamespace="http://soapinterop.org/" xmlns="http://schemas.xmlsoap.org/wsdl/">
+ <types>
+ <s:schema elementFormDefault="qualified" targetNamespace="http://soapinterop.org/">
+ <s:import namespace="http://soapinterop.org/xsd" />
+
+
+
+
+ <s:element name="echoChoice">
+ <s:complexType>
+ <s:sequence>
+ <s:element minOccurs="0" maxOccurs="1" name="inputChoice" type="s1:ChoiceComplexType" />
+ </s:sequence>
+ </s:complexType>
+ </s:element>
+ <s:element name="echoChoiceResponse">
+ <s:complexType>
+ <s:sequence>
+ <s:element minOccurs="0" maxOccurs="1" name="return" type="s1:ChoiceComplexType" />
+ </s:sequence>
+ </s:complexType>
+ </s:element>
+
+
+
+ </s:schema>
+
+ <s:schema elementFormDefault="qualified" targetNamespace="http://soapinterop.org/xsd">
+ <s:import namespace="http://soapinterop.org/" />
+
+ <s:complexType name="ChoiceComplexType">
+ <s:sequence>
+ <s:choice minOccurs="1" maxOccurs="1">
+ <s:element minOccurs="0" maxOccurs="1" name="name0" type="s:string" />
+ <s:element minOccurs="0" maxOccurs="1" name="name1" type="s:string" />
+ </s:choice>
+ </s:sequence>
+ </s:complexType>
+ </s:schema>
+
+ </types>
+
+
+
+ <message name="echoChoiceSoapIn">
+ <part name="parameters" element="s0:echoChoice" />
+ </message>
+ <message name="echoChoiceSoapOut">
+ <part name="parameters" element="s0:echoChoiceResponse" />
+ </message>
+
+ <portType name="ChoiceTestSoap">
+
+
+ <operation name="echoChoice">
+ <input message="s0:echoChoiceSoapIn" />
+ <output message="s0:echoChoiceSoapOut" />
+ </operation>
+
+ </portType>
+
+
+ <binding name="ChoiceTestSoap" type="s0:ChoiceTestSoap">
+ <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
+
+ <operation name="echoChoice">
+ <soap:operation soapAction="Choice#echoChoice" style="document" />
+ <input>
+ <soap:body use="literal" />
+ </input>
+ <output>
+ <soap:body use="literal" />
+ </output>
+ </operation>
+
+ </binding>
+
+<binding name="ChoiceTestSoap12" type="s0:ChoiceTestSoap">
+ <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
+
+
+ <operation name="echoChoice">
+ <soap12:operation soapAction="Choice#echoChoice" style="document" />
+ <input>
+ <soap12:body use="literal" />
+ </input>
+ <output>
+ <soap12:body use="literal" />
+ </output>
+ </operation>
+
+ </binding>
+
+<service name="ChoiceTest">
+ <documentation>These operations implement DOC/LIT SOAP operations, for interop testing. Please email johnko@microsoft.com with any questions/coments.</documentation>
+ <port name="ChoiceTestSoap" binding="s0:ChoiceTestSoap">
+ <soap:address location="http://localhost:90/axis/Choice" />
+ </port>
+ <port name="ChoiceTestSoap12" binding="s0:ChoiceTestSoap12">
+ <soap12:address location="http://localhost:90/axis/Choice" />
+ </port>
+ </service>
+</definitions> \ No newline at end of file
diff --git a/test/resources/wsdl/Calculator.wsdl b/test/resources/wsdl/Calculator.wsdl
new file mode 100644
index 0000000..a485386
--- /dev/null
+++ b/test/resources/wsdl/Calculator.wsdl
@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- -->
+<!-- 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 targetNamespace="http://localhost/axis/Calculator"
+xmlns="http://schemas.xmlsoap.org/wsdl/"
+xmlns:apachesoap="http://xml.apache.org/xml-soap"
+xmlns:impl="http://localhost/axis/Calculator"
+xmlns:intf="http://localhost/axis/Calculator"
+xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
+xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
+xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <wsdl:message name="addRequest">
+ <wsdl:part name="in0" type="xsd:int"/>
+ <wsdl:part name="in1" type="xsd:int"/>
+ </wsdl:message>
+ <wsdl:message name="addResponse">
+ <wsdl:part name="addReturn" type="xsd:int"/>
+ </wsdl:message>
+ <wsdl:message name="subResponse">
+ <wsdl:part name="subReturn" type="xsd:int"/>
+ </wsdl:message>
+ <wsdl:message name="subRequest">
+ <wsdl:part name="in0" type="xsd:int"/>
+ <wsdl:part name="in1" type="xsd:int"/>
+ </wsdl:message>
+ <wsdl:message name="mulRequest">
+ <wsdl:part name="in0" type="xsd:int"/>
+ <wsdl:part name="in1" type="xsd:int"/>
+ </wsdl:message>
+ <wsdl:message name="mulResponse">
+ <wsdl:part name="mulReturn" type="xsd:int"/>
+ </wsdl:message>
+ <wsdl:message name="divRequest">
+ <wsdl:part name="in0" type="xsd:int"/>
+ <wsdl:part name="in1" type="xsd:int"/>
+ </wsdl:message>
+ <wsdl:message name="divResponse">
+ <wsdl:part name="divReturn" type="xsd:int"/>
+ </wsdl:message>
+ <wsdl:portType name="Calculator">
+ <wsdl:operation name="add" parameterOrder="in0 in1">
+ <wsdl:input message="intf:addRequest" name="addRequest"/>
+ <wsdl:output message="intf:addResponse" name="addResponse"/>
+ </wsdl:operation>
+ <wsdl:operation name="sub" parameterOrder="in0 in1">
+ <wsdl:input message="intf:subRequest" name="subRequest"/>
+ <wsdl:output message="intf:subResponse" name="subResponse"/>
+ </wsdl:operation>
+ <wsdl:operation name="mul" parameterOrder="in0 in1">
+ <wsdl:input message="intf:mulRequest" name="mulRequest"/>
+ <wsdl:output message="intf:mulResponse" name="mulResponse"/>
+ </wsdl:operation>
+ <wsdl:operation name="div" parameterOrder="in0 in1">
+ <wsdl:input message="intf:divRequest" name="divRequest"/>
+ <wsdl:output message="intf:divResponse" name="divResponse"/>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="CalculatorSoapBinding" type="intf:Calculator">
+ <wsdlsoap:binding style="rpc"
+ transport="http://schemas.xmlsoap.org/soap/http"/>
+ <wsdl:operation name="add">
+ <wsdlsoap:operation soapAction="Calculator#add"/>
+ <wsdl:input name="addRequest">
+ <wsdlsoap:body
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ namespace="http://localhost/axis/Calculator"
+ use="encoded"/>
+ </wsdl:input>
+ <wsdl:output name="addResponse">
+ <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ namespace="http://localhost/axis/Calculator"
+ use="encoded"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="sub">
+ <wsdlsoap:operation soapAction="Calculator#sub"/>
+ <wsdl:input name="subRequest">
+ <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ namespace="http://localhost/axis/Calculator"
+ use="encoded"/>
+ </wsdl:input>
+ <wsdl:output name="subResponse">
+ <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ namespace="http://localhost/axis/Calculator"
+ use="encoded"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="mul">
+ <wsdlsoap:operation soapAction="Calculator#mul"/>
+ <wsdl:input name="mulRequest">
+ <wsdlsoap:body
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ namespace="http://localhost/axis/Calculator"
+ use="encoded"/>
+ </wsdl:input>
+ <wsdl:output name="mulResponse">
+ <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ namespace="http://localhost/axis/Calculator"
+ use="encoded"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="div">
+ <wsdlsoap:operation soapAction="Calculator#div"/>
+ <wsdl:input name="divRequest">
+ <wsdlsoap:body
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ namespace="http://localhost/axis/Calculator"
+ use="encoded"/>
+ </wsdl:input>
+ <wsdl:output name="divResponse">
+ <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ namespace="http://localhost/axis/Calculator"
+ use="encoded"/>
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="Calculator">
+ <wsdl:port binding="intf:CalculatorSoapBinding" name="Calculator">
+ <wsdlsoap:address location="http://localhost/axis/Calculator"/>
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/test/resources/wsdl/CalculatorDoc.wsdl b/test/resources/wsdl/CalculatorDoc.wsdl
new file mode 100644
index 0000000..5600279
--- /dev/null
+++ b/test/resources/wsdl/CalculatorDoc.wsdl
@@ -0,0 +1,255 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- (c) Copyright IBM Corp. 2004, 2005 All Rights Reserved -->
+<!-- -->
+<!-- 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 targetNamespace="http://localhost/axis/Calculator" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://localhost/axis/Calculator" xmlns:intf="http://localhost/axis/Calculator" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <wsdl:types>
+ <schema elementFormDefault="qualified" targetNamespace="http://localhost/axis/Calculator" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://localhost/axis/Calculator" xmlns:intf="http://localhost/axis/Calculator" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+ <element name="add">
+ <complexType>
+ <sequence>
+ <element name="arg_0_0" type="xsd:int"/>
+ <element name="arg_1_0" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="addResponse">
+ <complexType>
+ <sequence>
+ <element name="addReturn" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="sub">
+ <complexType>
+ <sequence>
+ <element name="arg_0_1" type="xsd:int"/>
+ <element name="arg_1_1" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="subResponse">
+ <complexType>
+ <sequence>
+ <element name="subReturn" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="mul">
+ <complexType>
+ <sequence>
+ <element name="arg_0_2" type="xsd:int"/>
+ <element name="arg_1_2" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="mulResponse">
+ <complexType>
+ <sequence>
+ <element name="mulReturn" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="div">
+ <complexType>
+ <sequence>
+ <element name="arg_0_3" type="xsd:int"/>
+ <element name="arg_1_3" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="divResponse">
+ <complexType>
+ <sequence>
+ <element name="divReturn" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ </element>
+ </schema>
+ </wsdl:types>
+
+ <wsdl:message name="subResponse">
+
+ <wsdl:part element="impl:subResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="mulResponse">
+
+ <wsdl:part element="impl:mulResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="subRequest">
+
+ <wsdl:part element="impl:sub" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="divRequest">
+
+ <wsdl:part element="impl:div" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="divResponse">
+
+ <wsdl:part element="impl:divResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="mulRequest">
+
+ <wsdl:part element="impl:mul" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="addResponse">
+
+ <wsdl:part element="impl:addResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="addRequest">
+
+ <wsdl:part element="impl:add" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:portType name="Calculator">
+
+ <wsdl:operation name="add">
+
+ <wsdl:input message="impl:addRequest" name="addRequest"/>
+
+ <wsdl:output message="impl:addResponse" name="addResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="sub">
+
+ <wsdl:input message="impl:subRequest" name="subRequest"/>
+
+ <wsdl:output message="impl:subResponse" name="subResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="mul">
+
+ <wsdl:input message="impl:mulRequest" name="mulRequest"/>
+
+ <wsdl:output message="impl:mulResponse" name="mulResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="div">
+
+ <wsdl:input message="impl:divRequest" name="divRequest"/>
+
+ <wsdl:output message="impl:divResponse" name="divResponse"/>
+
+ </wsdl:operation>
+
+ </wsdl:portType>
+
+ <wsdl:binding name="CalculatorSoapBinding" type="impl:Calculator">
+
+ <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+
+ <wsdl:operation name="add">
+
+ <wsdlsoap:operation soapAction="Calculator#add"/>
+
+ <wsdl:input name="addRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="addResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="sub">
+
+ <wsdlsoap:operation soapAction="Calculator#sub"/>
+
+ <wsdl:input name="subRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="subResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="mul">
+
+ <wsdlsoap:operation soapAction="Calculator#mul"/>
+
+ <wsdl:input name="mulRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="mulResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="div">
+
+ <wsdlsoap:operation soapAction="Calculator#div"/>
+
+ <wsdl:input name="divRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="divResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ </wsdl:binding>
+
+ <wsdl:service name="Calculator">
+
+ <wsdl:port binding="impl:CalculatorSoapBinding" name="Calculator">
+
+ <wsdlsoap:address location="http://localhost/axis/Calculator"/>
+
+ </wsdl:port>
+
+ </wsdl:service>
+
+</wsdl:definitions>
diff --git a/test/resources/wsdl/Choice.wsdl b/test/resources/wsdl/Choice.wsdl
new file mode 100644
index 0000000..1b52f8c
--- /dev/null
+++ b/test/resources/wsdl/Choice.wsdl
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="utf-8"?>
+<definitions xmlns:s1="http://soapinterop.org/xsd" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s0="http://soapinterop.org/" xmlns:s3="http://soapinterop.org/echoheader/" xmlns:soap12enc="http://www.w3.org/2002/06/soap-envelope" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s2="http://soapinterop.org" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" targetNamespace="http://soapinterop.org/" xmlns="http://schemas.xmlsoap.org/wsdl/">
+ <types>
+ <s:schema elementFormDefault="qualified" targetNamespace="http://soapinterop.org/">
+ <s:import namespace="http://soapinterop.org/xsd" />
+
+
+
+
+ <s:element name="echoChoice">
+ <s:complexType>
+ <s:sequence>
+ <s:element minOccurs="0" maxOccurs="1" name="inputChoice" type="s1:ChoiceComplexType" />
+ </s:sequence>
+ </s:complexType>
+ </s:element>
+ <s:element name="echoChoiceResponse">
+ <s:complexType>
+ <s:sequence>
+ <s:element minOccurs="0" maxOccurs="1" name="return" type="s1:ChoiceComplexType" />
+ </s:sequence>
+ </s:complexType>
+ </s:element>
+
+
+
+ </s:schema>
+
+ <s:schema elementFormDefault="qualified" targetNamespace="http://soapinterop.org/xsd">
+ <s:import namespace="http://soapinterop.org/" />
+
+ <s:complexType name="ChoiceComplexType">
+ <s:sequence>
+ <s:choice minOccurs="1" maxOccurs="1">
+ <s:element minOccurs="0" maxOccurs="1" name="name0" type="s:string" />
+ <s:element minOccurs="0" maxOccurs="1" name="name1" type="s:string" />
+ </s:choice>
+ </s:sequence>
+ </s:complexType>
+ </s:schema>
+
+ </types>
+
+
+
+ <message name="echoChoiceSoapIn">
+ <part name="parameters" element="s0:echoChoice" />
+ </message>
+ <message name="echoChoiceSoapOut">
+ <part name="parameters" element="s0:echoChoiceResponse" />
+ </message>
+
+ <portType name="ChoiceTestSoap">
+
+
+ <operation name="echoChoice">
+ <input message="s0:echoChoiceSoapIn" />
+ <output message="s0:echoChoiceSoapOut" />
+ </operation>
+
+ </portType>
+
+
+ <binding name="ChoiceTestSoap" type="s0:ChoiceTestSoap">
+ <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
+
+ <operation name="echoChoice">
+ <soap:operation soapAction="Choice#echoChoice" style="document" />
+ <input>
+ <soap:body use="literal" />
+ </input>
+ <output>
+ <soap:body use="literal" />
+ </output>
+ </operation>
+
+ </binding>
+
+<binding name="ChoiceTestSoap12" type="s0:ChoiceTestSoap">
+ <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
+
+
+ <operation name="echoChoice">
+ <soap12:operation soapAction="Choice#echoChoice" style="document" />
+ <input>
+ <soap12:body use="literal" />
+ </input>
+ <output>
+ <soap12:body use="literal" />
+ </output>
+ </operation>
+
+ </binding>
+
+<service name="ChoiceTest">
+ <documentation>These operations implement DOC/LIT SOAP operations, for interop testing. Please email johnko@microsoft.com with any questions/coments.</documentation>
+ <port name="ChoiceTestSoap" binding="s0:ChoiceTestSoap">
+ <soap:address location="http://localhost:90/axis/Choice" />
+ </port>
+ <port name="ChoiceTestSoap12" binding="s0:ChoiceTestSoap12">
+ <soap12:address location="http://localhost:90/axis/Choice" />
+ </port>
+ </service>
+</definitions> \ No newline at end of file
diff --git a/test/resources/wsdl/CombinedAllTest.wsdl b/test/resources/wsdl/CombinedAllTest.wsdl
new file mode 100644
index 0000000..be07bc5
--- /dev/null
+++ b/test/resources/wsdl/CombinedAllTest.wsdl
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="utf-8"?>
+<definitions xmlns:s1="http://soapinterop.org/xsd" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s0="http://soapinterop.org/" xmlns:s3="http://soapinterop.org/echoheader/" xmlns:soap12enc="http://www.w3.org/2002/06/soap-envelope" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s2="http://soapinterop.org" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" targetNamespace="http://soapinterop.org/" xmlns="http://schemas.xmlsoap.org/wsdl/">
+ <types>
+ <s:schema elementFormDefault="qualified" targetNamespace="http://soapinterop.org/">
+ <s:import namespace="http://soapinterop.org/xsd" />
+
+
+
+
+ <s:element name="echoAll">
+ <s:complexType>
+ <s:sequence>
+ <s:element name="inputAll" type="s1:AllComplexType" />
+ </s:sequence>
+ </s:complexType>
+ </s:element>
+ <s:element name="echoAllResponse">
+ <s:complexType>
+ <s:sequence>
+ <s:element name="return" type="s1:AllComplexType" />
+ </s:sequence>
+ </s:complexType>
+ </s:element>
+
+
+
+ </s:schema>
+
+ <s:schema elementFormDefault="qualified" targetNamespace="http://soapinterop.org/xsd">
+ <s:import namespace="http://soapinterop.org/" />
+
+ <s:complexType name="AllComplexType">
+ <s:sequence>
+ <s:element minOccurs="1" maxOccurs="1" name="NonAllIntValue" type="s:int" />
+
+ <s:element name="Value0" type="s:int" />
+ <s:element minOccurs="0" name="Value1" type="s:int" />
+ <s:element minOccurs="0" name="Value2" type="s:string" />
+
+ <s:element minOccurs="1" maxOccurs="1" name="NonAllStringValue" type="s:string" />
+ </s:sequence>
+ </s:complexType>
+ </s:schema>
+
+ </types>
+
+
+
+ <message name="echoAllSoapIn">
+ <part name="parameters" element="s0:echoAll" />
+ </message>
+ <message name="echoAllSoapOut">
+ <part name="parameters" element="s0:echoAllResponse" />
+ </message>
+
+ <portType name="AllTestSoap">
+
+
+ <operation name="echoAll">
+ <input message="s0:echoAllSoapIn" />
+ <output message="s0:echoAllSoapOut" />
+ </operation>
+
+ </portType>
+
+
+ <binding name="AllTestSoap" type="s0:AllTestSoap">
+ <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
+
+ <operation name="echoAll">
+ <soap:operation soapAction="SimpleAllTest#echoAll" style="document" />
+ <input>
+ <soap:body use="literal" />
+ </input>
+ <output>
+ <soap:body use="literal" />
+ </output>
+ </operation>
+
+ </binding>
+
+<binding name="AllTestSoap12" type="s0:AllTestSoap">
+ <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
+
+
+ <operation name="echoAll">
+ <soap12:operation soapAction="All#echoAll" style="document" />
+ <input>
+ <soap12:body use="literal" />
+ </input>
+ <output>
+ <soap12:body use="literal" />
+ </output>
+ </operation>
+
+ </binding>
+
+<service name="AllTest">
+ <documentation>These operations implement DOC/LIT SOAP operations, for interop testing. Please email johnko@microsoft.com with any questions/coments.</documentation>
+ <port name="AllTestSoap" binding="s0:AllTestSoap">
+ <soap:address location="http://localhost:90/axis/All" />
+ </port>
+ <port name="AllTestSoap12" binding="s0:AllTestSoap12">
+ <soap12:address location="http://localhost:90/axis/All" />
+ </port>
+ </service>
+</definitions> \ No newline at end of file
diff --git a/test/resources/wsdl/CombinedChoice.wsdl b/test/resources/wsdl/CombinedChoice.wsdl
new file mode 100644
index 0000000..f11939a
--- /dev/null
+++ b/test/resources/wsdl/CombinedChoice.wsdl
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="utf-8"?>
+<definitions xmlns:s1="http://soapinterop.org/xsd" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s0="http://soapinterop.org/" xmlns:s3="http://soapinterop.org/echoheader/" xmlns:soap12enc="http://www.w3.org/2002/06/soap-envelope" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s2="http://soapinterop.org" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" targetNamespace="http://soapinterop.org/" xmlns="http://schemas.xmlsoap.org/wsdl/">
+ <types>
+ <s:schema elementFormDefault="qualified" targetNamespace="http://soapinterop.org/">
+ <s:import namespace="http://soapinterop.org/xsd" />
+
+
+
+
+ <s:element name="echoChoice">
+ <s:complexType>
+ <s:sequence>
+ <s:element minOccurs="0" maxOccurs="1" name="inputChoice" type="s1:ChoiceComplexType" />
+ </s:sequence>
+ </s:complexType>
+ </s:element>
+ <s:element name="echoChoiceResponse">
+ <s:complexType>
+ <s:sequence>
+ <s:element minOccurs="0" maxOccurs="1" name="return" type="s1:ChoiceComplexType" />
+ </s:sequence>
+ </s:complexType>
+ </s:element>
+
+
+
+ </s:schema>
+
+ <s:schema elementFormDefault="qualified" targetNamespace="http://soapinterop.org/xsd">
+ <s:import namespace="http://soapinterop.org/" />
+
+ <s:complexType name="ChoiceComplexType">
+ <s:sequence>
+
+ <s:element minOccurs="1" maxOccurs="1" name="NonChoiceIntValue" type="s:int" />
+
+ <s:choice minOccurs="1" maxOccurs="1">
+ <s:element minOccurs="0" maxOccurs="1" name="IntValue" type="s:int" />
+ <s:element minOccurs="0" maxOccurs="1" name="StringValue" type="s:string" />
+ </s:choice>
+
+ <s:element minOccurs="1" maxOccurs="1" name="NonChoiceStringValue" type="s:string" />
+
+ </s:sequence>
+ </s:complexType>
+ </s:schema>
+
+ </types>
+
+
+
+ <message name="echoChoiceSoapIn">
+ <part name="parameters" element="s0:echoChoice" />
+ </message>
+ <message name="echoChoiceSoapOut">
+ <part name="parameters" element="s0:echoChoiceResponse" />
+ </message>
+
+ <portType name="ChoiceTestSoap">
+
+
+ <operation name="echoChoice">
+ <input message="s0:echoChoiceSoapIn" />
+ <output message="s0:echoChoiceSoapOut" />
+ </operation>
+
+ </portType>
+
+
+ <binding name="ChoiceTestSoap" type="s0:ChoiceTestSoap">
+ <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
+
+ <operation name="echoChoice">
+ <soap:operation soapAction="SimpleChoiceTest#echoChoice" style="document" />
+ <input>
+ <soap:body use="literal" />
+ </input>
+ <output>
+ <soap:body use="literal" />
+ </output>
+ </operation>
+
+ </binding>
+
+<binding name="ChoiceTestSoap12" type="s0:ChoiceTestSoap">
+ <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
+
+
+ <operation name="echoChoice">
+ <soap12:operation soapAction="Choice#echoChoice" style="document" />
+ <input>
+ <soap12:body use="literal" />
+ </input>
+ <output>
+ <soap12:body use="literal" />
+ </output>
+ </operation>
+
+ </binding>
+
+<service name="ChoiceTest">
+ <documentation>These operations implement DOC/LIT SOAP operations, for interop testing. Please email johnko@microsoft.com with any questions/coments.</documentation>
+ <port name="ChoiceTestSoap" binding="s0:ChoiceTestSoap">
+ <soap:address location="http://localhost:90/axis/Choice" />
+ </port>
+ <port name="ChoiceTestSoap12" binding="s0:ChoiceTestSoap12">
+ <soap12:address location="http://localhost:90/axis/Choice" />
+ </port>
+ </service>
+</definitions> \ No newline at end of file
diff --git a/test/resources/wsdl/ComplexLists.wsdl b/test/resources/wsdl/ComplexLists.wsdl
new file mode 100644
index 0000000..21674dc
--- /dev/null
+++ b/test/resources/wsdl/ComplexLists.wsdl
@@ -0,0 +1,192 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- (c) Copyright IBM Corp. 2004, 2005 All Rights Reserved -->
+<!-- -->
+<!-- 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 targetNamespace="http://complexlist.test.apache.org" xmlns:impl="http://complexlist.test.apache.org" xmlns:intf="http://complexlist.test.apache.org" xmlns:tns2="http://complexlistservice.test.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">
+ <wsdl:types>
+ <schema elementFormDefault="qualified" targetNamespace="http://complexlistservice.test.apache.org" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:impl="http://complexlistImpl.test.apache.org" xmlns:intf="http://complexlistIntf.test.apache.org" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <complexType name="m_list">
+ <sequence>
+ <element maxOccurs="unbounded" name="item" nillable="true" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ <complexType name="attrlist">
+ <sequence>
+ <element maxOccurs="unbounded" name="item" nillable="true" type="tns2:namepair"/>
+ </sequence>
+ </complexType>
+ <complexType name="namepair">
+ <sequence>
+ <element name="m_list" nillable="true" type="tns2:m_list"/>
+ <element name="name" nillable="true" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ <complexType name="attrlisterr">
+ <sequence>
+ <element name="attrlist" nillable="true" type="tns2:attrlist"/>
+ <element name="errorcode" type="xsd:int"/>
+ <element name="errortext" nillable="true" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </schema>
+ <schema elementFormDefault="qualified" targetNamespace="http://complexlist.test.apache.org" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:impl="http://complexlistImpl2.test.apache.org" xmlns:intf="http://complexlistIntf2.test.apache.org" xmlns:tns2="http://complexlistservice.test.apache.org" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <import namespace="http://complexlistservice.test.apache.org"/>
+ <element name="multilist">
+ <complexType>
+ <sequence>
+ <element name="arg_0_0" nillable="true" type="tns2:m_list"/>
+ <element name="arg_1_0" nillable="true" type="tns2:attrlist"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="multilistResponse">
+ <complexType>
+ <sequence>
+ <element name="multilistReturn" nillable="true" type="tns2:attrlisterr"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="multilistnil">
+ <complexType>
+ <sequence>
+ <element name="arg_0_3" nillable="true" type="tns2:m_list"/>
+ <element name="arg_1_3" nillable="true" type="tns2:attrlist"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="multilistnilResponse">
+ <complexType>
+ <sequence>
+ <element name="multilistnilReturn" nillable="true" type="tns2:attrlisterr"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="complexlist">
+ <complexType>
+ <sequence>
+ <element name="arg_0_2" nillable="true" type="tns2:attrlist"/>
+ <element name="arg_1_2" nillable="true" type="xsd:string"/>
+ <element name="arg_2_2" nillable="true" type="tns2:attrlist"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="complexlistResponse">
+ <complexType>
+ <sequence>
+ <element name="complexlistReturn" nillable="true" type="tns2:attrlisterr"/>
+ </sequence>
+ </complexType>
+ </element>
+ </schema>
+ </wsdl:types>
+
+ <wsdl:message name="complexlistResponse">
+
+ <wsdl:part element="impl:complexlistResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="complexlistRequest">
+
+ <wsdl:part element="impl:complexlist" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="multilistRequest">
+ <wsdl:part element="impl:multilist" name="parameters"/>
+ </wsdl:message>
+
+ <wsdl:message name="multilistResponse">
+ <wsdl:part element="impl:multilistResponse" name="parameters"/>
+ </wsdl:message>
+
+ <wsdl:message name="multilistnilRequest">
+ <wsdl:part element="impl:multilistnil" name="parameters"/>
+ </wsdl:message>
+
+ <wsdl:message name="multilistnilResponse">
+ <wsdl:part element="impl:multilistnilResponse" name="parameters"/>
+ </wsdl:message>
+
+ <wsdl:portType name="ComplexLists">
+
+ <wsdl:operation name="multilist">
+ <wsdl:input message="impl:multilistRequest" name="multilistRequest"/>
+ <wsdl:output message="impl:multilistResponse" name="multilistResponse"/>
+ </wsdl:operation>
+
+ <wsdl:operation name="multilistnil">
+ <wsdl:input message="impl:multilistnilRequest" name="multilistnilRequest"/>
+ <wsdl:output message="impl:multilistnilResponse" name="multilistnilResponse"/>
+ </wsdl:operation>
+
+ <wsdl:operation name="complexlist">
+
+ <wsdl:input message="impl:complexlistRequest" name="complexlistRequest"/>
+
+ <wsdl:output message="impl:complexlistResponse" name="complexlistResponse"/>
+
+ </wsdl:operation>
+
+ </wsdl:portType>
+
+ <wsdl:binding name="ComplexListsSoapBinding" type="impl:ComplexLists">
+
+ <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+
+ <wsdl:operation name="multilist">
+ <wsdlsoap:operation soapAction=""/>
+ <wsdl:input name="multilistRequest">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="multilistResponse">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="multilistnil">
+ <wsdlsoap:operation soapAction=""/>
+ <wsdl:input name="multilistnilRequest">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="multilistnilResponse">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="complexlist">
+ <wsdlsoap:operation soapAction=""/>
+ <wsdl:input name="complexlistRequest">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="complexlistResponse">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ </wsdl:binding>
+
+ <wsdl:service name="ComplexListsService">
+
+ <wsdl:port binding="impl:ComplexListsSoapBinding" name="ComplexLists">
+
+ <wsdlsoap:address location="http://localhost:9080/ComplexLists/services/ComplexLists"/>
+
+ </wsdl:port>
+
+ </wsdl:service>
+
+</wsdl:definitions>
+
diff --git a/test/resources/wsdl/ComplexTypeAll.wsdl b/test/resources/wsdl/ComplexTypeAll.wsdl
new file mode 100644
index 0000000..2703344
--- /dev/null
+++ b/test/resources/wsdl/ComplexTypeAll.wsdl
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- (c) Copyright IBM Corp. 2004, 2005 All Rights Reserved -->
+<!-- -->
+<!-- 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. -->
+
+<definitions name="Service"
+ targetNamespace="http://complextype.test.apache.org"
+ xmlns:tns="http://complextype.test.apache.org"
+ xmlns="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <types>
+ <xsd:schema elementFormDefault="qualified"
+ targetNamespace="http://complextype.test.apache.org"
+ xmlns:tns="http://complextype.test.apache.org">
+ <xsd:element name="myOperation">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="aType" type="tns:aRecord"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:complexType name="aRecord">
+ <xsd:all>
+ <xsd:element name="field1" type="xsd:string" nillable="true"/>
+ <xsd:element name="field2" type="xsd:string" fixed="field2Value"/>
+ <xsd:element name="field3" type="xsd:string" nillable="false"/>
+ </xsd:all>
+ </xsd:complexType>
+
+ <xsd:element name="myOperationResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="result" type="xsd:boolean"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </types>
+ <message name="request">
+ <part name="parameters" element="tns:myOperation"/>
+ </message>
+ <message name="response">
+ <part name="parameters" element="tns:myOperationResponse"/>
+ </message>
+ <portType name="operations">
+ <operation name="myOperation">
+ <input message="tns:request"/>
+ <output message="tns:response"/>
+ </operation>
+ </portType>
+ <binding name="operationsBinding" type="tns:operations">
+ <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
+ <operation name="myOperation">
+ <soap:operation soapAction="http://complextype.test.apache.org"/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ </binding>
+ <service name="TestServices">
+ <port name="Service" binding="tns:operationsBinding">
+ <soap:address location="http://localhost:9080/ComplexTypeAll/services/Service"/>
+ </port>
+ </service>
+</definitions>
diff --git a/test/resources/wsdl/DataHandlerService.wsdl b/test/resources/wsdl/DataHandlerService.wsdl
new file mode 100644
index 0000000..41fcec4
--- /dev/null
+++ b/test/resources/wsdl/DataHandlerService.wsdl
@@ -0,0 +1,291 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions targetNamespace="http://datahandler.attachment.test.org" xmlns:impl="http://datahandler.attachment.test.org" xmlns:intf="http://datahandler.attachment.test.org" xmlns:tns2="http://xml.apache.org/xml-soap" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <wsdl:types>
+ <schema elementFormDefault="qualified" targetNamespace="http://datahandler.attachment.test.org" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:impl="http://datahandler.attachment.test.org" xmlns:intf="http://datahandler.attachment.test.org" xmlns:tns2="http://xml.apache.org/xml-soap" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <import namespace="http://xml.apache.org/xml-soap"/>
+ <element name="getContentType">
+ <complexType>
+ <sequence>
+ <element name="arg_0_0" nillable="true" type="tns2:DataHandler"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="getContentTypeResponse">
+ <complexType>
+ <sequence>
+ <element name="getContentTypeReturn" nillable="true" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="saveContent">
+ <complexType>
+ <sequence>
+ <element name="arg_0_1" nillable="true" type="tns2:DataHandler"/>
+ <element name="arg_1_1" nillable="true" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="saveContentResponse">
+ <complexType>
+ <sequence>
+ <element name="saveContentReturn" nillable="true" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoContent">
+ <complexType>
+ <sequence>
+ <element name="arg_0_2" nillable="true" type="tns2:DataHandler"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoContentResponse">
+ <complexType>
+ <sequence>
+ <element name="echoContentReturn" nillable="true" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="getNoOfBytes">
+ <complexType>
+ <sequence>
+ <element name="arg_0_3" nillable="true" type="tns2:DataHandler"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="getNoOfBytesResponse">
+ <complexType>
+ <sequence>
+ <element name="getNoOfBytesReturn" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="executeClass">
+ <complexType>
+ <sequence>
+ <element name="arg_0_4" nillable="true" type="tns2:DataHandler"/>
+ <element name="arg_1_4" nillable="true" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="executeClassResponse">
+ <complexType>
+ <sequence>
+ <element name="executeClassReturn" nillable="true" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </element>
+ </schema>
+ </wsdl:types>
+
+ <wsdl:message name="echoContentRequest">
+
+ <wsdl:part element="impl:echoContent" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="getContentTypeRequest">
+
+ <wsdl:part element="impl:getContentType" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="getContentTypeResponse">
+
+ <wsdl:part element="impl:getContentTypeResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="executeClassResponse">
+
+ <wsdl:part element="impl:executeClassResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="getNoOfBytesResponse">
+
+ <wsdl:part element="impl:getNoOfBytesResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="executeClassRequest">
+
+ <wsdl:part element="impl:executeClass" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="saveContentResponse">
+
+ <wsdl:part element="impl:saveContentResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="saveContentRequest">
+
+ <wsdl:part element="impl:saveContent" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="getNoOfBytesRequest">
+
+ <wsdl:part element="impl:getNoOfBytes" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="echoContentResponse">
+
+ <wsdl:part element="impl:echoContentResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:portType name="DataHandlerService">
+
+ <wsdl:operation name="getContentType">
+
+ <wsdl:input message="impl:getContentTypeRequest" name="getContentTypeRequest"/>
+
+ <wsdl:output message="impl:getContentTypeResponse" name="getContentTypeResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="saveContent">
+
+ <wsdl:input message="impl:saveContentRequest" name="saveContentRequest"/>
+
+ <wsdl:output message="impl:saveContentResponse" name="saveContentResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="echoContent">
+
+ <wsdl:input message="impl:echoContentRequest" name="echoContentRequest"/>
+
+ <wsdl:output message="impl:echoContentResponse" name="echoContentResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="getNoOfBytes">
+
+ <wsdl:input message="impl:getNoOfBytesRequest" name="getNoOfBytesRequest"/>
+
+ <wsdl:output message="impl:getNoOfBytesResponse" name="getNoOfBytesResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="executeClass">
+
+ <wsdl:input message="impl:executeClassRequest" name="executeClassRequest"/>
+
+ <wsdl:output message="impl:executeClassResponse" name="executeClassResponse"/>
+
+ </wsdl:operation>
+
+ </wsdl:portType>
+
+ <wsdl:binding name="DataHandlerServiceSoapBinding" type="impl:DataHandlerService">
+
+ <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+
+ <wsdl:operation name="getContentType">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="getContentTypeRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="getContentTypeResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="saveContent">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="saveContentRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="saveContentResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="echoContent">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="echoContentRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="echoContentResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="getNoOfBytes">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="getNoOfBytesRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="getNoOfBytesResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="executeClass">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="executeClassRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="executeClassResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ </wsdl:binding>
+
+ <wsdl:service name="DataHandlerServiceService">
+
+ <wsdl:port binding="impl:DataHandlerServiceSoapBinding" name="DataHandlerService">
+
+ <wsdlsoap:address location="http://localhost:9080/DataHandlerService/services/DataHandlerService"/>
+
+ </wsdl:port>
+
+ </wsdl:service>
+
+</wsdl:definitions>
diff --git a/test/resources/wsdl/Enumeration.wsdl b/test/resources/wsdl/Enumeration.wsdl
new file mode 100644
index 0000000..15f72ce
--- /dev/null
+++ b/test/resources/wsdl/Enumeration.wsdl
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- (c) Copyright IBM Corp. 2004, 2005 All Rights Reserved -->
+<!-- -->
+<!-- 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. -->
+
+<definitions targetNamespace="http://enumeration.test.apache.org" xmlns:wsi="http://ws-i.org/schemas/conformanceClaim/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://enumeration.test.apache.org" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/">
+ <types>
+ <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://enumeration.test.apache.org" xmlns:tns="http://enumeration.test.apache.org">
+
+ <xsd:element name="getInput">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="type" maxOccurs="1" minOccurs="0" type="tns:Type1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="getInputResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="type" maxOccurs="1" minOccurs="0" type="tns:Type1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:complexType name="Type1">
+ <xsd:sequence>
+ <xsd:element name="enum_int" maxOccurs="1" minOccurs="0" type="tns:TypeInt" />
+ <xsd:element name="enum_string" maxOccurs="1" minOccurs="0" type="tns:TypeString" />
+ </xsd:sequence>
+ <xsd:attribute name="att_enum_int" type="tns:TypeInt"/>
+ <xsd:attribute name="att_enum_string" type="tns:TypeString"/>
+ <xsd:attribute name="att_enum_kind">
+ <xsd:simpleType>
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="CHEQUE" />
+ <xsd:enumeration value="CREDIT_CARD" />
+ <xsd:enumeration value="TRANSFER" />
+ <xsd:enumeration value="WITHDRAWAL" />
+ <xsd:enumeration value="AUTOMATIC" />
+ </xsd:restriction>
+ </xsd:simpleType>
+ </xsd:attribute>
+ </xsd:complexType>
+
+ <xsd:simpleType name="TypeInt">
+ <xsd:restriction base="xsd:int">
+ <xsd:enumeration value="0" />
+ <xsd:enumeration value="1" />
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="TypeString">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="one" />
+ <xsd:enumeration value="two" />
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ </xsd:schema>
+ </types>
+
+
+ <message name="input">
+ <part name="parameters" element="tns:getInput" />
+ </message>
+
+ <message name="output">
+ <part name="parameters" element="tns:getInputResponse" />
+ </message>
+
+ <portType name="EnumerationWS">
+ <operation name="getInput">
+ <input message="tns:input" />
+ <output message="tns:output" />
+ </operation>
+ </portType>
+
+ <binding name="EnumerationWSBinding" type="tns:EnumerationWS">
+ <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
+ <operation name="getInput">
+ <soap:operation />
+ <input>
+ <soap:body use="literal" />
+ </input>
+ <output>
+ <soap:body use="literal" />
+ </output>
+ </operation>
+ </binding>
+
+ <service name="EnumerationWSService">
+ <port name="sampleWS" binding="tns:EnumerationWSBinding">
+ <soap:address location="http://localhost:9080/Enumeration/services/sampleWS" />
+ </port>
+ </service>
+</definitions>
diff --git a/test/resources/wsdl/ExceptionTest.wsdl b/test/resources/wsdl/ExceptionTest.wsdl
new file mode 100644
index 0000000..557ed0f
--- /dev/null
+++ b/test/resources/wsdl/ExceptionTest.wsdl
@@ -0,0 +1,97 @@
+<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://soapinterop.org/wsdl" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/types" targetNamespace="http://soapinterop.org/wsdl">
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- -->
+<!-- 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. -->
+
+ <types>
+ <schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://soapinterop.org/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://soapinterop.org/types">
+ <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
+ <complexType name="DivByZeroStruct">
+ <sequence>
+ <element name="varString" type="xsd:string"/>
+ <element name="varInt" type="xsd:int"/>
+ <element name="varFloat" type="xsd:float"/>
+ </sequence>
+ </complexType>
+ <complexType name="SpecialDetailStruct">
+ <sequence>
+ <element name="varString" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ <complexType name="OutOfBoundStruct">
+ <sequence>
+ <element name="varString" type="xsd:string"/>
+ <element name="varInt" type="xsd:int"/>
+ <element name="specialDetail" type="tns:SpecialDetailStruct"/>
+ </sequence>
+ </complexType>
+ </schema>
+ </types>
+ <message name="DivByZeroFault">
+ <part name="faultstruct1" type="ns2:DivByZeroStruct"/>
+ </message>
+ <message name="OutOfBoundFault">
+ <part name="faultstruct1" type="ns2:OutOfBoundStruct"/>
+ </message>
+ <message name="SpecialDetailFault">
+ <part name="faultstruct1" type="ns2:SpecialDetailStruct"/>
+ </message>
+ <message name="divRequest">
+ <part name="int0" type="xsd:int"/>
+ <part name="int1" type="xsd:int"/>
+ </message>
+ <message name="divResponse">
+ <part name="addReturn" type="xsd:int"/>
+ </message>
+ <portType name="MathOps">
+ <operation name="div" parameterOrder ="int0 int1">
+ <input message="tns:divRequest"/>
+ <output message="tns:divResponse"/>
+ <fault name="DivByZero" message="tns:DivByZeroFault"/>
+ <fault name="OutOfBound" message="tns:OutOfBoundFault"/>
+ <fault name="NormalDetail" message="tns:SpecialDetailFault"/>
+ </operation>
+ </portType>
+ <binding name="MathOpsBinding" type="tns:MathOps">
+ <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="div">
+ <soap:operation soapAction="MathOps#div"/>
+ <input name="divRequest">
+ <soap:body
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ namespace="http://localhost/axis/MathOps"
+ use="encoded"/>
+ </input>
+ <output name="divResponse">
+ <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ namespace="http://localhost/axis/MathOps"
+ use="encoded"/>
+ </output>
+ <fault name="DivByZero">
+ <soap:fault name="DivByZero" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://soapinterop.org/wsdl"/>
+ </fault>
+ <fault name="OutOfBound">
+ <soap:fault name="OutOfBound" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://soapinterop.org/wsdl"/>
+ </fault>
+ <fault name="NormalDetail">
+ <soap:fault name="NormalDetail" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://soapinterop.org/wsdl"/>
+ </fault>
+ </operation>
+ </binding>
+ <service name="MathOpsService">
+ <port name="MathOps" binding="tns:MathOpsBinding">
+ <soap:address location="http://localhost/axis/MathOps"/>
+ </port>
+ </service>
+ <!-- Fault messages -->
+</definitions>
diff --git a/test/resources/wsdl/ExceptionTestDoc.wsdl b/test/resources/wsdl/ExceptionTestDoc.wsdl
new file mode 100644
index 0000000..e51b20f
--- /dev/null
+++ b/test/resources/wsdl/ExceptionTestDoc.wsdl
@@ -0,0 +1,160 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- (c) Copyright IBM Corp. 2004, 2005 All Rights Reserved -->
+<!-- -->
+<!-- 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 targetNamespace="http://soapinterop.org/wsdl" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://soapinterop.org/wsdl" xmlns:intf="http://soapinterop.org/wsdl" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <wsdl:types>
+ <schema elementFormDefault="qualified" targetNamespace="http://soapinterop.org/wsdl" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://soapinterop.org/wsdl" xmlns:intf="http://soapinterop.org/wsdl" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+ <element name="div">
+ <complexType>
+ <sequence>
+ <element name="arg_0_0" type="xsd:int"/>
+ <element name="arg_1_0" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="divResponse">
+ <complexType>
+ <sequence>
+ <element name="divReturn" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ </element>
+ <complexType name="OutOfBoundStruct">
+ <sequence>
+ <element name="varString" nillable="true" type="xsd:string"/>
+ <element name="varInt" type="xsd:int"/>
+ <element name="specialDetail" nillable="true" type="impl:SpecialDetailStruct"/>
+ </sequence>
+ </complexType>
+ <complexType name="SpecialDetailStruct">
+ <sequence>
+ <element name="varString" nillable="true" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ <element name="OutOfBoundStruct" nillable="true" type="impl:OutOfBoundStruct"/>
+ <complexType name="DivByZeroStruct">
+ <sequence>
+ <element name="varString" nillable="true" type="xsd:string"/>
+ <element name="varInt" type="xsd:int"/>
+ <element name="varFloat" type="xsd:float"/>
+ </sequence>
+ </complexType>
+ <element name="DivByZeroStruct" nillable="true" type="impl:DivByZeroStruct"/>
+ <element name="SpecialDetailStruct" nillable="true" type="impl:SpecialDetailStruct"/>
+ </schema>
+ </wsdl:types>
+
+ <wsdl:message name="OutOfBoundStruct">
+
+ <wsdl:part element="impl:OutOfBoundStruct" name="fault"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="divRequest">
+
+ <wsdl:part element="impl:div" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="divResponse">
+
+ <wsdl:part element="impl:divResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="DivByZeroStruct">
+
+ <wsdl:part element="impl:DivByZeroStruct" name="fault"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="SpecialDetailStruct">
+
+ <wsdl:part element="impl:SpecialDetailStruct" name="fault"/>
+
+ </wsdl:message>
+
+ <wsdl:portType name="MathOps">
+
+ <wsdl:operation name="div">
+
+ <wsdl:input message="impl:divRequest" name="divRequest"/>
+
+ <wsdl:output message="impl:divResponse" name="divResponse"/>
+
+ <wsdl:fault message="impl:DivByZeroStruct" name="DivByZeroStruct"/>
+
+ <wsdl:fault message="impl:SpecialDetailStruct" name="SpecialDetailStruct"/>
+
+ <wsdl:fault message="impl:OutOfBoundStruct" name="OutOfBoundStruct"/>
+
+ </wsdl:operation>
+
+ </wsdl:portType>
+
+ <wsdl:binding name="MathOpsSoapBinding" type="impl:MathOps">
+
+ <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+
+ <wsdl:operation name="div">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="divRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="divResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ <wsdl:fault name="DivByZeroStruct">
+
+ <wsdlsoap:fault name="DivByZeroStruct" use="literal"/>
+
+ </wsdl:fault>
+
+ <wsdl:fault name="SpecialDetailStruct">
+
+ <wsdlsoap:fault name="SpecialDetailStruct" use="literal"/>
+
+ </wsdl:fault>
+
+ <wsdl:fault name="OutOfBoundStruct">
+
+ <wsdlsoap:fault name="OutOfBoundStruct" use="literal"/>
+
+ </wsdl:fault>
+
+ </wsdl:operation>
+
+ </wsdl:binding>
+
+ <wsdl:service name="MathOpsService">
+
+ <wsdl:port binding="impl:MathOpsSoapBinding" name="MathOps">
+
+ <wsdlsoap:address location="http://localhost/axis/MathOps"/>
+
+ </wsdl:port>
+
+ </wsdl:service>
+
+</wsdl:definitions>
diff --git a/test/resources/wsdl/ExtensibilityQuery.wsdl b/test/resources/wsdl/ExtensibilityQuery.wsdl
new file mode 100644
index 0000000..27a2738
--- /dev/null
+++ b/test/resources/wsdl/ExtensibilityQuery.wsdl
@@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- -->
+<!-- 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. -->
+
+
+<definitions name="ExtensibilityQuery" targetNamespace="urn:ExtensibilityQuery"
+
+xmlns="http://schemas.xmlsoap.org/wsdl/"
+
+xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+
+xmlns:tns="urn:ExtensibilityQuery" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+
+ <types>
+
+ <xsd:schema attributeFormDefault="qualified"
+
+ elementFormDefault="qualified" targetNamespace="urn:ExtensibilityQuery">
+
+
+
+ <xsd:complexType name="ExtensibilityType">
+
+ <xsd:sequence>
+
+ <xsd:any namespace="##any"/>
+
+ </xsd:sequence>
+
+ </xsd:complexType>
+
+
+
+ <xsd:element name="query">
+
+ <xsd:complexType>
+
+ <xsd:sequence>
+
+ <xsd:any namespace="##any" />
+
+ </xsd:sequence>
+
+ </xsd:complexType>
+
+ </xsd:element>
+
+
+
+ <xsd:element name="queryResponse">
+
+ <xsd:complexType>
+
+ <xsd:sequence>
+
+ <xsd:any namespace="##any" />
+
+ </xsd:sequence>
+
+ </xsd:complexType>
+
+ </xsd:element>
+
+
+
+ </xsd:schema>
+
+ </types>
+
+
+
+ <message name="queryIn">
+
+ <part element="tns:query" name="parameters" />
+
+ </message>
+
+
+
+ <message name="queryOut">
+
+ <part element="tns:queryResponse" name="parameters" />
+
+ </message>
+
+
+
+ <portType name="ExtensibilityQueryPortType">
+
+ <operation name="query">
+
+ <input message="tns:queryIn" />
+
+ <output message="tns:queryOut" />
+
+ </operation>
+
+ </portType>
+
+
+
+ <binding name="ExtensibilityQueryBinding" type="tns:ExtensibilityQueryPortType">
+
+ <soap:binding style="document"
+
+ transport="http://schemas.xmlsoap.org/soap/http" />
+
+ <operation name="query">
+
+ <soap:operation soapAction="ExtensibilityQuery#query" />
+
+ <input>
+
+ <soap:body use="literal" />
+
+ </input>
+
+ <output>
+
+ <soap:body use="literal" />
+
+ </output>
+
+ </operation>
+
+ </binding>
+
+
+
+ <service name="ExtensibilityQuery">
+
+ <port binding="tns:ExtensibilityQueryBinding" name="ExtensibilityQueryPort">
+
+ <soap:address location="http://localhost:8080/axis/testXSDANY"/>
+
+ </port>
+
+ </service>
+
+</definitions>
+
+
+
diff --git a/test/resources/wsdl/FaultMapping.wsdl b/test/resources/wsdl/FaultMapping.wsdl
new file mode 100644
index 0000000..557ed0f
--- /dev/null
+++ b/test/resources/wsdl/FaultMapping.wsdl
@@ -0,0 +1,97 @@
+<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://soapinterop.org/wsdl" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/types" targetNamespace="http://soapinterop.org/wsdl">
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- -->
+<!-- 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. -->
+
+ <types>
+ <schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://soapinterop.org/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://soapinterop.org/types">
+ <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
+ <complexType name="DivByZeroStruct">
+ <sequence>
+ <element name="varString" type="xsd:string"/>
+ <element name="varInt" type="xsd:int"/>
+ <element name="varFloat" type="xsd:float"/>
+ </sequence>
+ </complexType>
+ <complexType name="SpecialDetailStruct">
+ <sequence>
+ <element name="varString" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ <complexType name="OutOfBoundStruct">
+ <sequence>
+ <element name="varString" type="xsd:string"/>
+ <element name="varInt" type="xsd:int"/>
+ <element name="specialDetail" type="tns:SpecialDetailStruct"/>
+ </sequence>
+ </complexType>
+ </schema>
+ </types>
+ <message name="DivByZeroFault">
+ <part name="faultstruct1" type="ns2:DivByZeroStruct"/>
+ </message>
+ <message name="OutOfBoundFault">
+ <part name="faultstruct1" type="ns2:OutOfBoundStruct"/>
+ </message>
+ <message name="SpecialDetailFault">
+ <part name="faultstruct1" type="ns2:SpecialDetailStruct"/>
+ </message>
+ <message name="divRequest">
+ <part name="int0" type="xsd:int"/>
+ <part name="int1" type="xsd:int"/>
+ </message>
+ <message name="divResponse">
+ <part name="addReturn" type="xsd:int"/>
+ </message>
+ <portType name="MathOps">
+ <operation name="div" parameterOrder ="int0 int1">
+ <input message="tns:divRequest"/>
+ <output message="tns:divResponse"/>
+ <fault name="DivByZero" message="tns:DivByZeroFault"/>
+ <fault name="OutOfBound" message="tns:OutOfBoundFault"/>
+ <fault name="NormalDetail" message="tns:SpecialDetailFault"/>
+ </operation>
+ </portType>
+ <binding name="MathOpsBinding" type="tns:MathOps">
+ <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="div">
+ <soap:operation soapAction="MathOps#div"/>
+ <input name="divRequest">
+ <soap:body
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ namespace="http://localhost/axis/MathOps"
+ use="encoded"/>
+ </input>
+ <output name="divResponse">
+ <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ namespace="http://localhost/axis/MathOps"
+ use="encoded"/>
+ </output>
+ <fault name="DivByZero">
+ <soap:fault name="DivByZero" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://soapinterop.org/wsdl"/>
+ </fault>
+ <fault name="OutOfBound">
+ <soap:fault name="OutOfBound" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://soapinterop.org/wsdl"/>
+ </fault>
+ <fault name="NormalDetail">
+ <soap:fault name="NormalDetail" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://soapinterop.org/wsdl"/>
+ </fault>
+ </operation>
+ </binding>
+ <service name="MathOpsService">
+ <port name="MathOps" binding="tns:MathOpsBinding">
+ <soap:address location="http://localhost/axis/MathOps"/>
+ </port>
+ </service>
+ <!-- Fault messages -->
+</definitions>
diff --git a/test/resources/wsdl/FaultMappingDoc.wsdl b/test/resources/wsdl/FaultMappingDoc.wsdl
new file mode 100644
index 0000000..e51b20f
--- /dev/null
+++ b/test/resources/wsdl/FaultMappingDoc.wsdl
@@ -0,0 +1,160 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- (c) Copyright IBM Corp. 2004, 2005 All Rights Reserved -->
+<!-- -->
+<!-- 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 targetNamespace="http://soapinterop.org/wsdl" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://soapinterop.org/wsdl" xmlns:intf="http://soapinterop.org/wsdl" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <wsdl:types>
+ <schema elementFormDefault="qualified" targetNamespace="http://soapinterop.org/wsdl" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://soapinterop.org/wsdl" xmlns:intf="http://soapinterop.org/wsdl" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+ <element name="div">
+ <complexType>
+ <sequence>
+ <element name="arg_0_0" type="xsd:int"/>
+ <element name="arg_1_0" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="divResponse">
+ <complexType>
+ <sequence>
+ <element name="divReturn" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ </element>
+ <complexType name="OutOfBoundStruct">
+ <sequence>
+ <element name="varString" nillable="true" type="xsd:string"/>
+ <element name="varInt" type="xsd:int"/>
+ <element name="specialDetail" nillable="true" type="impl:SpecialDetailStruct"/>
+ </sequence>
+ </complexType>
+ <complexType name="SpecialDetailStruct">
+ <sequence>
+ <element name="varString" nillable="true" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ <element name="OutOfBoundStruct" nillable="true" type="impl:OutOfBoundStruct"/>
+ <complexType name="DivByZeroStruct">
+ <sequence>
+ <element name="varString" nillable="true" type="xsd:string"/>
+ <element name="varInt" type="xsd:int"/>
+ <element name="varFloat" type="xsd:float"/>
+ </sequence>
+ </complexType>
+ <element name="DivByZeroStruct" nillable="true" type="impl:DivByZeroStruct"/>
+ <element name="SpecialDetailStruct" nillable="true" type="impl:SpecialDetailStruct"/>
+ </schema>
+ </wsdl:types>
+
+ <wsdl:message name="OutOfBoundStruct">
+
+ <wsdl:part element="impl:OutOfBoundStruct" name="fault"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="divRequest">
+
+ <wsdl:part element="impl:div" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="divResponse">
+
+ <wsdl:part element="impl:divResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="DivByZeroStruct">
+
+ <wsdl:part element="impl:DivByZeroStruct" name="fault"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="SpecialDetailStruct">
+
+ <wsdl:part element="impl:SpecialDetailStruct" name="fault"/>
+
+ </wsdl:message>
+
+ <wsdl:portType name="MathOps">
+
+ <wsdl:operation name="div">
+
+ <wsdl:input message="impl:divRequest" name="divRequest"/>
+
+ <wsdl:output message="impl:divResponse" name="divResponse"/>
+
+ <wsdl:fault message="impl:DivByZeroStruct" name="DivByZeroStruct"/>
+
+ <wsdl:fault message="impl:SpecialDetailStruct" name="SpecialDetailStruct"/>
+
+ <wsdl:fault message="impl:OutOfBoundStruct" name="OutOfBoundStruct"/>
+
+ </wsdl:operation>
+
+ </wsdl:portType>
+
+ <wsdl:binding name="MathOpsSoapBinding" type="impl:MathOps">
+
+ <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+
+ <wsdl:operation name="div">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="divRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="divResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ <wsdl:fault name="DivByZeroStruct">
+
+ <wsdlsoap:fault name="DivByZeroStruct" use="literal"/>
+
+ </wsdl:fault>
+
+ <wsdl:fault name="SpecialDetailStruct">
+
+ <wsdlsoap:fault name="SpecialDetailStruct" use="literal"/>
+
+ </wsdl:fault>
+
+ <wsdl:fault name="OutOfBoundStruct">
+
+ <wsdlsoap:fault name="OutOfBoundStruct" use="literal"/>
+
+ </wsdl:fault>
+
+ </wsdl:operation>
+
+ </wsdl:binding>
+
+ <wsdl:service name="MathOpsService">
+
+ <wsdl:port binding="impl:MathOpsSoapBinding" name="MathOps">
+
+ <wsdlsoap:address location="http://localhost/axis/MathOps"/>
+
+ </wsdl:port>
+
+ </wsdl:service>
+
+</wsdl:definitions>
diff --git a/test/resources/wsdl/FourLevelTestDoc.wsdl b/test/resources/wsdl/FourLevelTestDoc.wsdl
new file mode 100644
index 0000000..7c82a05
--- /dev/null
+++ b/test/resources/wsdl/FourLevelTestDoc.wsdl
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- (c) Copyright IBM Corp. 2004, 2005 All Rights Reserved -->
+<!-- -->
+<!-- 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. -->
+
+<definitions name="LicenseUsageHistoryService" targetNamespace="urn:org.apache:ws-axis/c/test/v1_0" xmlns:impl="urn:org.apache:ws-axis/c/test/v1_0" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/">
+ <types>
+ <schema targetNamespace="urn:org.apache:ws-axis/c/test/v1_0" xmlns:impl="urn:org.apache:ws-axis/c/test/v1_0" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" elementFormDefault="qualified">
+ <complexType name="FourthLevelElemType">
+ <sequence>
+ <element name="SampleString" type="xsd:string"/>
+ <element name="SampleInt" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ <complexType name="ThirdLevelElemType">
+ <sequence>
+ <element name="FourthLevelElem" type="impl:FourthLevelElemType" maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+ <complexType name="SecondLevelElemType">
+ <sequence>
+ <element name="ThirdLevelElem" type="impl:ThirdLevelElemType" maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+ <complexType name="FirstLevelElemType">
+ <sequence>
+ <element name="SecondLevelElem" type="impl:SecondLevelElemType" maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+ <element name="FirstLevelElem" type="impl:FirstLevelElemType"/>
+ </schema>
+ </types>
+ <message name="TestDocRequest">
+ <part element="impl:FirstLevelElem" name="inputPart"/>
+ </message>
+ <message name="TestDocResponse">
+ <part element="impl:FirstLevelElem" name="outputPart"/>
+ </message>
+ <portType name="FourLevelTestDocInterface">
+ <operation name="RetrieveTestDoc">
+ <input message="impl:TestDocRequest" name="TestDocRequest"/>
+ <output message="impl:TestDocResponse" name="TestDocResponse"/>
+ </operation>
+ </portType>
+ <binding name="FourLevelTestDocBinding" type="impl:FourLevelTestDocInterface">
+ <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="RetrieveTestDoc">
+ <soap:operation soapAction="FourLevelTestDocService#RetrieveTestDoc" style="document"/>
+ <input name="TestDocRequest">
+ <soap:body namespace="urn:org.apache:ws-axis/c/test/v1_0" use="literal"/>
+ </input>
+ <output name="TestDocResponse">
+ <soap:body namespace="urn:org.apache:ws-axis/c/test/v1_0" use="literal"/>
+ </output>
+ </operation>
+ </binding>
+ <service name="FourLevelTestDocService">
+ <port binding="impl:FourLevelTestDocBinding" name="FourLevelTestDoc">
+ <soap:address location="http://localhost:80/axis/FourLevelTestDoc"/>
+ </port>
+ </service>
+</definitions>
diff --git a/test/resources/wsdl/InOut.wsdl b/test/resources/wsdl/InOut.wsdl
new file mode 100644
index 0000000..11f6afa
--- /dev/null
+++ b/test/resources/wsdl/InOut.wsdl
@@ -0,0 +1,429 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- (c) Copyright IBM Corp. 2004, 2005 All Rights Reserved -->
+<!-- -->
+<!-- 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 targetNamespace="http://complexissues.test.apache.org" xmlns:impl="http://complexissues.test.apache.org" xmlns:intf="http://complexissues.test.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">
+ <wsdl:types>
+ <schema elementFormDefault="qualified" targetNamespace="http://complexissues.test.apache.org" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:impl="http://complexissues.test.apache.org" xmlns:intf="http://complexissues.test.apache.org" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <element name="noParametersNoReturn">
+ <complexType>
+ <sequence/>
+ </complexType>
+ </element>
+ <element name="noParametersNoReturnResponse">
+ <complexType>
+ <sequence/>
+ </complexType>
+ </element>
+ <element name="noParametersIntReturn">
+ <complexType>
+ <sequence/>
+ </complexType>
+ </element>
+ <element name="noParametersIntReturnResponse">
+ <complexType>
+ <sequence>
+ <element name="noParametersIntReturnReturn" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="multiParametersNoReturn">
+ <complexType>
+ <sequence>
+ <element name="arg_0_2" nillable="true" type="xsd:string"/>
+ <element name="arg_1_2" type="xsd:int"/>
+ <element name="arg_2_2" type="xsd:double"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="multiParametersNoReturnResponse">
+ <complexType>
+ <sequence/>
+ </complexType>
+ </element>
+ <element name="multiComplexParametersIntReturn">
+ <complexType>
+ <sequence>
+ <element name="arg_0_3" nillable="true" type="xsd:string"/>
+ <element name="arg_1_3" nillable="true" type="impl:ComplexType1"/>
+ <element name="arg_2_3" type="xsd:int"/>
+ <element name="arg_3_3" type="xsd:double"/>
+ <element maxOccurs="unbounded" name="arg_4_3" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </element>
+ <complexType name="ComplexType1">
+ <sequence>
+ <element name="ctLong" type="xsd:long"/>
+ <element maxOccurs="unbounded" name="ctIntArray" type="xsd:int"/>
+ <element name="ctString" nillable="true" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ <complexType name="ComplexType2">
+ <sequence>
+ <element name="ctLong" type="xsd:long"/>
+ <element maxOccurs="unbounded" name="ctIntArray" type="xsd:int"/>
+ <element name="ctString" nillable="true" type="xsd:string"/>
+ <element name="ctComplex" nillable="true" type="impl:ComplexType1"/>
+ </sequence>
+ </complexType>
+ <element name="complexParameterComplexReturn">
+ <complexType>
+ <sequence>
+ <element name="complexRequest" nillable="true" type="impl:ComplexType2"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="complexParameterComplexReturnResponse">
+ <complexType>
+ <sequence>
+ <element name="complexResponse" nillable="true" type="impl:ComplexType2"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="multiComplexParametersIntReturnResponse">
+ <complexType>
+ <sequence>
+ <element name="multiComplexParametersIntReturnReturn" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="multiComplexParametersNilIntReturn">
+ <complexType>
+ <sequence>
+ <element name="arg_0_4" nillable="true" type="xsd:string"/>
+ <element name="arg_1_4" nillable="true" type="impl:ComplexNilType1"/>
+ <element name="arg_2_4" nillable="true" type="xsd:int"/>
+ <element name="arg_3_4" nillable="true" type="xsd:double"/>
+ <element maxOccurs="unbounded" name="arg_4_4" nillable="true" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </element>
+ <complexType name="ComplexNilType1">
+ <sequence>
+ <element name="ctLong" nillable="true" type="xsd:long"/>
+ <element maxOccurs="unbounded" name="ctIntArray" nillable="true" type="xsd:int"/>
+ <element name="ctString" nillable="true" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ <element name="multiComplexParametersNilIntReturnResponse">
+ <complexType>
+ <sequence>
+ <element name="multiComplexParametersNilIntReturnReturn" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="multiArrayParametersIntReturn">
+ <complexType>
+ <sequence>
+ <element maxOccurs="unbounded" minOccurs="0" name="arg_0_5" type="xsd:int"/>
+ <element maxOccurs="unbounded" minOccurs="0" name="arg_1_5" type="xsd:double"/>
+ <element maxOccurs="unbounded" minOccurs="0" name="arg_2_5" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="multiArrayParametersIntReturnResponse">
+ <complexType>
+ <sequence>
+ <element name="multiArrayParametersIntReturnReturn" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ </element>
+ </schema>
+ </wsdl:types>
+
+ <wsdl:message name="noParametersIntReturnResponse">
+
+ <wsdl:part element="impl:noParametersIntReturnResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="noParametersNoReturnRequest">
+
+ <wsdl:part element="impl:noParametersNoReturn" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="multiComplexParametersIntReturnResponse">
+
+ <wsdl:part element="impl:multiComplexParametersIntReturnResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="multiArrayParametersIntReturnRequest">
+
+ <wsdl:part element="impl:multiArrayParametersIntReturn" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="multiComplexParametersNilIntReturnResponse">
+
+ <wsdl:part element="impl:multiComplexParametersNilIntReturnResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="noParametersNoReturnResponse">
+
+ <wsdl:part element="impl:noParametersNoReturnResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="multiParametersNoReturnRequest">
+
+ <wsdl:part element="impl:multiParametersNoReturn" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="complexParameterComplexReturnRequest">
+ <wsdl:part element="impl:complexParameterComplexReturn" name="parameters"/>
+ </wsdl:message>
+ <wsdl:message name="complexParameterComplexReturnResponse">
+ <wsdl:part element="impl:complexParameterComplexReturnResponse" name="parameters"/>
+ </wsdl:message>
+
+ <wsdl:message name="noParametersIntReturnRequest">
+
+ <wsdl:part element="impl:noParametersIntReturn" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="multiComplexParametersIntReturnRequest">
+
+ <wsdl:part element="impl:multiComplexParametersIntReturn" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="multiComplexParametersNilIntReturnRequest">
+
+ <wsdl:part element="impl:multiComplexParametersNilIntReturn" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="multiArrayParametersIntReturnResponse">
+
+ <wsdl:part element="impl:multiArrayParametersIntReturnResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="multiParametersNoReturnResponse">
+
+ <wsdl:part element="impl:multiParametersNoReturnResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:portType name="InOut">
+
+ <wsdl:operation name="noParametersNoReturn">
+
+ <wsdl:input message="impl:noParametersNoReturnRequest" name="noParametersNoReturnRequest"/>
+
+ <wsdl:output message="impl:noParametersNoReturnResponse" name="noParametersNoReturnResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="noParametersIntReturn">
+
+ <wsdl:input message="impl:noParametersIntReturnRequest" name="noParametersIntReturnRequest"/>
+
+ <wsdl:output message="impl:noParametersIntReturnResponse" name="noParametersIntReturnResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="multiParametersNoReturn">
+
+ <wsdl:input message="impl:multiParametersNoReturnRequest" name="multiParametersNoReturnRequest"/>
+
+ <wsdl:output message="impl:multiParametersNoReturnResponse" name="multiParametersNoReturnResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="complexParameterComplexReturn">
+
+ <wsdl:input message="impl:complexParameterComplexReturnRequest" name="complexParameterComplexReturnRequest"/>
+
+ <wsdl:output message="impl:complexParameterComplexReturnResponse" name="complexParameterComplexReturnResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="multiComplexParametersIntReturn">
+
+ <wsdl:input message="impl:multiComplexParametersIntReturnRequest" name="multiComplexParametersIntReturnRequest"/>
+
+ <wsdl:output message="impl:multiComplexParametersIntReturnResponse" name="multiComplexParametersIntReturnResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="multiComplexParametersNilIntReturn">
+
+ <wsdl:input message="impl:multiComplexParametersNilIntReturnRequest" name="multiComplexParametersNilIntReturnRequest"/>
+
+ <wsdl:output message="impl:multiComplexParametersNilIntReturnResponse" name="multiComplexParametersNilIntReturnResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="multiArrayParametersIntReturn">
+
+ <wsdl:input message="impl:multiArrayParametersIntReturnRequest" name="multiArrayParametersIntReturnRequest"/>
+
+ <wsdl:output message="impl:multiArrayParametersIntReturnResponse" name="multiArrayParametersIntReturnResponse"/>
+
+ </wsdl:operation>
+
+ </wsdl:portType>
+
+ <wsdl:binding name="InOutSoapBinding" type="impl:InOut">
+
+ <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+
+ <wsdl:operation name="noParametersNoReturn">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="noParametersNoReturnRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="noParametersNoReturnResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="noParametersIntReturn">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="noParametersIntReturnRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="noParametersIntReturnResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="multiParametersNoReturn">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="multiParametersNoReturnRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="multiParametersNoReturnResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="complexParameterComplexReturn">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="complexParameterComplexReturnRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="complexParameterComplexReturnResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="multiComplexParametersIntReturn">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="multiComplexParametersIntReturnRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="multiComplexParametersIntReturnResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="multiComplexParametersNilIntReturn">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="multiComplexParametersNilIntReturnRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="multiComplexParametersNilIntReturnResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="multiArrayParametersIntReturn">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="multiArrayParametersIntReturnRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="multiArrayParametersIntReturnResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ </wsdl:binding>
+
+ <wsdl:service name="InOutService">
+
+ <wsdl:port binding="impl:InOutSoapBinding" name="InOut">
+
+ <wsdlsoap:address location="http://localhost:9080/InOut/services/InOut"/>
+
+ </wsdl:port>
+
+ </wsdl:service>
+
+</wsdl:definitions>
+
diff --git a/test/resources/wsdl/InteropTestRound1.wsdl b/test/resources/wsdl/InteropTestRound1.wsdl
new file mode 100644
index 0000000..f7d1945
--- /dev/null
+++ b/test/resources/wsdl/InteropTestRound1.wsdl
@@ -0,0 +1,333 @@
+<?xml version="1.0"?>
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- -->
+<!-- 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. -->
+
+<definitions name="InteropTest" 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:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://soapinterop.org/" xmlns:s="http://soapinterop.org/xsd" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+
+ <types>
+ <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://soapinterop.org/xsd">
+ <import namespace = "http://schemas.xmlsoap.org/soap/encoding/"/>
+ <complexType name="ArrayOfstring">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="string[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="ArrayOfint">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="int[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="ArrayOffloat">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="float[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="ArrayOfSOAPStruct">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="s:SOAPStruct[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="SOAPStruct">
+ <all>
+ <element name="varString" type="string"/>
+ <element name="varInt" type="int"/>
+ <element name="varFloat" type="float"/>
+ </all>
+ </complexType>
+ </schema>
+ </types>
+
+ <message name="echoStringRequest">
+ <part name="inputString" type="xsd:string"/>
+ </message>
+ <message name="echoStringResponse">
+ <part name="return" type="xsd:string"/>
+ </message>
+ <message name="echoStringArrayRequest">
+ <part name="inputStringArray" type="s:ArrayOfstring"/>
+ </message>
+ <message name="echoStringArrayResponse">
+ <part name="return" type="s:ArrayOfstring"/>
+ </message>
+ <message name="echoIntegerRequest">
+ <part name="inputInteger" type="xsd:int"/>
+ </message>
+ <message name="echoIntegerResponse">
+ <part name="return" type="xsd:int"/>
+ </message>
+ <message name="echoIntegerArrayRequest">
+ <part name="inputIntegerArray" type="s:ArrayOfint"/>
+ </message>
+ <message name="echoIntegerArrayResponse">
+ <part name="return" type="s:ArrayOfint"/>
+ </message>
+ <message name="echoFloatRequest">
+ <part name="inputFloat" type="xsd:float"/>
+ </message>
+ <message name="echoFloatResponse">
+ <part name="return" type="xsd:float"/>
+ </message>
+ <message name="echoFloatArrayRequest">
+ <part name="inputFloatArray" type="s:ArrayOffloat"/>
+ </message>
+ <message name="echoFloatArrayResponse">
+ <part name="return" type="s:ArrayOffloat"/>
+ </message>
+ <message name="echoStructRequest">
+ <part name="inputStruct" type="s:SOAPStruct"/>
+ </message>
+ <message name="echoStructResponse">
+ <part name="return" type="s:SOAPStruct"/>
+ </message>
+ <message name="echoStructArrayRequest">
+ <part name="inputStructArray" type="s:ArrayOfSOAPStruct"/>
+ </message>
+ <message name="echoStructArrayResponse">
+ <part name="return" type="s:ArrayOfSOAPStruct"/>
+ </message>
+ <message name="echoVoidRequest"/>
+ <message name="echoVoidResponse"/>
+ <message name="echoBase64Request">
+ <part name="inputBase64" type="xsd:base64Binary"/>
+ </message>
+ <message name="echoBase64Response">
+ <part name="return" type="xsd:base64Binary"/>
+ </message>
+ <message name="echoDateRequest">
+ <part name="inputDate" type="xsd:dateTime"/>
+ </message>
+ <message name="echoDateResponse">
+ <part name="return" type="xsd:dateTime"/>
+ </message>
+ <message name="echoHexBinaryRequest">
+ <part name="inputHexBinary" type="xsd:hexBinary"/>
+ </message>
+ <message name="echoHexBinaryResponse">
+ <part name="return" type="xsd:hexBinary"/>
+ </message>
+ <message name="echoDecimalRequest">
+ <part name="inputDecimal" type="xsd:decimal"/>
+ </message>
+ <message name="echoDecimalResponse">
+ <part name="return" type="xsd:decimal"/>
+ </message>
+ <message name="echoBooleanRequest">
+ <part name="inputBoolean" type="xsd:boolean"/>
+ </message>
+ <message name="echoBooleanResponse">
+ <part name="return" type="xsd:boolean"/>
+ </message>
+
+ <portType name="InteropTestPortType">
+ <operation name="echoString" parameterOrder="inputString">
+ <input message="tns:echoStringRequest"/>
+ <output message="tns:echoStringResponse"/>
+ </operation>
+ <operation name="echoStringArray" parameterOrder="inputStringArray">
+ <input message="tns:echoStringArrayRequest"/>
+ <output message="tns:echoStringArrayResponse"/>
+ </operation>
+ <operation name="echoInteger" parameterOrder="inputInteger">
+ <input message="tns:echoIntegerRequest"/>
+ <output message="tns:echoIntegerResponse"/>
+ </operation>
+ <operation name="echoIntegerArray" parameterOrder="inputIntegerArray">
+ <input message="tns:echoIntegerArrayRequest"/>
+ <output message="tns:echoIntegerArrayResponse"/>
+ </operation>
+ <operation name="echoFloat" parameterOrder="inputFloat">
+ <input message="tns:echoFloatRequest"/>
+ <output message="tns:echoFloatResponse"/>
+ </operation>
+ <operation name="echoFloatArray" parameterOrder="inputFloatArray">
+ <input message="tns:echoFloatArrayRequest"/>
+ <output message="tns:echoFloatArrayResponse"/>
+ </operation>
+ <operation name="echoStruct" parameterOrder="inputStruct">
+ <input message="tns:echoStructRequest"/>
+ <output message="tns:echoStructResponse"/>
+ </operation>
+ <operation name="echoStructArray" parameterOrder="inputStructArray">
+ <input message="tns:echoStructArrayRequest"/>
+ <output message="tns:echoStructArrayResponse"/>
+ </operation>
+ <operation name="echoVoid">
+ <input message="tns:echoVoidRequest"/>
+ <output message="tns:echoVoidResponse"/>
+ </operation>
+ <operation name="echoBase64" parameterOrder="inputBase64">
+ <input message="tns:echoBase64Request"/>
+ <output message="tns:echoBase64Response"/>
+ </operation>
+ <operation name="echoDate" parameterOrder="inputDate">
+ <input message="tns:echoDateRequest"/>
+ <output message="tns:echoDateResponse"/>
+ </operation>
+ <operation name="echoHexBinary" parameterOrder="inputHexBinary">
+ <input message="tns:echoHexBinaryRequest"/>
+ <output message="tns:echoHexBinaryResponse"/>
+ </operation>
+ <operation name="echoDecimal" parameterOrder="inputDecimal">
+ <input message="tns:echoDecimalRequest"/>
+ <output message="tns:echoDecimalResponse"/>
+ </operation>
+ <operation name="echoBoolean" parameterOrder="inputBoolean">
+ <input message="tns:echoBooleanRequest"/>
+ <output message="tns:echoBooleanResponse"/>
+ </operation>
+ </portType>
+
+ <binding name="InteropTestSoapBinding" type="tns:InteropTestPortType">
+ <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="echoString">
+ <soap:operation soapAction="InteropBase#echoString"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoStringArray">
+ <soap:operation soapAction="InteropBase#echoStringArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoInteger">
+ <soap:operation soapAction="InteropBase#echoInteger"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoIntegerArray">
+ <soap:operation soapAction="InteropBase#echoIntegerArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoFloat">
+ <soap:operation soapAction="InteropBase#echoFloat"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoFloatArray">
+ <soap:operation soapAction="InteropBase#echoFloatArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoStruct">
+ <soap:operation soapAction="InteropBase#echoStruct"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoStructArray">
+ <soap:operation soapAction="InteropBase#echoStructArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoVoid">
+ <soap:operation soapAction="InteropBase#echoVoid"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoBase64">
+ <soap:operation soapAction="InteropBase#echoBase64"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoDate">
+ <soap:operation soapAction="InteropBase#echoDate"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoHexBinary">
+ <soap:operation soapAction="InteropBase#echoHexBinary"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoDecimal">
+ <soap:operation soapAction="InteropBase#echoDecimal"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoBoolean">
+ <soap:operation soapAction="InteropBase#echoBoolean"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ </binding>
+ <service name="InteropBase">
+ <port binding="tns:InteropTestSoapBinding" name="InteropBaseTest">
+ <soap:address location="http://localhost/axis/InteropBase"/>
+ </port>
+ </service>
+</definitions>
diff --git a/test/resources/wsdl/InteropTestRound1Doc.wsdl b/test/resources/wsdl/InteropTestRound1Doc.wsdl
new file mode 100644
index 0000000..be1d09b
--- /dev/null
+++ b/test/resources/wsdl/InteropTestRound1Doc.wsdl
@@ -0,0 +1,774 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- (c) Copyright IBM Corp. 2004, 2005 All Rights Reserved -->
+<!-- -->
+<!-- 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 targetNamespace="http://soapinterop.org" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://soapinterop.org" xmlns:intf="http://soapinterop.org" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <wsdl:types>
+ <schema elementFormDefault="qualified" targetNamespace="http://soapinterop.org" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://soapinterop.org" xmlns:intf="http://soapinterop.org" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+ <element name="echoString">
+ <complexType>
+ <sequence>
+ <element name="arg_0_0" nillable="true" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoStringResponse">
+ <complexType>
+ <sequence>
+ <element name="echoStringReturn" nillable="true" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoStringArray">
+ <complexType>
+ <sequence>
+ <element maxOccurs="unbounded" name="arg_0_1" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoStringArrayResponse">
+ <complexType>
+ <sequence>
+ <element maxOccurs="unbounded" name="echoStringArrayReturn" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoInteger">
+ <complexType>
+ <sequence>
+ <element name="arg_0_2" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoIntegerResponse">
+ <complexType>
+ <sequence>
+ <element name="echoIntegerReturn" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoIntegerArray">
+ <complexType>
+ <sequence>
+ <element maxOccurs="unbounded" name="arg_0_3" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoIntegerArrayResponse">
+ <complexType>
+ <sequence>
+ <element maxOccurs="unbounded" name="echoIntegerArrayReturn" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoFloat">
+ <complexType>
+ <sequence>
+ <element name="arg_0_4" type="xsd:float"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoFloatResponse">
+ <complexType>
+ <sequence>
+ <element name="echoFloatReturn" type="xsd:float"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoFloatArray">
+ <complexType>
+ <sequence>
+ <element maxOccurs="unbounded" name="arg_0_5" type="xsd:float"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoFloatArrayResponse">
+ <complexType>
+ <sequence>
+ <element maxOccurs="unbounded" name="echoFloatArrayReturn" type="xsd:float"/>
+ </sequence>
+ </complexType>
+ </element>
+ <complexType name="SOAPStruct">
+ <sequence>
+ <element name="varString" nillable="true" type="xsd:string"/>
+ <element name="varInt" type="xsd:int"/>
+ <element name="varFloat" type="xsd:float"/>
+ </sequence>
+ </complexType>
+ <element name="echoStruct">
+ <complexType>
+ <sequence>
+ <element name="arg_0_6" nillable="true" type="impl:SOAPStruct"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoStructResponse">
+ <complexType>
+ <sequence>
+ <element name="echoStructReturn" nillable="true" type="impl:SOAPStruct"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoStructArray">
+ <complexType>
+ <sequence>
+ <element maxOccurs="unbounded" name="arg_0_7" type="impl:SOAPStruct"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoStructArrayResponse">
+ <complexType>
+ <sequence>
+ <element maxOccurs="unbounded" name="echoStructArrayReturn" type="impl:SOAPStruct"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoVoid">
+ <complexType>
+ <sequence/>
+ </complexType>
+ </element>
+ <element name="echoVoidResponse">
+ <complexType>
+ <sequence/>
+ </complexType>
+ </element>
+ <element name="echoBase64">
+ <complexType>
+ <sequence>
+ <element name="arg_0_9" type="xsd:base64Binary"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoBase64Response">
+ <complexType>
+ <sequence>
+ <element name="echoBase64Return" type="xsd:base64Binary"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoDate">
+ <complexType>
+ <sequence>
+ <element name="arg_0_10" nillable="true" type="xsd:dateTime"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoDateResponse">
+ <complexType>
+ <sequence>
+ <element name="echoDateReturn" nillable="true" type="xsd:dateTime"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoHexBinary">
+ <complexType>
+ <sequence>
+ <element name="arg_0_11" type="xsd:hexBinary"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoHexBinaryResponse">
+ <complexType>
+ <sequence>
+ <element name="echoHexBinaryReturn" type="xsd:hexBinary"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoDecimal">
+ <complexType>
+ <sequence>
+ <element name="arg_0_12" nillable="true" type="xsd:decimal"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoDecimalResponse">
+ <complexType>
+ <sequence>
+ <element name="echoDecimalReturn" nillable="true" type="xsd:decimal"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoBoolean">
+ <complexType>
+ <sequence>
+ <element name="arg_0_13" type="xsd:boolean"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoBooleanResponse">
+ <complexType>
+ <sequence>
+ <element name="echoBooleanReturn" type="xsd:boolean"/>
+ </sequence>
+ </complexType>
+ </element>
+ </schema>
+ </wsdl:types>
+
+ <wsdl:message name="echoBooleanResponse">
+
+ <wsdl:part element="impl:echoBooleanResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="echoBase64Response">
+
+ <wsdl:part element="impl:echoBase64Response" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="echoVoidRequest">
+
+ <wsdl:part element="impl:echoVoid" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="echoStringArrayRequest">
+
+ <wsdl:part element="impl:echoStringArray" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="echoDecimalResponse">
+
+ <wsdl:part element="impl:echoDecimalResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="echoFloatResponse">
+
+ <wsdl:part element="impl:echoFloatResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="echoBase64Request">
+
+ <wsdl:part element="impl:echoBase64" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="echoDateResponse">
+
+ <wsdl:part element="impl:echoDateResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="echoBooleanRequest">
+
+ <wsdl:part element="impl:echoBoolean" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="echoHexBinaryRequest">
+
+ <wsdl:part element="impl:echoHexBinary" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="echoHexBinaryResponse">
+
+ <wsdl:part element="impl:echoHexBinaryResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="echoFloatRequest">
+
+ <wsdl:part element="impl:echoFloat" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="echoIntegerResponse">
+
+ <wsdl:part element="impl:echoIntegerResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="echoFloatArrayRequest">
+
+ <wsdl:part element="impl:echoFloatArray" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="echoStringArrayResponse">
+
+ <wsdl:part element="impl:echoStringArrayResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="echoStructArrayRequest">
+
+ <wsdl:part element="impl:echoStructArray" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="echoStructRequest">
+
+ <wsdl:part element="impl:echoStruct" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="echoIntegerRequest">
+
+ <wsdl:part element="impl:echoInteger" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="echoDateRequest">
+
+ <wsdl:part element="impl:echoDate" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="echoIntegerArrayRequest">
+
+ <wsdl:part element="impl:echoIntegerArray" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="echoDecimalRequest">
+
+ <wsdl:part element="impl:echoDecimal" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="echoStructResponse">
+
+ <wsdl:part element="impl:echoStructResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="echoFloatArrayResponse">
+
+ <wsdl:part element="impl:echoFloatArrayResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="echoStringResponse">
+
+ <wsdl:part element="impl:echoStringResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="echoVoidResponse">
+
+ <wsdl:part element="impl:echoVoidResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="echoStructArrayResponse">
+
+ <wsdl:part element="impl:echoStructArrayResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="echoIntegerArrayResponse">
+
+ <wsdl:part element="impl:echoIntegerArrayResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="echoStringRequest">
+
+ <wsdl:part element="impl:echoString" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:portType name="InteropTestPortTypeDoc">
+
+ <wsdl:operation name="echoString">
+
+ <wsdl:input message="impl:echoStringRequest" name="echoStringRequest"/>
+
+ <wsdl:output message="impl:echoStringResponse" name="echoStringResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="echoStringArray">
+
+ <wsdl:input message="impl:echoStringArrayRequest" name="echoStringArrayRequest"/>
+
+ <wsdl:output message="impl:echoStringArrayResponse" name="echoStringArrayResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="echoInteger">
+
+ <wsdl:input message="impl:echoIntegerRequest" name="echoIntegerRequest"/>
+
+ <wsdl:output message="impl:echoIntegerResponse" name="echoIntegerResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="echoIntegerArray">
+
+ <wsdl:input message="impl:echoIntegerArrayRequest" name="echoIntegerArrayRequest"/>
+
+ <wsdl:output message="impl:echoIntegerArrayResponse" name="echoIntegerArrayResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="echoFloat">
+
+ <wsdl:input message="impl:echoFloatRequest" name="echoFloatRequest"/>
+
+ <wsdl:output message="impl:echoFloatResponse" name="echoFloatResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="echoFloatArray">
+
+ <wsdl:input message="impl:echoFloatArrayRequest" name="echoFloatArrayRequest"/>
+
+ <wsdl:output message="impl:echoFloatArrayResponse" name="echoFloatArrayResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="echoStruct">
+
+ <wsdl:input message="impl:echoStructRequest" name="echoStructRequest"/>
+
+ <wsdl:output message="impl:echoStructResponse" name="echoStructResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="echoStructArray">
+
+ <wsdl:input message="impl:echoStructArrayRequest" name="echoStructArrayRequest"/>
+
+ <wsdl:output message="impl:echoStructArrayResponse" name="echoStructArrayResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="echoVoid">
+
+ <wsdl:input message="impl:echoVoidRequest" name="echoVoidRequest"/>
+
+ <wsdl:output message="impl:echoVoidResponse" name="echoVoidResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="echoBase64">
+
+ <wsdl:input message="impl:echoBase64Request" name="echoBase64Request"/>
+
+ <wsdl:output message="impl:echoBase64Response" name="echoBase64Response"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="echoDate">
+
+ <wsdl:input message="impl:echoDateRequest" name="echoDateRequest"/>
+
+ <wsdl:output message="impl:echoDateResponse" name="echoDateResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="echoHexBinary">
+
+ <wsdl:input message="impl:echoHexBinaryRequest" name="echoHexBinaryRequest"/>
+
+ <wsdl:output message="impl:echoHexBinaryResponse" name="echoHexBinaryResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="echoDecimal">
+
+ <wsdl:input message="impl:echoDecimalRequest" name="echoDecimalRequest"/>
+
+ <wsdl:output message="impl:echoDecimalResponse" name="echoDecimalResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="echoBoolean">
+
+ <wsdl:input message="impl:echoBooleanRequest" name="echoBooleanRequest"/>
+
+ <wsdl:output message="impl:echoBooleanResponse" name="echoBooleanResponse"/>
+
+ </wsdl:operation>
+
+ </wsdl:portType>
+
+ <wsdl:binding name="InteropBaseSoapBinding" type="impl:InteropTestPortTypeDoc">
+
+ <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+
+ <wsdl:operation name="echoString">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="echoStringRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="echoStringResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="echoStringArray">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="echoStringArrayRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="echoStringArrayResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="echoInteger">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="echoIntegerRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="echoIntegerResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="echoIntegerArray">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="echoIntegerArrayRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="echoIntegerArrayResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="echoFloat">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="echoFloatRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="echoFloatResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="echoFloatArray">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="echoFloatArrayRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="echoFloatArrayResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="echoStruct">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="echoStructRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="echoStructResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="echoStructArray">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="echoStructArrayRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="echoStructArrayResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="echoVoid">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="echoVoidRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="echoVoidResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="echoBase64">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="echoBase64Request">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="echoBase64Response">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="echoDate">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="echoDateRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="echoDateResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="echoHexBinary">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="echoHexBinaryRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="echoHexBinaryResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="echoDecimal">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="echoDecimalRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="echoDecimalResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="echoBoolean">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="echoBooleanRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="echoBooleanResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ </wsdl:binding>
+
+ <wsdl:service name="InteropTestPortTypeDocService">
+
+ <wsdl:port binding="impl:InteropBaseSoapBinding" name="InteropBaseDoc">
+
+ <wsdlsoap:address location="http://localhost/axis/InteropBaseDoc"/>
+
+ </wsdl:port>
+
+ </wsdl:service>
+
+</wsdl:definitions>
diff --git a/test/resources/wsdl/LargeReturningString.wsdl b/test/resources/wsdl/LargeReturningString.wsdl
new file mode 100644
index 0000000..9b031da
--- /dev/null
+++ b/test/resources/wsdl/LargeReturningString.wsdl
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- (c) Copyright IBM Corp. 2004, 2005 All Rights Reserved -->
+<!-- -->
+<!-- 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 targetNamespace="http://largereturningstring.test.apache.org" xmlns:impl="http://largereturningstring.test.apache.org" xmlns:intf="http://largereturningstring.test.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">
+ <wsdl:types>
+ <schema elementFormDefault="qualified" targetNamespace="http://largereturningstring.test.apache.org" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:impl="http://largereturningstring.test.apache.org" xmlns:intf="http://largereturningstring.test.apache.org" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <element name="getLargeString">
+ <complexType>
+ <sequence>
+ <element name="size" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="getLargeStringResponse">
+ <complexType>
+ <sequence>
+ <element name="getLargeStringReturn" nillable="true" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </element>
+ </schema>
+ </wsdl:types>
+
+ <wsdl:message name="getLargeStringRequest">
+
+ <wsdl:part element="intf:getLargeString" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="getLargeStringResponse">
+
+ <wsdl:part element="intf:getLargeStringResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:portType name="LargeReturningString">
+
+ <wsdl:operation name="getLargeString">
+
+ <wsdl:input message="intf:getLargeStringRequest" name="getLargeStringRequest"/>
+
+ <wsdl:output message="intf:getLargeStringResponse" name="getLargeStringResponse"/>
+
+ </wsdl:operation>
+
+ </wsdl:portType>
+
+ <wsdl:binding name="LargeReturningStringSoapBinding" type="intf:LargeReturningString">
+
+ <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+
+ <wsdl:operation name="getLargeString">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="getLargeStringRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="getLargeStringResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ </wsdl:binding>
+
+ <wsdl:service name="LargeReturningStringService">
+
+ <wsdl:port binding="intf:LargeReturningStringSoapBinding" name="LargeReturningString">
+
+ <wsdlsoap:address location="http://localhost:9080/LargeReturningString/services/LargeReturningString"/>
+
+ </wsdl:port>
+
+ </wsdl:service>
+
+</wsdl:definitions>
diff --git a/test/resources/wsdl/LimitedAllTest.wsdl b/test/resources/wsdl/LimitedAllTest.wsdl
new file mode 100644
index 0000000..75324b0
--- /dev/null
+++ b/test/resources/wsdl/LimitedAllTest.wsdl
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>
+<definitions xmlns:s1="http://soapinterop.org/xsd" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s0="http://soapinterop.org/" xmlns:s3="http://soapinterop.org/echoheader/" xmlns:soap12enc="http://www.w3.org/2002/06/soap-envelope" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s2="http://soapinterop.org" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" targetNamespace="http://soapinterop.org/" xmlns="http://schemas.xmlsoap.org/wsdl/">
+ <types>
+ <s:schema elementFormDefault="qualified" targetNamespace="http://soapinterop.org/">
+ <s:import namespace="http://soapinterop.org/xsd" />
+
+
+
+
+ <s:element name="echoAll">
+ <s:complexType>
+ <s:sequence>
+ <s:element name="inputAll" type="s1:AllComplexType" />
+ </s:sequence>
+ </s:complexType>
+ </s:element>
+ <s:element name="echoAllResponse">
+ <s:complexType>
+ <s:sequence>
+ <s:element name="return" type="s1:AllComplexType" />
+ </s:sequence>
+ </s:complexType>
+ </s:element>
+
+
+
+ </s:schema>
+
+ <s:schema elementFormDefault="qualified" targetNamespace="http://soapinterop.org/xsd">
+ <s:import namespace="http://soapinterop.org/" />
+
+ <s:complexType name="AllComplexType">
+ <s:all>
+ <s:element name="Value0" type="s:int" />
+ <s:element minOccurs="0" name="Value1" type="s:int" />
+ <s:element minOccurs="0" name="Value2" type="s:string" />
+ </s:all>
+ </s:complexType>
+ </s:schema>
+
+ </types>
+
+
+
+ <message name="echoAllSoapIn">
+ <part name="parameters" element="s0:echoAll" />
+ </message>
+ <message name="echoAllSoapOut">
+ <part name="parameters" element="s0:echoAllResponse" />
+ </message>
+
+ <portType name="AllTestSoap">
+
+
+ <operation name="echoAll">
+ <input message="s0:echoAllSoapIn" />
+ <output message="s0:echoAllSoapOut" />
+ </operation>
+
+ </portType>
+
+
+ <binding name="AllTestSoap" type="s0:AllTestSoap">
+ <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
+
+ <operation name="echoAll">
+ <soap:operation soapAction="SimpleAllTest#echoAll" style="document" />
+ <input>
+ <soap:body use="literal" />
+ </input>
+ <output>
+ <soap:body use="literal" />
+ </output>
+ </operation>
+
+ </binding>
+
+<binding name="AllTestSoap12" type="s0:AllTestSoap">
+ <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
+
+
+ <operation name="echoAll">
+ <soap12:operation soapAction="All#echoAll" style="document" />
+ <input>
+ <soap12:body use="literal" />
+ </input>
+ <output>
+ <soap12:body use="literal" />
+ </output>
+ </operation>
+
+ </binding>
+
+<service name="AllTest">
+ <documentation>These operations implement DOC/LIT SOAP operations, for interop testing. Please email johnko@microsoft.com with any questions/coments.</documentation>
+ <port name="AllTestSoap" binding="s0:AllTestSoap">
+ <soap:address location="http://localhost:90/axis/All" />
+ </port>
+ <port name="AllTestSoap12" binding="s0:AllTestSoap12">
+ <soap12:address location="http://localhost:90/axis/All" />
+ </port>
+ </service>
+</definitions> \ No newline at end of file
diff --git a/test/resources/wsdl/ManyTypeRefRoot.wsdl b/test/resources/wsdl/ManyTypeRefRoot.wsdl
new file mode 100644
index 0000000..13dec3d
--- /dev/null
+++ b/test/resources/wsdl/ManyTypeRefRoot.wsdl
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- (c) Copyright IBM Corp. 2004, 2005 All Rights Reserved -->
+<!-- -->
+<!-- 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. -->
+
+<definitions
+ targetNamespace="http://manytyperefroot.test.apache.org"
+ xmlns:wsi="http://ws-i.org/schemas/conformanceClaim/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:tns="http://manytyperefroot.test.apache.org"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns="http://schemas.xmlsoap.org/wsdl/">
+ <types>
+ <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://manytyperefroot.test.apache.org"
+ xmlns:tns="http://manytyperefroot.test.apache.org">
+
+ <xsd:element name="getInput">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="types" maxOccurs="unbounded" minOccurs="0" type="tns:Type1"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="getInputResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="Type1" maxOccurs="unbounded" minOccurs="0" type="tns:Type1"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:complexType name="Type1">
+ <xsd:sequence>
+ <xsd:element name="kind" minOccurs="0" type="xsd:string"/>
+ <xsd:element name="index" minOccurs="0" type="xsd:int"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ </xsd:schema>
+ </types>
+
+
+ <message name="input">
+ <part name="parameters" element="tns:getInput" />
+ </message>
+
+ <message name="output">
+ <part name="parameters" element="tns:getInputResponse" />
+ </message>
+
+ <portType name="ManyTypeRefRoot">
+ <operation name="getInput">
+ <input message="tns:input" />
+ <output message="tns:output" />
+ </operation>
+ </portType>
+
+ <binding name="ManyTypeRefRootBinding" type="tns:ManyTypeRefRoot">
+ <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
+ <operation name="getInput">
+ <soap:operation/>
+ <input>
+ <soap:body use="literal" />
+ </input>
+ <output>
+ <soap:body use="literal" />
+ </output>
+ </operation>
+ </binding>
+
+ <service name="ManyTypeRefRootService">
+ <port name="sampleWS" binding="tns:ManyTypeRefRootBinding">
+ <soap:address location="http://localhost:9080/ManyTypeRefRoot/services/sampleWS" />
+ </port>
+ </service>
+</definitions>
diff --git a/test/resources/wsdl/MathOps.wsdl b/test/resources/wsdl/MathOps.wsdl
new file mode 100644
index 0000000..f7f810f
--- /dev/null
+++ b/test/resources/wsdl/MathOps.wsdl
@@ -0,0 +1,71 @@
+<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://soapinterop.org/wsdl" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/types" targetNamespace="http://soapinterop.org/wsdl">
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- -->
+<!-- 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. -->
+
+ <types>
+ <schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://soapinterop.org/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://soapinterop.org/types">
+ <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
+ <complexType name="DivByZeroStruct">
+ <sequence>
+ <element name="varString" type="xsd:string"/>
+ <element name="varInt" type="xsd:int"/>
+ <element name="varFloat" type="xsd:float"/>
+ </sequence>
+ </complexType>
+ </schema>
+ </types>
+ <message name="DivByZeroFault">
+ <part name="faultstruct1" type="ns2:DivByZeroStruct"/>
+ </message>
+ <message name="divRequest">
+ <part name="int0" type="xsd:int"/>
+ <part name="int1" type="xsd:int"/>
+ </message>
+ <message name="divResponse">
+ <part name="addReturn" type="xsd:int"/>
+ </message>
+ <portType name="MathOps">
+ <operation name="div" parameterOrder ="int0 int1">
+ <input message="tns:divRequest"/>
+ <output message="tns:divResponse"/>
+ <fault name="DivByZero" message="tns:DivByZeroFault"/>
+ </operation>
+ </portType>
+ <binding name="MathOpsBinding" type="tns:MathOps">
+ <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="div">
+ <soap:operation soapAction="MathOps#div"/>
+ <input name="divRequest">
+ <soap:body
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ namespace="http://localhost/axis/MathOps"
+ use="encoded"/>
+ </input>
+ <output name="divResponse">
+ <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ namespace="http://localhost/axis/MathOps"
+ use="encoded"/>
+ </output>
+ <fault name="DivByZero">
+ <soap:fault name="DivByZero" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://soapinterop.org/wsdl"/>
+ </fault>
+ </operation>
+ </binding>
+ <service name="MathOpsService">
+ <port name="MathOps" binding="tns:MathOpsBinding">
+ <soap:address location="http://localhost/axis/MathOps"/>
+ </port>
+ </service>
+ <!-- Fault messages -->
+</definitions>
diff --git a/test/resources/wsdl/MathOpsDoc.wsdl b/test/resources/wsdl/MathOpsDoc.wsdl
new file mode 100644
index 0000000..e85ae96
--- /dev/null
+++ b/test/resources/wsdl/MathOpsDoc.wsdl
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- (c) Copyright IBM Corp. 2004, 2005 All Rights Reserved -->
+<!-- -->
+<!-- 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 targetNamespace="http://soapinterop.org" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://soapinterop.org" xmlns:intf="http://soapinterop.org" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <wsdl:types>
+ <schema elementFormDefault="qualified" targetNamespace="http://soapinterop.org" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://soapinterop.org" xmlns:intf="http://soapinterop.org" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+ <element name="div">
+ <complexType>
+ <sequence>
+ <element name="arg_0_0" type="xsd:int"/>
+ <element name="arg_1_0" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="divResponse">
+ <complexType>
+ <sequence>
+ <element name="divReturn" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ </element>
+ <complexType name="DivByZeroStruct">
+ <sequence>
+ <element name="varString" nillable="true" type="xsd:string"/>
+ <element name="varInt" type="xsd:int"/>
+ <element name="varFloat" type="xsd:float"/>
+ </sequence>
+ </complexType>
+ <element name="DivByZeroStruct" nillable="true" type="impl:DivByZeroStruct"/>
+ </schema>
+ </wsdl:types>
+
+ <wsdl:message name="divRequest">
+
+ <wsdl:part element="impl:div" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="divResponse">
+
+ <wsdl:part element="impl:divResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="DivByZeroStruct">
+
+ <wsdl:part element="impl:DivByZeroStruct" name="fault"/>
+
+ </wsdl:message>
+
+ <wsdl:portType name="MathOps">
+
+ <wsdl:operation name="div">
+
+ <wsdl:input message="impl:divRequest" name="divRequest"/>
+
+ <wsdl:output message="impl:divResponse" name="divResponse"/>
+
+ <wsdl:fault message="impl:DivByZeroStruct" name="DivByZeroStruct"/>
+
+ </wsdl:operation>
+
+ </wsdl:portType>
+
+ <wsdl:binding name="MathOpsSoapBinding" type="impl:MathOps">
+
+ <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+
+ <wsdl:operation name="div">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="divRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="divResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ <wsdl:fault name="DivByZeroStruct">
+
+ <wsdlsoap:fault name="DivByZeroStruct" use="literal"/>
+
+ </wsdl:fault>
+
+ </wsdl:operation>
+
+ </wsdl:binding>
+
+ <wsdl:service name="MathOpsService">
+
+ <wsdl:port binding="impl:MathOpsSoapBinding" name="MathOps">
+
+ <wsdlsoap:address location="http://localhost/axis/MathOps"/>
+
+ </wsdl:port>
+
+ </wsdl:service>
+
+</wsdl:definitions>
diff --git a/test/resources/wsdl/MinOccurTest.wsdl b/test/resources/wsdl/MinOccurTest.wsdl
new file mode 100644
index 0000000..29d8c78
--- /dev/null
+++ b/test/resources/wsdl/MinOccurTest.wsdl
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="utf-8"?>
+<definitions xmlns:s1="http://soapinterop.org/xsd" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s0="http://soapinterop.org/" xmlns:s3="http://soapinterop.org/echoheader/" xmlns:soap12enc="http://www.w3.org/2002/06/soap-envelope" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s2="http://soapinterop.org" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" targetNamespace="http://soapinterop.org/" xmlns="http://schemas.xmlsoap.org/wsdl/">
+ <types>
+ <s:schema elementFormDefault="qualified" targetNamespace="http://soapinterop.org/">
+ <s:import namespace="http://soapinterop.org/xsd" />
+
+
+
+
+ <s:element name="echoAll">
+ <s:complexType>
+ <s:sequence>
+ <s:element name="inputAll" type="s1:AllComplexType" />
+ </s:sequence>
+ </s:complexType>
+ </s:element>
+ <s:element name="echoAllResponse">
+ <s:complexType>
+ <s:sequence>
+ <s:element name="return" type="s1:AllComplexType" />
+ </s:sequence>
+ </s:complexType>
+ </s:element>
+
+
+
+ </s:schema>
+
+ <s:schema elementFormDefault="qualified" targetNamespace="http://soapinterop.org/xsd">
+ <s:import namespace="http://soapinterop.org/" />
+
+ <s:complexType name="AllComplexType">
+ <s:sequence>
+ <s:element minOccurs="1" maxOccurs="1" name="Value0" type="s:int" />
+ <s:element name="Value1" type="s:int" />
+ <s:element minOccurs="0" name="Value2" type="s:int" />
+ <s:element minOccurs="0" name="Value3" type="s:string" nillable="true" />
+ <s:element minOccurs="0" name="Value4" type="s:int" nillable="true" />
+ <s:element minOccurs="0" name="Value5" type="s:string" />
+ <s:element minOccurs="1" maxOccurs="1" name="Value6" type="s:string" />
+ </s:sequence>
+ </s:complexType>
+ </s:schema>
+
+ </types>
+
+
+
+ <message name="echoAllSoapIn">
+ <part name="parameters" element="s0:echoAll" />
+ </message>
+ <message name="echoAllSoapOut">
+ <part name="parameters" element="s0:echoAllResponse" />
+ </message>
+
+ <portType name="AllTestSoap">
+
+
+ <operation name="echoAll">
+ <input message="s0:echoAllSoapIn" />
+ <output message="s0:echoAllSoapOut" />
+ </operation>
+
+ </portType>
+
+
+ <binding name="AllTestSoap" type="s0:AllTestSoap">
+ <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
+
+ <operation name="echoAll">
+ <soap:operation soapAction="SimpleAllTest#echoAll" style="document" />
+ <input>
+ <soap:body use="literal" />
+ </input>
+ <output>
+ <soap:body use="literal" />
+ </output>
+ </operation>
+
+ </binding>
+
+<binding name="AllTestSoap12" type="s0:AllTestSoap">
+ <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
+
+
+ <operation name="echoAll">
+ <soap12:operation soapAction="All#echoAll" style="document" />
+ <input>
+ <soap12:body use="literal" />
+ </input>
+ <output>
+ <soap12:body use="literal" />
+ </output>
+ </operation>
+
+ </binding>
+
+<service name="AllTest">
+ <documentation>These operations implement DOC/LIT SOAP operations, for interop testing. Please email johnko@microsoft.com with any questions/coments.</documentation>
+ <port name="AllTestSoap" binding="s0:AllTestSoap">
+ <soap:address location="http://localhost:90/axis/All" />
+ </port>
+ <port name="AllTestSoap12" binding="s0:AllTestSoap12">
+ <soap12:address location="http://localhost:90/axis/All" />
+ </port>
+ </service>
+</definitions> \ No newline at end of file
diff --git a/test/resources/wsdl/MultiOut.wsdl b/test/resources/wsdl/MultiOut.wsdl
new file mode 100644
index 0000000..9590b29
--- /dev/null
+++ b/test/resources/wsdl/MultiOut.wsdl
@@ -0,0 +1,139 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- (c) Copyright IBM Corp. 2004, 2005 All Rights Reserved -->
+<!-- -->
+<!-- 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 targetNamespace="http://localhost/axis/MultiOut"
+ xmlns:apachesoap="http://xml.apache.org/xml-soap"
+ xmlns:impl="http://localhost/axis/MultiOut"
+ xmlns:intf="http://localhost/axis/MultiOut"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+
+ <wsdl:types>
+ <schema elementFormDefault="qualified"
+ targetNamespace="http://localhost/axis/MultiOut"
+ xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:apachesoap="http://xml.apache.org/xml-soap"
+ xmlns:impl="http://localhost/axis/MultiOut"
+ xmlns:intf="http://localhost/axis/MultiOut"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+ <element name="get0">
+ <complexType>
+ <sequence>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="get">
+ <complexType>
+ <sequence>
+ <element name="out1" type="xsd:string"/>
+ <element nillable="true" name="out14" type="xsd:integer"/>
+ <element name="out15" type="xsd:int"/>
+ <element name="out16" type="xsd:long"/>
+ <element name="out17" type="xsd:short"/>
+ <element name="out18" type="xsd:decimal"/>
+ <element name="out19" type="xsd:float"/>
+ <element name="out20" type="xsd:double"/>
+ <element name="out21" type="xsd:boolean"/>
+ <element name="out22" type="xsd:byte"/>
+
+<!--
+ <element name="out1" type="xsd:string"/>
+ <element name="out2" type="xsd:normalizedString"/>
+ <element name="out3" type="xsd:token"/>
+ <element name="out4" type="xsd:language"/>
+ <element name="out5" type="xsd:Name"/>
+ <element name="out6" type="xsd:NCName"/>
+ <element name="out7" type="xsd:ID"/>
+ <element name="out8" type="xsd:IDREF"/>
+ <element name="out9" type="xsd:IDREFS"/>
+ <element name="out10" type="xsd:ENTITY"/>
+ <element name="out11" type="xsd:ENTITIES"/>
+ <element name="out12" type="xsd:NMTOKEN"/>
+ <element name="out13" type="xsd:NMTOKENS"/>
+ <element name="out14" type="xsd:integer"/>
+ <element name="out15" type="xsd:int"/>
+ <element name="out16" type="xsd:long"/>
+ <element name="out17" type="xsd:short"/>
+ <element name="out18" type="xsd:decimal"/>
+ <element name="out19" type="xsd:float"/>
+ <element name="out20" type="xsd:double"/>
+ <element name="out21" type="xsd:boolean"/>
+ <element name="out22" type="xsd:byte"/>
+ <element name="out23" type="xsd:QName"/>
+ <element name="out24" type="xsd:NOTATION"/>
+ <element name="out25" type="xsd:dateTime"/>
+ <element name="out26" type="xsd:date"/>
+ <element name="out27" type="xsd:time"/>
+ <element name="out28" type="xsd:gYearMonth"/>
+ <element name="out29" type="xsd:gYear"/>
+ <element name="out30" type="xsd:gMonthDay"/>
+ <element name="out31" type="xsd:gDay"/>
+ <element name="out32" type="xsd:gMonth"/>
+ <element name="out33" type="xsd:duration"/>
+ <element name="out34" type="xsd:nonNegativeInteger"/>
+ <element name="out35" type="xsd:unsignedByte"/>
+ <element name="out36" type="xsd:unsignedInt"/>
+ <element name="out37" type="xsd:unsignedLong"/>
+ <element name="out38" type="xsd:unsignedShort"/>
+ <element name="out39" type="xsd:nonPositiveInteger"/>
+ <element name="out40" type="xsd:positiveInteger"/>
+ <element name="out41" type="xsd:negativeInteger"/>
+ <element name="out42" type="xsd:base64Binary"/>
+ <element name="out43" type="xsd:hexBinary"/>
+ <element name="out44" type="xsd:anyURI"/>
+-->
+
+ </sequence>
+ </complexType>
+ </element>
+ </schema>
+ </wsdl:types>
+
+ <wsdl:message name="get0">
+ <wsdl:part element="impl:get0" name="parameters"/>
+ </wsdl:message>
+ <wsdl:message name="get">
+ <wsdl:part element="impl:get" name="parameters"/>
+ </wsdl:message>
+
+ <wsdl:portType name="MultiOut">
+ <wsdl:operation name="get">
+ <wsdl:input message="impl:get0" name="get0"/>
+ <wsdl:output message="impl:get" name="get"/>
+ </wsdl:operation>
+ </wsdl:portType>
+
+ <wsdl:binding name="MultiOutSoapBinding" type="impl:MultiOut">
+ <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <wsdl:operation name="get">
+ <wsdlsoap:operation soapAction="MultiOut#get"/>
+ <wsdl:input name="get0">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="get">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+
+ <wsdl:service name="MultiOut">
+ <wsdl:port binding="impl:MultiOutSoapBinding" name="MultiOut">
+ <wsdlsoap:address location="http://localhost/axis/MultiOut"/>
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/test/resources/wsdl/NestedArrays.wsdl b/test/resources/wsdl/NestedArrays.wsdl
new file mode 100644
index 0000000..17760b7
--- /dev/null
+++ b/test/resources/wsdl/NestedArrays.wsdl
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- (c) Copyright IBM Corp. 2004, 2005 All Rights Reserved -->
+<!-- -->
+<!-- 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 targetNamespace="http://complexissues.test.apache.org" xmlns:impl="http://complexissues.test.apache.org" xmlns:intf="http://complexissues.test.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">
+ <wsdl:types>
+ <schema elementFormDefault="qualified" targetNamespace="http://complexissues.test.apache.org" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:impl="http://complexissues.test.apache.org" xmlns:intf="http://complexissues.test.apache.org" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <complexType name="ArrayOfArrayOf_xsd_int">
+ <sequence>
+ <element maxOccurs="unbounded" minOccurs="0" name="item" nillable="true" type="impl:ArrayOf_xsd_int"/>
+ </sequence>
+ </complexType>
+ <complexType name="ArrayOf_xsd_int">
+ <sequence>
+ <element maxOccurs="unbounded" minOccurs="0" name="item" nillable="true" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ <element name="sendNestedArrays">
+ <complexType>
+ <sequence>
+ <element maxOccurs="unbounded" minOccurs="0" name="arg_0_0" type="impl:ArrayOfArrayOf_xsd_int"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="sendNestedArraysResponse">
+ <complexType>
+ <sequence>
+ <element maxOccurs="unbounded" minOccurs="0" name="sendNestedArraysReturn" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ </element>
+ </schema>
+ </wsdl:types>
+
+ <wsdl:message name="sendNestedArraysResponse">
+
+ <wsdl:part element="impl:sendNestedArraysResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="sendNestedArraysRequest">
+
+ <wsdl:part element="impl:sendNestedArrays" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:portType name="NestedArrays">
+
+ <wsdl:operation name="sendNestedArrays">
+
+ <wsdl:input message="impl:sendNestedArraysRequest" name="sendNestedArraysRequest"/>
+
+ <wsdl:output message="impl:sendNestedArraysResponse" name="sendNestedArraysResponse"/>
+
+ </wsdl:operation>
+
+ </wsdl:portType>
+
+ <wsdl:binding name="NestedArraysSoapBinding" type="impl:NestedArrays">
+
+ <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+
+ <wsdl:operation name="sendNestedArrays">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="sendNestedArraysRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="sendNestedArraysResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ </wsdl:binding>
+
+ <wsdl:service name="NestedArraysService">
+
+ <wsdl:port binding="impl:NestedArraysSoapBinding" name="NestedArrays">
+
+ <wsdlsoap:address location="http://lion:9080/NestedArrays/services/NestedArrays"/>
+
+ </wsdl:port>
+
+ </wsdl:service>
+
+</wsdl:definitions>
diff --git a/test/resources/wsdl/NestedComplex.wsdl b/test/resources/wsdl/NestedComplex.wsdl
new file mode 100644
index 0000000..6384ce1
--- /dev/null
+++ b/test/resources/wsdl/NestedComplex.wsdl
@@ -0,0 +1,130 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- (c) Copyright IBM Corp. 2004, 2005 All Rights Reserved -->
+<!-- -->
+<!-- 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 targetNamespace="http://nestedcomplex.test.apache.org" xmlns:impl="http://nestedcomplex.test.apache.org" xmlns:intf="http://nestedcomplex.test.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">
+ <wsdl:types>
+ <schema elementFormDefault="qualified" targetNamespace="http://nestedcomplex.test.apache.org" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:impl="http://nestedcomplex.test.apache.org" xmlns:intf="http://nestedcomplex.test.apache.org" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <complexType name="ComplexType2">
+ <sequence>
+ <element maxOccurs="unbounded" name="complexType1Array" nillable="true" type="impl:ComplexType1"/>
+ </sequence>
+ </complexType>
+ <complexType name="ComplexType1">
+ <sequence>
+ <element name="simpleArrays" nillable="true" type="impl:SimpleArrays"/>
+ <element name="ct1_string" nillable="true" type="xsd:string"/>
+ <element name="ct1_int" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ <complexType name="SimpleArrays">
+ <sequence>
+ <element maxOccurs="unbounded" name="intArray" type="xsd:int"/>
+ <element maxOccurs="unbounded" name="stringArray" nillable="true" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ <element name="echoNestedComplex">
+ <complexType>
+ <sequence>
+ <element name="arg_0_0" nillable="true" type="impl:ComplexType2"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoNestedComplexResponse">
+ <complexType>
+ <sequence>
+ <element name="echoNestedComplexReturn" nillable="true" type="impl:ComplexType2"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoNestedComplexArray">
+ <complexType>
+ <sequence>
+ <element maxOccurs="unbounded" minOccurs="0" name="arg_0_1" type="impl:ComplexType1"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoNestedComplexArrayResponse">
+ <complexType>
+ <sequence>
+ <element maxOccurs="unbounded" minOccurs="0" name="echoNestedComplexArrayReturn" type="impl:ComplexType1"/>
+ </sequence>
+ </complexType>
+ </element>
+ </schema>
+ </wsdl:types>
+
+ <wsdl:message name="echoNestedComplexArrayResponse">
+ <wsdl:part element="impl:echoNestedComplexArrayResponse" name="parameters"/>
+ </wsdl:message>
+
+ <wsdl:message name="echoNestedComplexArrayRequest">
+ <wsdl:part element="impl:echoNestedComplexArray" name="parameters"/>
+ </wsdl:message>
+
+ <wsdl:message name="echoNestedComplexResponse">
+ <wsdl:part element="impl:echoNestedComplexResponse" name="parameters"/>
+ </wsdl:message>
+
+ <wsdl:message name="echoNestedComplexRequest">
+ <wsdl:part element="impl:echoNestedComplex" name="parameters"/>
+ </wsdl:message>
+
+ <wsdl:portType name="NestedComplex">
+ <wsdl:operation name="echoNestedComplex">
+ <wsdl:input message="impl:echoNestedComplexRequest" name="echoNestedComplexRequest"/>
+ <wsdl:output message="impl:echoNestedComplexResponse" name="echoNestedComplexResponse"/>
+ </wsdl:operation>
+
+ <wsdl:operation name="echoNestedComplexArray">
+ <wsdl:input message="impl:echoNestedComplexArrayRequest" name="echoNestedComplexArrayRequest"/>
+ <wsdl:output message="impl:echoNestedComplexArrayResponse" name="echoNestedComplexArrayResponse"/>
+ </wsdl:operation>
+
+ </wsdl:portType>
+
+ <wsdl:binding name="NestedComplexSoapBinding" type="impl:NestedComplex">
+ <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+
+ <wsdl:operation name="echoNestedComplex">
+ <wsdlsoap:operation soapAction=""/>
+ <wsdl:input name="echoNestedComplexRequest">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="echoNestedComplexResponse">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="echoNestedComplexArray">
+ <wsdlsoap:operation soapAction=""/>
+ <wsdl:input name="echoNestedComplexArrayRequest">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="echoNestedComplexArrayResponse">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ </wsdl:binding>
+
+ <wsdl:service name="NestedComplexService">
+ <wsdl:port binding="impl:NestedComplexSoapBinding" name="NestedComplex">
+ <wsdlsoap:address location="http://tiger:7001/NestedComplex/services/NestedComplex"/>
+ </wsdl:port>
+ </wsdl:service>
+
+</wsdl:definitions>
+
diff --git a/test/resources/wsdl/NillableArrays.wsdl b/test/resources/wsdl/NillableArrays.wsdl
new file mode 100644
index 0000000..42028f0
--- /dev/null
+++ b/test/resources/wsdl/NillableArrays.wsdl
@@ -0,0 +1,266 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- (c) Copyright IBM Corp. 2004, 2005 All Rights Reserved -->
+<!-- -->
+<!-- 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 targetNamespace="http://arrays.test.apache.org" xmlns:impl="http://arrays.test.apache.org" xmlns:intf="http://arrays.test.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">
+ <wsdl:types>
+ <schema elementFormDefault="qualified" targetNamespace="http://arrays.test.apache.org" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:impl="http://arrays.test.apache.org" xmlns:intf="http://arrays.test.apache.org" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <element name="echoBooleanArray">
+ <complexType>
+ <sequence>
+ <element maxOccurs="unbounded" minOccurs="0" nillable="true" name="arg_0_0" type="xsd:boolean"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoBooleanArrayResponse">
+ <complexType>
+ <sequence>
+ <element maxOccurs="unbounded" minOccurs="0" nillable="true" name="echoBooleanArrayReturn" type="xsd:boolean"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoShortArray">
+ <complexType>
+ <sequence>
+ <element maxOccurs="unbounded" minOccurs="0" nillable="true" name="arg_0_2" type="xsd:short"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoShortArrayResponse">
+ <complexType>
+ <sequence>
+ <element maxOccurs="unbounded" minOccurs="0" nillable="true" name="echoShortArrayReturn" type="xsd:short"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoIntArray">
+ <complexType>
+ <sequence>
+ <element maxOccurs="unbounded" minOccurs="0" nillable="true" name="arg_0_3" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoIntArrayResponse">
+ <complexType>
+ <sequence>
+ <element maxOccurs="unbounded" minOccurs="0" nillable="true" name="echoIntArrayReturn" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoLongArray">
+ <complexType>
+ <sequence>
+ <element maxOccurs="unbounded" minOccurs="0" nillable="true" name="arg_0_4" type="xsd:long"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoLongArrayResponse">
+ <complexType>
+ <sequence>
+ <element maxOccurs="unbounded" minOccurs="0" nillable="true" name="echoLongArrayReturn" type="xsd:long"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoFloatArray">
+ <complexType>
+ <sequence>
+ <element maxOccurs="unbounded" minOccurs="0" nillable="true" name="arg_0_5" type="xsd:float"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoFloatArrayResponse">
+ <complexType>
+ <sequence>
+ <element maxOccurs="unbounded" minOccurs="0" nillable="true" name="echoFloatArrayReturn" type="xsd:float"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoDoubleArray">
+ <complexType>
+ <sequence>
+ <element maxOccurs="unbounded" minOccurs="0" nillable="true" name="arg_0_6" type="xsd:double"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoDoubleArrayResponse">
+ <complexType>
+ <sequence>
+ <element maxOccurs="unbounded" minOccurs="0" nillable="true" name="echoDoubleArrayReturn" type="xsd:double"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoStringArray">
+ <complexType>
+ <sequence>
+ <element maxOccurs="unbounded" minOccurs="0" nillable="true" name="arg_0_7" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoStringArrayResponse">
+ <complexType>
+ <sequence>
+ <element maxOccurs="unbounded" minOccurs="0" nillable="true" name="echoStringArrayReturn" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </element>
+ </schema>
+ </wsdl:types>
+ <wsdl:message name="echoDoubleArrayRequest">
+ <wsdl:part element="impl:echoDoubleArray" name="parameters"/>
+ </wsdl:message>
+ <wsdl:message name="echoIntArrayResponse">
+ <wsdl:part element="impl:echoIntArrayResponse" name="parameters"/>
+ </wsdl:message>
+ <wsdl:message name="echoShortArrayRequest">
+ <wsdl:part element="impl:echoShortArray" name="parameters"/>
+ </wsdl:message>
+ <wsdl:message name="echoShortArrayResponse">
+ <wsdl:part element="impl:echoShortArrayResponse" name="parameters"/>
+ </wsdl:message>
+ <wsdl:message name="echoIntArrayRequest">
+ <wsdl:part element="impl:echoIntArray" name="parameters"/>
+ </wsdl:message>
+ <wsdl:message name="echoDoubleArrayResponse">
+ <wsdl:part element="impl:echoDoubleArrayResponse" name="parameters"/>
+ </wsdl:message>
+ <wsdl:message name="echoBooleanArrayResponse">
+ <wsdl:part element="impl:echoBooleanArrayResponse" name="parameters"/>
+ </wsdl:message>
+ <wsdl:message name="echoBooleanArrayRequest">
+ <wsdl:part element="impl:echoBooleanArray" name="parameters"/>
+ </wsdl:message>
+ <wsdl:message name="echoLongArrayRequest">
+ <wsdl:part element="impl:echoLongArray" name="parameters"/>
+ </wsdl:message>
+ <wsdl:message name="echoFloatArrayRequest">
+ <wsdl:part element="impl:echoFloatArray" name="parameters"/>
+ </wsdl:message>
+ <wsdl:message name="echoStringArrayRequest">
+ <wsdl:part element="impl:echoStringArray" name="parameters"/>
+ </wsdl:message>
+ <wsdl:message name="echoLongArrayResponse">
+ <wsdl:part element="impl:echoLongArrayResponse" name="parameters"/>
+ </wsdl:message>
+ <wsdl:message name="echoStringArrayResponse">
+ <wsdl:part element="impl:echoStringArrayResponse" name="parameters"/>
+ </wsdl:message>
+ <wsdl:message name="echoFloatArrayResponse">
+ <wsdl:part element="impl:echoFloatArrayResponse" name="parameters"/>
+ </wsdl:message>
+
+ <wsdl:portType name="NillableArrays">
+ <wsdl:operation name="echoBooleanArray">
+ <wsdl:input message="impl:echoBooleanArrayRequest" name="echoBooleanArrayRequest"/>
+ <wsdl:output message="impl:echoBooleanArrayResponse" name="echoBooleanArrayResponse"/>
+ </wsdl:operation>
+ <wsdl:operation name="echoShortArray">
+ <wsdl:input message="impl:echoShortArrayRequest" name="echoShortArrayRequest"/>
+ <wsdl:output message="impl:echoShortArrayResponse" name="echoShortArrayResponse"/>
+ </wsdl:operation>
+ <wsdl:operation name="echoIntArray">
+ <wsdl:input message="impl:echoIntArrayRequest" name="echoIntArrayRequest"/>
+ <wsdl:output message="impl:echoIntArrayResponse" name="echoIntArrayResponse"/>
+ </wsdl:operation>
+ <wsdl:operation name="echoLongArray">
+ <wsdl:input message="impl:echoLongArrayRequest" name="echoLongArrayRequest"/>
+ <wsdl:output message="impl:echoLongArrayResponse" name="echoLongArrayResponse"/>
+ </wsdl:operation>
+ <wsdl:operation name="echoFloatArray">
+ <wsdl:input message="impl:echoFloatArrayRequest" name="echoFloatArrayRequest"/>
+ <wsdl:output message="impl:echoFloatArrayResponse" name="echoFloatArrayResponse"/>
+ </wsdl:operation>
+ <wsdl:operation name="echoDoubleArray">
+ <wsdl:input message="impl:echoDoubleArrayRequest" name="echoDoubleArrayRequest"/>
+ <wsdl:output message="impl:echoDoubleArrayResponse" name="echoDoubleArrayResponse"/>
+ </wsdl:operation>
+ <wsdl:operation name="echoStringArray">
+ <wsdl:input message="impl:echoStringArrayRequest" name="echoStringArrayRequest"/>
+ <wsdl:output message="impl:echoStringArrayResponse" name="echoStringArrayResponse"/>
+ </wsdl:operation>
+ </wsdl:portType>
+
+ <wsdl:binding name="NillableArraysSoapBinding" type="impl:NillableArrays">
+ <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <wsdl:operation name="echoBooleanArray">
+ <wsdlsoap:operation soapAction=""/>
+ <wsdl:input name="echoBooleanArrayRequest">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="echoBooleanArrayResponse">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="echoShortArray">
+ <wsdlsoap:operation soapAction=""/>
+ <wsdl:input name="echoShortArrayRequest">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="echoShortArrayResponse">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="echoIntArray">
+ <wsdlsoap:operation soapAction=""/>
+ <wsdl:input name="echoIntArrayRequest">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="echoIntArrayResponse">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="echoLongArray">
+ <wsdlsoap:operation soapAction=""/>
+ <wsdl:input name="echoLongArrayRequest">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="echoLongArrayResponse">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="echoFloatArray">
+ <wsdlsoap:operation soapAction=""/>
+ <wsdl:input name="echoFloatArrayRequest">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="echoFloatArrayResponse">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="echoDoubleArray">
+ <wsdlsoap:operation soapAction=""/>
+ <wsdl:input name="echoDoubleArrayRequest">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="echoDoubleArrayResponse">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="echoStringArray">
+ <wsdlsoap:operation soapAction=""/>
+ <wsdl:input name="echoStringArrayRequest">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="echoStringArrayResponse">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+
+ <wsdl:service name="NillableArraysService">
+ <wsdl:port binding="impl:NillableArraysSoapBinding" name="NillableArraysPort">
+ <wsdlsoap:address location="http://lion:9080/NillableArrays/services/NillableArraysPort"/>
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/test/resources/wsdl/OtherFaultException.wsdl b/test/resources/wsdl/OtherFaultException.wsdl
new file mode 100644
index 0000000..56b66d1
--- /dev/null
+++ b/test/resources/wsdl/OtherFaultException.wsdl
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- (c) Copyright IBM Corp. 2004, 2005 All Rights Reserved -->
+<!-- -->
+<!-- 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 targetNamespace="http://soapinterop.org/wsdl" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://soapinterop.org/wsdl" xmlns:intf="http://soapinterop.org/wsdl" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <wsdl:types>
+ <schema elementFormDefault="qualified" targetNamespace="http://soapinterop.org/wsdl" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://soapinterop.org/wsdl" xmlns:intf="http://soapinterop.org/wsdl" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+ <element name="div">
+ <complexType>
+ <sequence>
+ <element name="arg_0_0" type="xsd:int"/>
+ <element name="arg_1_0" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="divResponse">
+ <complexType>
+ <sequence>
+ <element name="divReturn" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ </element>
+ </schema>
+ </wsdl:types>
+
+ <wsdl:message name="divRequest">
+
+ <wsdl:part element="impl:div" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="divResponse">
+
+ <wsdl:part element="impl:divResponse" name="parameters"/>
+
+ </wsdl:message>
+
+
+ <wsdl:portType name="MathOps">
+
+ <wsdl:operation name="div">
+
+ <wsdl:input message="impl:divRequest" name="divRequest"/>
+
+ <wsdl:output message="impl:divResponse" name="divResponse"/>
+
+ </wsdl:operation>
+
+ </wsdl:portType>
+
+ <wsdl:binding name="MathOpsSoapBinding" type="impl:MathOps">
+
+ <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+
+ <wsdl:operation name="div">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="divRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="divResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ </wsdl:binding>
+
+ <wsdl:service name="MathOpsService">
+
+ <wsdl:port binding="impl:MathOpsSoapBinding" name="MathOps">
+
+ <wsdlsoap:address location="http://localhost/axis/MathOps"/>
+
+ </wsdl:port>
+
+ </wsdl:service>
+
+</wsdl:definitions>
diff --git a/test/resources/wsdl/PlainTextAttachment.wsdl b/test/resources/wsdl/PlainTextAttachment.wsdl
new file mode 100644
index 0000000..89b3fb3
--- /dev/null
+++ b/test/resources/wsdl/PlainTextAttachment.wsdl
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions targetNamespace="http://PlainTextAttachment"
+ xmlns:impl="http://PlainTextAttachment"
+ xmlns:intf="http://PlainTextAttachment"
+ xmlns:tns2="http://xml.apache.org/xml-soap"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+
+ <wsdl:types>
+ <schema elementFormDefault="qualified"
+ targetNamespace="http://PlainTextAttachment"
+ xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:impl="http://PlainTextAttachment"
+ xmlns:intf="http://PlainTextAttachment"
+ xmlns:tns2="http://xml.apache.org/xml-soap"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+
+ <element name="echoText">
+ <complexType>
+ <sequence>
+ <element name="arg2" nillable="true" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoTextResponse">
+ <complexType>
+ <sequence>
+ <element name="echoTextReturn" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </element>
+ </schema>
+ </wsdl:types>
+
+ <wsdl:message name="echoTextRequest">
+ <wsdl:part element="impl:echoText" name="parameters"/>
+ </wsdl:message>
+ <wsdl:message name="echoTextResponse">
+ <wsdl:part element="impl:echoTextResponse" name="parameters"/>
+ </wsdl:message>
+
+ <wsdl:portType name="AttachmentBindingImpl">
+ <wsdl:operation name="echoText">
+ <wsdl:input message="impl:echoTextRequest" name="echoTextRequest"/>
+ <wsdl:output message="impl:echoTextResponse" name="echoTextResponse"/>
+ </wsdl:operation>
+ </wsdl:portType>
+
+ <wsdl:binding name="PlainTextAttachmentSoapBinding" type="impl:AttachmentBindingImpl">
+ <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <wsdl:operation name="echoText">
+ <wsdlsoap:operation soapAction=""/>
+ <wsdl:input name="echoTextRequest">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="echoTextResponse">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+
+ <wsdl:service name="AttachmentBindingImplService">
+ <wsdl:port binding="impl:PlainTextAttachmentSoapBinding" name="PlainTextAttachment">
+ <wsdlsoap:address location="http://localhost:9080/PlainTextAttachment/services/PlainTextAttachment"/>
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/test/resources/wsdl/PrimitiveAndArray.wsdl b/test/resources/wsdl/PrimitiveAndArray.wsdl
new file mode 100644
index 0000000..083cbca
--- /dev/null
+++ b/test/resources/wsdl/PrimitiveAndArray.wsdl
@@ -0,0 +1,155 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- (c) Copyright IBM Corp. 2004, 2005 All Rights Reserved -->
+<!-- -->
+<!-- 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 targetNamespace="http://complexissues.test.apache.org" xmlns:impl="http://complexissues.test.apache.org" xmlns:intf="http://complexissues.test.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">
+ <wsdl:types>
+ <schema elementFormDefault="qualified" targetNamespace="http://complexissues.test.apache.org" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:impl="http://complexissues.test.apache.org" xmlns:intf="http://complexissues.test.apache.org" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <element name="sendPrimitiveAndArray">
+ <complexType>
+ <sequence>
+ <element name="arg_0_0" type="xsd:int"/>
+ <element maxOccurs="unbounded" minOccurs="0" name="arg_1_0" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ </element>
+ <complexType name="ComplexReturn">
+ <sequence>
+ <element name="returnInt" type="xsd:int"/>
+ <element maxOccurs="unbounded" name="returnArray" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ <element name="sendPrimitiveAndArrayResponse">
+ <complexType>
+ <sequence>
+ <element name="sendPrimitiveAndArrayReturn" nillable="true" type="impl:ComplexReturn"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="sendArrayAndPrimitive">
+ <complexType>
+ <sequence>
+ <element maxOccurs="unbounded" minOccurs="0" name="arg_0_1" type="xsd:int"/>
+ <element name="arg_1_1" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="sendArrayAndPrimitiveResponse">
+ <complexType>
+ <sequence>
+ <element name="sendArrayAndPrimitiveReturn" nillable="true" type="impl:ComplexReturn"/>
+ </sequence>
+ </complexType>
+ </element>
+ </schema>
+ </wsdl:types>
+
+ <wsdl:message name="sendPrimitiveAndArrayResponse">
+
+ <wsdl:part element="impl:sendPrimitiveAndArrayResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="sendPrimitiveAndArrayRequest">
+
+ <wsdl:part element="impl:sendPrimitiveAndArray" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="sendArrayAndPrimitiveResponse">
+
+ <wsdl:part element="impl:sendArrayAndPrimitiveResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="sendArrayAndPrimitiveRequest">
+
+ <wsdl:part element="impl:sendArrayAndPrimitive" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:portType name="PrimitiveAndArray">
+
+ <wsdl:operation name="sendPrimitiveAndArray">
+
+ <wsdl:input message="impl:sendPrimitiveAndArrayRequest" name="sendPrimitiveAndArrayRequest"/>
+
+ <wsdl:output message="impl:sendPrimitiveAndArrayResponse" name="sendPrimitiveAndArrayResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="sendArrayAndPrimitive">
+
+ <wsdl:input message="impl:sendArrayAndPrimitiveRequest" name="sendArrayAndPrimitiveRequest"/>
+
+ <wsdl:output message="impl:sendArrayAndPrimitiveResponse" name="sendArrayAndPrimitiveResponse"/>
+
+ </wsdl:operation>
+
+ </wsdl:portType>
+
+ <wsdl:binding name="PrimitiveAndArraySoapBinding" type="impl:PrimitiveAndArray">
+
+ <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+
+ <wsdl:operation name="sendPrimitiveAndArray">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="sendPrimitiveAndArrayRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="sendPrimitiveAndArrayResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="sendArrayAndPrimitive">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="sendArrayAndPrimitiveRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="sendArrayAndPrimitiveResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ </wsdl:binding>
+
+ <wsdl:service name="PrimitiveAndArrayService">
+
+ <wsdl:port binding="impl:PrimitiveAndArraySoapBinding" name="PrimitiveAndArray">
+
+ <wsdlsoap:address location="http://lion:9080/PrimitiveAndArray/services/PrimitiveAndArray"/>
+
+ </wsdl:port>
+
+ </wsdl:service>
+
+</wsdl:definitions>
diff --git a/test/resources/wsdl/RPCAllTest.wsdl b/test/resources/wsdl/RPCAllTest.wsdl
new file mode 100644
index 0000000..1a86d52
--- /dev/null
+++ b/test/resources/wsdl/RPCAllTest.wsdl
@@ -0,0 +1,101 @@
+<?xml version="1.0"?>
+
+<!-- WSDL description of the MAST ADEC TWIG api. -->
+
+<definitions name="urn:ADEC_MAST"
+ targetNamespace="urn:ADEC_MAST"
+ xmlns:typens="urn:ADEC_MAST"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns="http://schemas.xmlsoap.org/wsdl/">
+
+ <!-- Types for search - result elements, directory categories -->
+
+ <types>
+ <xsd:schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:ADEC_MAST">
+
+ <xsd:complexType name="SummaryResult">
+ <xsd:sequence>
+ <xsd:element minOccurs="1" maxOccurs="1" name="NonAllIntValue" type="xsd:int" />
+ <xsd:element minOccurs="1" maxOccurs="1" name="NonAllDoubleValue" type="xsd:double" />
+ </xsd:sequence>
+ <xsd:all>
+ <xsd:element name="length" type="xsd:int"/>
+ <xsd:element minOccurs="0" name="width" type="xsd:int"/>
+ <xsd:element minOccurs="0" name="depth" type="xsd:double"/>
+ <xsd:element minOccurs="0" name="color" type="xsd:string"/>
+ </xsd:all>
+ <xsd:sequence>
+ <xsd:element minOccurs="1" maxOccurs="1" name="NonAllStringValue" type="xsd:string" />
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="SummaryResultArray">
+ <xsd:complexContent>
+ <xsd:restriction base="soapenc:Array">
+ <xsd:attribute ref="soapenc:arrayType" wsdl:arrayType="typens:SummaryResult[]"/>
+ </xsd:restriction>
+ </xsd:complexContent>
+
+ </xsd:complexType>
+
+ </xsd:schema>
+ </types>
+
+ <!-- Messages for ADEC MAST Web APIs - get summary by position. -->
+
+ <message name="doGetSummary">
+ <part name="length" type="xsd:int"/>
+ <part name="width" type="xsd:int"/>
+ <part name="depth" type="xsd:double"/>
+ <part name="color" type="xsd:string"/>
+ </message>
+
+ <message name="doGetSummaryResponse">
+ <part name="return" type="typens:SummaryResult"/>
+ </message>
+
+ <!-- Port for ADEC MAST Web APIs, "ADEC_MAST" -->
+
+ <portType name="ADEC_MAST_Port">
+
+ <operation name="doGetSummary">
+ <input message="typens:doGetSummary"/>
+ <output message="typens:doGetSummaryResponse"/>
+ </operation>
+
+ </portType>
+
+
+ <!-- Binding for ADEC MAST Web APIs - RPC, SOAP over HTTP -->
+
+ <binding name="ADEC_MAST_Binding" type="typens:ADEC_MAST_Port">
+ <soap:binding style="rpc"
+ transport="http://schemas.xmlsoap.org/soap/http"/>
+
+ <operation name="doGetSummary">
+ <soap:operation soapAction="urn:ADEC_MAST#doGetSummary"/>
+ <input>
+ <soap:body use="encoded"
+ namespace="urn:ADEC_MAST"
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded"
+ namespace="urn:ADEC_MAST"
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+
+ </binding>
+
+ <!-- Endpoint for ADEC MAST Web APIs -->
+ <service name="ADEC_MAST_Service">
+ <port name="ADEC_MAST_Port" binding="typens:ADEC_MAST_Binding">
+ <soap:address location="http://faxafloi.stsci.edu:4547/soap/"/>
+ </port>
+ </service>
+
+</definitions>
diff --git a/test/resources/wsdl/RecurseTypes.wsdl b/test/resources/wsdl/RecurseTypes.wsdl
new file mode 100644
index 0000000..4c3546a
--- /dev/null
+++ b/test/resources/wsdl/RecurseTypes.wsdl
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- (c) Copyright IBM Corp. 2004, 2005 All Rights Reserved -->
+<!-- -->
+<!-- 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. -->
+
+<definitions
+ targetNamespace="http://recursetypes.test.apache.org"
+ xmlns:wsi="http://ws-i.org/schemas/conformanceClaim/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:tns="http://recursetypes.test.apache.org"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns="http://schemas.xmlsoap.org/wsdl/">
+ <types>
+ <xsd:schema elementFormDefault="qualified"
+ targetNamespace="http://recursetypes.test.apache.org"
+ xmlns="http://www.w3.org/2001/XMLSchema"
+ >
+ <xsd:element name="getInput">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="type" type="tns:Type1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="getInputResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="type" type="tns:Type1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:complexType name="Type1">
+ <xsd:sequence>
+ <xsd:element name="followings" maxOccurs="unbounded" minOccurs="0" type="tns:Type1" />
+ <xsd:element name="kind" type="xsd:string" />
+ <xsd:element name="index" type="xsd:int" />
+ </xsd:sequence>
+ <xsd:attribute name="att_kind" type="tns:Kind" />
+ </xsd:complexType>
+
+ <xsd:simpleType name="Kind">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="CHEQUE" />
+ <xsd:enumeration value="CREDIT_CARD" />
+ <xsd:enumeration value="TRANSFER" />
+ <xsd:enumeration value="WITHDRAWAL" />
+ <xsd:enumeration value="AUTOMATIC" />
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ </xsd:schema>
+ </types>
+
+
+ <message name="input">
+ <part name="parameters" element="tns:getInput" />
+ </message>
+
+ <message name="output">
+ <part name="parameters" element="tns:getInputResponse" />
+ </message>
+
+ <portType name="RecurseTypesWS">
+ <operation name="getInput">
+ <input message="tns:input" />
+ <output message="tns:output" />
+ </operation>
+ </portType>
+
+ <binding name="RecurseTypesWSBinding" type="tns:RecurseTypesWS">
+ <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
+ <operation name="getInput">
+ <soap:operation />
+ <input>
+ <soap:body use="literal" />
+ </input>
+ <output>
+ <soap:body use="literal" />
+ </output>
+ </operation>
+ </binding>
+
+ <service name="RecurseTypesWSService">
+ <port name="sampleWS" binding="tns:RecurseTypesWSBinding">
+ <soap:address location="http://localhost:9080/RecurseTypes/services/sampleWS" />
+ </port>
+ </service>
+</definitions>
diff --git a/test/resources/wsdl/RpcHttpHeaderTest1.wsdl b/test/resources/wsdl/RpcHttpHeaderTest1.wsdl
new file mode 100644
index 0000000..f7d1945
--- /dev/null
+++ b/test/resources/wsdl/RpcHttpHeaderTest1.wsdl
@@ -0,0 +1,333 @@
+<?xml version="1.0"?>
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- -->
+<!-- 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. -->
+
+<definitions name="InteropTest" 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:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://soapinterop.org/" xmlns:s="http://soapinterop.org/xsd" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+
+ <types>
+ <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://soapinterop.org/xsd">
+ <import namespace = "http://schemas.xmlsoap.org/soap/encoding/"/>
+ <complexType name="ArrayOfstring">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="string[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="ArrayOfint">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="int[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="ArrayOffloat">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="float[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="ArrayOfSOAPStruct">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="s:SOAPStruct[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="SOAPStruct">
+ <all>
+ <element name="varString" type="string"/>
+ <element name="varInt" type="int"/>
+ <element name="varFloat" type="float"/>
+ </all>
+ </complexType>
+ </schema>
+ </types>
+
+ <message name="echoStringRequest">
+ <part name="inputString" type="xsd:string"/>
+ </message>
+ <message name="echoStringResponse">
+ <part name="return" type="xsd:string"/>
+ </message>
+ <message name="echoStringArrayRequest">
+ <part name="inputStringArray" type="s:ArrayOfstring"/>
+ </message>
+ <message name="echoStringArrayResponse">
+ <part name="return" type="s:ArrayOfstring"/>
+ </message>
+ <message name="echoIntegerRequest">
+ <part name="inputInteger" type="xsd:int"/>
+ </message>
+ <message name="echoIntegerResponse">
+ <part name="return" type="xsd:int"/>
+ </message>
+ <message name="echoIntegerArrayRequest">
+ <part name="inputIntegerArray" type="s:ArrayOfint"/>
+ </message>
+ <message name="echoIntegerArrayResponse">
+ <part name="return" type="s:ArrayOfint"/>
+ </message>
+ <message name="echoFloatRequest">
+ <part name="inputFloat" type="xsd:float"/>
+ </message>
+ <message name="echoFloatResponse">
+ <part name="return" type="xsd:float"/>
+ </message>
+ <message name="echoFloatArrayRequest">
+ <part name="inputFloatArray" type="s:ArrayOffloat"/>
+ </message>
+ <message name="echoFloatArrayResponse">
+ <part name="return" type="s:ArrayOffloat"/>
+ </message>
+ <message name="echoStructRequest">
+ <part name="inputStruct" type="s:SOAPStruct"/>
+ </message>
+ <message name="echoStructResponse">
+ <part name="return" type="s:SOAPStruct"/>
+ </message>
+ <message name="echoStructArrayRequest">
+ <part name="inputStructArray" type="s:ArrayOfSOAPStruct"/>
+ </message>
+ <message name="echoStructArrayResponse">
+ <part name="return" type="s:ArrayOfSOAPStruct"/>
+ </message>
+ <message name="echoVoidRequest"/>
+ <message name="echoVoidResponse"/>
+ <message name="echoBase64Request">
+ <part name="inputBase64" type="xsd:base64Binary"/>
+ </message>
+ <message name="echoBase64Response">
+ <part name="return" type="xsd:base64Binary"/>
+ </message>
+ <message name="echoDateRequest">
+ <part name="inputDate" type="xsd:dateTime"/>
+ </message>
+ <message name="echoDateResponse">
+ <part name="return" type="xsd:dateTime"/>
+ </message>
+ <message name="echoHexBinaryRequest">
+ <part name="inputHexBinary" type="xsd:hexBinary"/>
+ </message>
+ <message name="echoHexBinaryResponse">
+ <part name="return" type="xsd:hexBinary"/>
+ </message>
+ <message name="echoDecimalRequest">
+ <part name="inputDecimal" type="xsd:decimal"/>
+ </message>
+ <message name="echoDecimalResponse">
+ <part name="return" type="xsd:decimal"/>
+ </message>
+ <message name="echoBooleanRequest">
+ <part name="inputBoolean" type="xsd:boolean"/>
+ </message>
+ <message name="echoBooleanResponse">
+ <part name="return" type="xsd:boolean"/>
+ </message>
+
+ <portType name="InteropTestPortType">
+ <operation name="echoString" parameterOrder="inputString">
+ <input message="tns:echoStringRequest"/>
+ <output message="tns:echoStringResponse"/>
+ </operation>
+ <operation name="echoStringArray" parameterOrder="inputStringArray">
+ <input message="tns:echoStringArrayRequest"/>
+ <output message="tns:echoStringArrayResponse"/>
+ </operation>
+ <operation name="echoInteger" parameterOrder="inputInteger">
+ <input message="tns:echoIntegerRequest"/>
+ <output message="tns:echoIntegerResponse"/>
+ </operation>
+ <operation name="echoIntegerArray" parameterOrder="inputIntegerArray">
+ <input message="tns:echoIntegerArrayRequest"/>
+ <output message="tns:echoIntegerArrayResponse"/>
+ </operation>
+ <operation name="echoFloat" parameterOrder="inputFloat">
+ <input message="tns:echoFloatRequest"/>
+ <output message="tns:echoFloatResponse"/>
+ </operation>
+ <operation name="echoFloatArray" parameterOrder="inputFloatArray">
+ <input message="tns:echoFloatArrayRequest"/>
+ <output message="tns:echoFloatArrayResponse"/>
+ </operation>
+ <operation name="echoStruct" parameterOrder="inputStruct">
+ <input message="tns:echoStructRequest"/>
+ <output message="tns:echoStructResponse"/>
+ </operation>
+ <operation name="echoStructArray" parameterOrder="inputStructArray">
+ <input message="tns:echoStructArrayRequest"/>
+ <output message="tns:echoStructArrayResponse"/>
+ </operation>
+ <operation name="echoVoid">
+ <input message="tns:echoVoidRequest"/>
+ <output message="tns:echoVoidResponse"/>
+ </operation>
+ <operation name="echoBase64" parameterOrder="inputBase64">
+ <input message="tns:echoBase64Request"/>
+ <output message="tns:echoBase64Response"/>
+ </operation>
+ <operation name="echoDate" parameterOrder="inputDate">
+ <input message="tns:echoDateRequest"/>
+ <output message="tns:echoDateResponse"/>
+ </operation>
+ <operation name="echoHexBinary" parameterOrder="inputHexBinary">
+ <input message="tns:echoHexBinaryRequest"/>
+ <output message="tns:echoHexBinaryResponse"/>
+ </operation>
+ <operation name="echoDecimal" parameterOrder="inputDecimal">
+ <input message="tns:echoDecimalRequest"/>
+ <output message="tns:echoDecimalResponse"/>
+ </operation>
+ <operation name="echoBoolean" parameterOrder="inputBoolean">
+ <input message="tns:echoBooleanRequest"/>
+ <output message="tns:echoBooleanResponse"/>
+ </operation>
+ </portType>
+
+ <binding name="InteropTestSoapBinding" type="tns:InteropTestPortType">
+ <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="echoString">
+ <soap:operation soapAction="InteropBase#echoString"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoStringArray">
+ <soap:operation soapAction="InteropBase#echoStringArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoInteger">
+ <soap:operation soapAction="InteropBase#echoInteger"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoIntegerArray">
+ <soap:operation soapAction="InteropBase#echoIntegerArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoFloat">
+ <soap:operation soapAction="InteropBase#echoFloat"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoFloatArray">
+ <soap:operation soapAction="InteropBase#echoFloatArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoStruct">
+ <soap:operation soapAction="InteropBase#echoStruct"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoStructArray">
+ <soap:operation soapAction="InteropBase#echoStructArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoVoid">
+ <soap:operation soapAction="InteropBase#echoVoid"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoBase64">
+ <soap:operation soapAction="InteropBase#echoBase64"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoDate">
+ <soap:operation soapAction="InteropBase#echoDate"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoHexBinary">
+ <soap:operation soapAction="InteropBase#echoHexBinary"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoDecimal">
+ <soap:operation soapAction="InteropBase#echoDecimal"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoBoolean">
+ <soap:operation soapAction="InteropBase#echoBoolean"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ </binding>
+ <service name="InteropBase">
+ <port binding="tns:InteropTestSoapBinding" name="InteropBaseTest">
+ <soap:address location="http://localhost/axis/InteropBase"/>
+ </port>
+ </service>
+</definitions>
diff --git a/test/resources/wsdl/RpcHttpHeaderTest2.wsdl b/test/resources/wsdl/RpcHttpHeaderTest2.wsdl
new file mode 100644
index 0000000..f7d1945
--- /dev/null
+++ b/test/resources/wsdl/RpcHttpHeaderTest2.wsdl
@@ -0,0 +1,333 @@
+<?xml version="1.0"?>
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- -->
+<!-- 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. -->
+
+<definitions name="InteropTest" 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:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://soapinterop.org/" xmlns:s="http://soapinterop.org/xsd" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+
+ <types>
+ <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://soapinterop.org/xsd">
+ <import namespace = "http://schemas.xmlsoap.org/soap/encoding/"/>
+ <complexType name="ArrayOfstring">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="string[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="ArrayOfint">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="int[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="ArrayOffloat">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="float[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="ArrayOfSOAPStruct">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="s:SOAPStruct[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="SOAPStruct">
+ <all>
+ <element name="varString" type="string"/>
+ <element name="varInt" type="int"/>
+ <element name="varFloat" type="float"/>
+ </all>
+ </complexType>
+ </schema>
+ </types>
+
+ <message name="echoStringRequest">
+ <part name="inputString" type="xsd:string"/>
+ </message>
+ <message name="echoStringResponse">
+ <part name="return" type="xsd:string"/>
+ </message>
+ <message name="echoStringArrayRequest">
+ <part name="inputStringArray" type="s:ArrayOfstring"/>
+ </message>
+ <message name="echoStringArrayResponse">
+ <part name="return" type="s:ArrayOfstring"/>
+ </message>
+ <message name="echoIntegerRequest">
+ <part name="inputInteger" type="xsd:int"/>
+ </message>
+ <message name="echoIntegerResponse">
+ <part name="return" type="xsd:int"/>
+ </message>
+ <message name="echoIntegerArrayRequest">
+ <part name="inputIntegerArray" type="s:ArrayOfint"/>
+ </message>
+ <message name="echoIntegerArrayResponse">
+ <part name="return" type="s:ArrayOfint"/>
+ </message>
+ <message name="echoFloatRequest">
+ <part name="inputFloat" type="xsd:float"/>
+ </message>
+ <message name="echoFloatResponse">
+ <part name="return" type="xsd:float"/>
+ </message>
+ <message name="echoFloatArrayRequest">
+ <part name="inputFloatArray" type="s:ArrayOffloat"/>
+ </message>
+ <message name="echoFloatArrayResponse">
+ <part name="return" type="s:ArrayOffloat"/>
+ </message>
+ <message name="echoStructRequest">
+ <part name="inputStruct" type="s:SOAPStruct"/>
+ </message>
+ <message name="echoStructResponse">
+ <part name="return" type="s:SOAPStruct"/>
+ </message>
+ <message name="echoStructArrayRequest">
+ <part name="inputStructArray" type="s:ArrayOfSOAPStruct"/>
+ </message>
+ <message name="echoStructArrayResponse">
+ <part name="return" type="s:ArrayOfSOAPStruct"/>
+ </message>
+ <message name="echoVoidRequest"/>
+ <message name="echoVoidResponse"/>
+ <message name="echoBase64Request">
+ <part name="inputBase64" type="xsd:base64Binary"/>
+ </message>
+ <message name="echoBase64Response">
+ <part name="return" type="xsd:base64Binary"/>
+ </message>
+ <message name="echoDateRequest">
+ <part name="inputDate" type="xsd:dateTime"/>
+ </message>
+ <message name="echoDateResponse">
+ <part name="return" type="xsd:dateTime"/>
+ </message>
+ <message name="echoHexBinaryRequest">
+ <part name="inputHexBinary" type="xsd:hexBinary"/>
+ </message>
+ <message name="echoHexBinaryResponse">
+ <part name="return" type="xsd:hexBinary"/>
+ </message>
+ <message name="echoDecimalRequest">
+ <part name="inputDecimal" type="xsd:decimal"/>
+ </message>
+ <message name="echoDecimalResponse">
+ <part name="return" type="xsd:decimal"/>
+ </message>
+ <message name="echoBooleanRequest">
+ <part name="inputBoolean" type="xsd:boolean"/>
+ </message>
+ <message name="echoBooleanResponse">
+ <part name="return" type="xsd:boolean"/>
+ </message>
+
+ <portType name="InteropTestPortType">
+ <operation name="echoString" parameterOrder="inputString">
+ <input message="tns:echoStringRequest"/>
+ <output message="tns:echoStringResponse"/>
+ </operation>
+ <operation name="echoStringArray" parameterOrder="inputStringArray">
+ <input message="tns:echoStringArrayRequest"/>
+ <output message="tns:echoStringArrayResponse"/>
+ </operation>
+ <operation name="echoInteger" parameterOrder="inputInteger">
+ <input message="tns:echoIntegerRequest"/>
+ <output message="tns:echoIntegerResponse"/>
+ </operation>
+ <operation name="echoIntegerArray" parameterOrder="inputIntegerArray">
+ <input message="tns:echoIntegerArrayRequest"/>
+ <output message="tns:echoIntegerArrayResponse"/>
+ </operation>
+ <operation name="echoFloat" parameterOrder="inputFloat">
+ <input message="tns:echoFloatRequest"/>
+ <output message="tns:echoFloatResponse"/>
+ </operation>
+ <operation name="echoFloatArray" parameterOrder="inputFloatArray">
+ <input message="tns:echoFloatArrayRequest"/>
+ <output message="tns:echoFloatArrayResponse"/>
+ </operation>
+ <operation name="echoStruct" parameterOrder="inputStruct">
+ <input message="tns:echoStructRequest"/>
+ <output message="tns:echoStructResponse"/>
+ </operation>
+ <operation name="echoStructArray" parameterOrder="inputStructArray">
+ <input message="tns:echoStructArrayRequest"/>
+ <output message="tns:echoStructArrayResponse"/>
+ </operation>
+ <operation name="echoVoid">
+ <input message="tns:echoVoidRequest"/>
+ <output message="tns:echoVoidResponse"/>
+ </operation>
+ <operation name="echoBase64" parameterOrder="inputBase64">
+ <input message="tns:echoBase64Request"/>
+ <output message="tns:echoBase64Response"/>
+ </operation>
+ <operation name="echoDate" parameterOrder="inputDate">
+ <input message="tns:echoDateRequest"/>
+ <output message="tns:echoDateResponse"/>
+ </operation>
+ <operation name="echoHexBinary" parameterOrder="inputHexBinary">
+ <input message="tns:echoHexBinaryRequest"/>
+ <output message="tns:echoHexBinaryResponse"/>
+ </operation>
+ <operation name="echoDecimal" parameterOrder="inputDecimal">
+ <input message="tns:echoDecimalRequest"/>
+ <output message="tns:echoDecimalResponse"/>
+ </operation>
+ <operation name="echoBoolean" parameterOrder="inputBoolean">
+ <input message="tns:echoBooleanRequest"/>
+ <output message="tns:echoBooleanResponse"/>
+ </operation>
+ </portType>
+
+ <binding name="InteropTestSoapBinding" type="tns:InteropTestPortType">
+ <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="echoString">
+ <soap:operation soapAction="InteropBase#echoString"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoStringArray">
+ <soap:operation soapAction="InteropBase#echoStringArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoInteger">
+ <soap:operation soapAction="InteropBase#echoInteger"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoIntegerArray">
+ <soap:operation soapAction="InteropBase#echoIntegerArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoFloat">
+ <soap:operation soapAction="InteropBase#echoFloat"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoFloatArray">
+ <soap:operation soapAction="InteropBase#echoFloatArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoStruct">
+ <soap:operation soapAction="InteropBase#echoStruct"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoStructArray">
+ <soap:operation soapAction="InteropBase#echoStructArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoVoid">
+ <soap:operation soapAction="InteropBase#echoVoid"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoBase64">
+ <soap:operation soapAction="InteropBase#echoBase64"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoDate">
+ <soap:operation soapAction="InteropBase#echoDate"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoHexBinary">
+ <soap:operation soapAction="InteropBase#echoHexBinary"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoDecimal">
+ <soap:operation soapAction="InteropBase#echoDecimal"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoBoolean">
+ <soap:operation soapAction="InteropBase#echoBoolean"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ </binding>
+ <service name="InteropBase">
+ <port binding="tns:InteropTestSoapBinding" name="InteropBaseTest">
+ <soap:address location="http://localhost/axis/InteropBase"/>
+ </port>
+ </service>
+</definitions>
diff --git a/test/resources/wsdl/RpcHttpHeaderTest3.wsdl b/test/resources/wsdl/RpcHttpHeaderTest3.wsdl
new file mode 100644
index 0000000..f7d1945
--- /dev/null
+++ b/test/resources/wsdl/RpcHttpHeaderTest3.wsdl
@@ -0,0 +1,333 @@
+<?xml version="1.0"?>
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- -->
+<!-- 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. -->
+
+<definitions name="InteropTest" 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:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://soapinterop.org/" xmlns:s="http://soapinterop.org/xsd" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+
+ <types>
+ <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://soapinterop.org/xsd">
+ <import namespace = "http://schemas.xmlsoap.org/soap/encoding/"/>
+ <complexType name="ArrayOfstring">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="string[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="ArrayOfint">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="int[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="ArrayOffloat">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="float[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="ArrayOfSOAPStruct">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="s:SOAPStruct[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="SOAPStruct">
+ <all>
+ <element name="varString" type="string"/>
+ <element name="varInt" type="int"/>
+ <element name="varFloat" type="float"/>
+ </all>
+ </complexType>
+ </schema>
+ </types>
+
+ <message name="echoStringRequest">
+ <part name="inputString" type="xsd:string"/>
+ </message>
+ <message name="echoStringResponse">
+ <part name="return" type="xsd:string"/>
+ </message>
+ <message name="echoStringArrayRequest">
+ <part name="inputStringArray" type="s:ArrayOfstring"/>
+ </message>
+ <message name="echoStringArrayResponse">
+ <part name="return" type="s:ArrayOfstring"/>
+ </message>
+ <message name="echoIntegerRequest">
+ <part name="inputInteger" type="xsd:int"/>
+ </message>
+ <message name="echoIntegerResponse">
+ <part name="return" type="xsd:int"/>
+ </message>
+ <message name="echoIntegerArrayRequest">
+ <part name="inputIntegerArray" type="s:ArrayOfint"/>
+ </message>
+ <message name="echoIntegerArrayResponse">
+ <part name="return" type="s:ArrayOfint"/>
+ </message>
+ <message name="echoFloatRequest">
+ <part name="inputFloat" type="xsd:float"/>
+ </message>
+ <message name="echoFloatResponse">
+ <part name="return" type="xsd:float"/>
+ </message>
+ <message name="echoFloatArrayRequest">
+ <part name="inputFloatArray" type="s:ArrayOffloat"/>
+ </message>
+ <message name="echoFloatArrayResponse">
+ <part name="return" type="s:ArrayOffloat"/>
+ </message>
+ <message name="echoStructRequest">
+ <part name="inputStruct" type="s:SOAPStruct"/>
+ </message>
+ <message name="echoStructResponse">
+ <part name="return" type="s:SOAPStruct"/>
+ </message>
+ <message name="echoStructArrayRequest">
+ <part name="inputStructArray" type="s:ArrayOfSOAPStruct"/>
+ </message>
+ <message name="echoStructArrayResponse">
+ <part name="return" type="s:ArrayOfSOAPStruct"/>
+ </message>
+ <message name="echoVoidRequest"/>
+ <message name="echoVoidResponse"/>
+ <message name="echoBase64Request">
+ <part name="inputBase64" type="xsd:base64Binary"/>
+ </message>
+ <message name="echoBase64Response">
+ <part name="return" type="xsd:base64Binary"/>
+ </message>
+ <message name="echoDateRequest">
+ <part name="inputDate" type="xsd:dateTime"/>
+ </message>
+ <message name="echoDateResponse">
+ <part name="return" type="xsd:dateTime"/>
+ </message>
+ <message name="echoHexBinaryRequest">
+ <part name="inputHexBinary" type="xsd:hexBinary"/>
+ </message>
+ <message name="echoHexBinaryResponse">
+ <part name="return" type="xsd:hexBinary"/>
+ </message>
+ <message name="echoDecimalRequest">
+ <part name="inputDecimal" type="xsd:decimal"/>
+ </message>
+ <message name="echoDecimalResponse">
+ <part name="return" type="xsd:decimal"/>
+ </message>
+ <message name="echoBooleanRequest">
+ <part name="inputBoolean" type="xsd:boolean"/>
+ </message>
+ <message name="echoBooleanResponse">
+ <part name="return" type="xsd:boolean"/>
+ </message>
+
+ <portType name="InteropTestPortType">
+ <operation name="echoString" parameterOrder="inputString">
+ <input message="tns:echoStringRequest"/>
+ <output message="tns:echoStringResponse"/>
+ </operation>
+ <operation name="echoStringArray" parameterOrder="inputStringArray">
+ <input message="tns:echoStringArrayRequest"/>
+ <output message="tns:echoStringArrayResponse"/>
+ </operation>
+ <operation name="echoInteger" parameterOrder="inputInteger">
+ <input message="tns:echoIntegerRequest"/>
+ <output message="tns:echoIntegerResponse"/>
+ </operation>
+ <operation name="echoIntegerArray" parameterOrder="inputIntegerArray">
+ <input message="tns:echoIntegerArrayRequest"/>
+ <output message="tns:echoIntegerArrayResponse"/>
+ </operation>
+ <operation name="echoFloat" parameterOrder="inputFloat">
+ <input message="tns:echoFloatRequest"/>
+ <output message="tns:echoFloatResponse"/>
+ </operation>
+ <operation name="echoFloatArray" parameterOrder="inputFloatArray">
+ <input message="tns:echoFloatArrayRequest"/>
+ <output message="tns:echoFloatArrayResponse"/>
+ </operation>
+ <operation name="echoStruct" parameterOrder="inputStruct">
+ <input message="tns:echoStructRequest"/>
+ <output message="tns:echoStructResponse"/>
+ </operation>
+ <operation name="echoStructArray" parameterOrder="inputStructArray">
+ <input message="tns:echoStructArrayRequest"/>
+ <output message="tns:echoStructArrayResponse"/>
+ </operation>
+ <operation name="echoVoid">
+ <input message="tns:echoVoidRequest"/>
+ <output message="tns:echoVoidResponse"/>
+ </operation>
+ <operation name="echoBase64" parameterOrder="inputBase64">
+ <input message="tns:echoBase64Request"/>
+ <output message="tns:echoBase64Response"/>
+ </operation>
+ <operation name="echoDate" parameterOrder="inputDate">
+ <input message="tns:echoDateRequest"/>
+ <output message="tns:echoDateResponse"/>
+ </operation>
+ <operation name="echoHexBinary" parameterOrder="inputHexBinary">
+ <input message="tns:echoHexBinaryRequest"/>
+ <output message="tns:echoHexBinaryResponse"/>
+ </operation>
+ <operation name="echoDecimal" parameterOrder="inputDecimal">
+ <input message="tns:echoDecimalRequest"/>
+ <output message="tns:echoDecimalResponse"/>
+ </operation>
+ <operation name="echoBoolean" parameterOrder="inputBoolean">
+ <input message="tns:echoBooleanRequest"/>
+ <output message="tns:echoBooleanResponse"/>
+ </operation>
+ </portType>
+
+ <binding name="InteropTestSoapBinding" type="tns:InteropTestPortType">
+ <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="echoString">
+ <soap:operation soapAction="InteropBase#echoString"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoStringArray">
+ <soap:operation soapAction="InteropBase#echoStringArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoInteger">
+ <soap:operation soapAction="InteropBase#echoInteger"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoIntegerArray">
+ <soap:operation soapAction="InteropBase#echoIntegerArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoFloat">
+ <soap:operation soapAction="InteropBase#echoFloat"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoFloatArray">
+ <soap:operation soapAction="InteropBase#echoFloatArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoStruct">
+ <soap:operation soapAction="InteropBase#echoStruct"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoStructArray">
+ <soap:operation soapAction="InteropBase#echoStructArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoVoid">
+ <soap:operation soapAction="InteropBase#echoVoid"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoBase64">
+ <soap:operation soapAction="InteropBase#echoBase64"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoDate">
+ <soap:operation soapAction="InteropBase#echoDate"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoHexBinary">
+ <soap:operation soapAction="InteropBase#echoHexBinary"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoDecimal">
+ <soap:operation soapAction="InteropBase#echoDecimal"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoBoolean">
+ <soap:operation soapAction="InteropBase#echoBoolean"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ </binding>
+ <service name="InteropBase">
+ <port binding="tns:InteropTestSoapBinding" name="InteropBaseTest">
+ <soap:address location="http://localhost/axis/InteropBase"/>
+ </port>
+ </service>
+</definitions>
diff --git a/test/resources/wsdl/RpcHttpHeaderTest4.wsdl b/test/resources/wsdl/RpcHttpHeaderTest4.wsdl
new file mode 100644
index 0000000..f7d1945
--- /dev/null
+++ b/test/resources/wsdl/RpcHttpHeaderTest4.wsdl
@@ -0,0 +1,333 @@
+<?xml version="1.0"?>
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- -->
+<!-- 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. -->
+
+<definitions name="InteropTest" 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:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://soapinterop.org/" xmlns:s="http://soapinterop.org/xsd" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+
+ <types>
+ <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://soapinterop.org/xsd">
+ <import namespace = "http://schemas.xmlsoap.org/soap/encoding/"/>
+ <complexType name="ArrayOfstring">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="string[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="ArrayOfint">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="int[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="ArrayOffloat">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="float[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="ArrayOfSOAPStruct">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="s:SOAPStruct[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="SOAPStruct">
+ <all>
+ <element name="varString" type="string"/>
+ <element name="varInt" type="int"/>
+ <element name="varFloat" type="float"/>
+ </all>
+ </complexType>
+ </schema>
+ </types>
+
+ <message name="echoStringRequest">
+ <part name="inputString" type="xsd:string"/>
+ </message>
+ <message name="echoStringResponse">
+ <part name="return" type="xsd:string"/>
+ </message>
+ <message name="echoStringArrayRequest">
+ <part name="inputStringArray" type="s:ArrayOfstring"/>
+ </message>
+ <message name="echoStringArrayResponse">
+ <part name="return" type="s:ArrayOfstring"/>
+ </message>
+ <message name="echoIntegerRequest">
+ <part name="inputInteger" type="xsd:int"/>
+ </message>
+ <message name="echoIntegerResponse">
+ <part name="return" type="xsd:int"/>
+ </message>
+ <message name="echoIntegerArrayRequest">
+ <part name="inputIntegerArray" type="s:ArrayOfint"/>
+ </message>
+ <message name="echoIntegerArrayResponse">
+ <part name="return" type="s:ArrayOfint"/>
+ </message>
+ <message name="echoFloatRequest">
+ <part name="inputFloat" type="xsd:float"/>
+ </message>
+ <message name="echoFloatResponse">
+ <part name="return" type="xsd:float"/>
+ </message>
+ <message name="echoFloatArrayRequest">
+ <part name="inputFloatArray" type="s:ArrayOffloat"/>
+ </message>
+ <message name="echoFloatArrayResponse">
+ <part name="return" type="s:ArrayOffloat"/>
+ </message>
+ <message name="echoStructRequest">
+ <part name="inputStruct" type="s:SOAPStruct"/>
+ </message>
+ <message name="echoStructResponse">
+ <part name="return" type="s:SOAPStruct"/>
+ </message>
+ <message name="echoStructArrayRequest">
+ <part name="inputStructArray" type="s:ArrayOfSOAPStruct"/>
+ </message>
+ <message name="echoStructArrayResponse">
+ <part name="return" type="s:ArrayOfSOAPStruct"/>
+ </message>
+ <message name="echoVoidRequest"/>
+ <message name="echoVoidResponse"/>
+ <message name="echoBase64Request">
+ <part name="inputBase64" type="xsd:base64Binary"/>
+ </message>
+ <message name="echoBase64Response">
+ <part name="return" type="xsd:base64Binary"/>
+ </message>
+ <message name="echoDateRequest">
+ <part name="inputDate" type="xsd:dateTime"/>
+ </message>
+ <message name="echoDateResponse">
+ <part name="return" type="xsd:dateTime"/>
+ </message>
+ <message name="echoHexBinaryRequest">
+ <part name="inputHexBinary" type="xsd:hexBinary"/>
+ </message>
+ <message name="echoHexBinaryResponse">
+ <part name="return" type="xsd:hexBinary"/>
+ </message>
+ <message name="echoDecimalRequest">
+ <part name="inputDecimal" type="xsd:decimal"/>
+ </message>
+ <message name="echoDecimalResponse">
+ <part name="return" type="xsd:decimal"/>
+ </message>
+ <message name="echoBooleanRequest">
+ <part name="inputBoolean" type="xsd:boolean"/>
+ </message>
+ <message name="echoBooleanResponse">
+ <part name="return" type="xsd:boolean"/>
+ </message>
+
+ <portType name="InteropTestPortType">
+ <operation name="echoString" parameterOrder="inputString">
+ <input message="tns:echoStringRequest"/>
+ <output message="tns:echoStringResponse"/>
+ </operation>
+ <operation name="echoStringArray" parameterOrder="inputStringArray">
+ <input message="tns:echoStringArrayRequest"/>
+ <output message="tns:echoStringArrayResponse"/>
+ </operation>
+ <operation name="echoInteger" parameterOrder="inputInteger">
+ <input message="tns:echoIntegerRequest"/>
+ <output message="tns:echoIntegerResponse"/>
+ </operation>
+ <operation name="echoIntegerArray" parameterOrder="inputIntegerArray">
+ <input message="tns:echoIntegerArrayRequest"/>
+ <output message="tns:echoIntegerArrayResponse"/>
+ </operation>
+ <operation name="echoFloat" parameterOrder="inputFloat">
+ <input message="tns:echoFloatRequest"/>
+ <output message="tns:echoFloatResponse"/>
+ </operation>
+ <operation name="echoFloatArray" parameterOrder="inputFloatArray">
+ <input message="tns:echoFloatArrayRequest"/>
+ <output message="tns:echoFloatArrayResponse"/>
+ </operation>
+ <operation name="echoStruct" parameterOrder="inputStruct">
+ <input message="tns:echoStructRequest"/>
+ <output message="tns:echoStructResponse"/>
+ </operation>
+ <operation name="echoStructArray" parameterOrder="inputStructArray">
+ <input message="tns:echoStructArrayRequest"/>
+ <output message="tns:echoStructArrayResponse"/>
+ </operation>
+ <operation name="echoVoid">
+ <input message="tns:echoVoidRequest"/>
+ <output message="tns:echoVoidResponse"/>
+ </operation>
+ <operation name="echoBase64" parameterOrder="inputBase64">
+ <input message="tns:echoBase64Request"/>
+ <output message="tns:echoBase64Response"/>
+ </operation>
+ <operation name="echoDate" parameterOrder="inputDate">
+ <input message="tns:echoDateRequest"/>
+ <output message="tns:echoDateResponse"/>
+ </operation>
+ <operation name="echoHexBinary" parameterOrder="inputHexBinary">
+ <input message="tns:echoHexBinaryRequest"/>
+ <output message="tns:echoHexBinaryResponse"/>
+ </operation>
+ <operation name="echoDecimal" parameterOrder="inputDecimal">
+ <input message="tns:echoDecimalRequest"/>
+ <output message="tns:echoDecimalResponse"/>
+ </operation>
+ <operation name="echoBoolean" parameterOrder="inputBoolean">
+ <input message="tns:echoBooleanRequest"/>
+ <output message="tns:echoBooleanResponse"/>
+ </operation>
+ </portType>
+
+ <binding name="InteropTestSoapBinding" type="tns:InteropTestPortType">
+ <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="echoString">
+ <soap:operation soapAction="InteropBase#echoString"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoStringArray">
+ <soap:operation soapAction="InteropBase#echoStringArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoInteger">
+ <soap:operation soapAction="InteropBase#echoInteger"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoIntegerArray">
+ <soap:operation soapAction="InteropBase#echoIntegerArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoFloat">
+ <soap:operation soapAction="InteropBase#echoFloat"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoFloatArray">
+ <soap:operation soapAction="InteropBase#echoFloatArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoStruct">
+ <soap:operation soapAction="InteropBase#echoStruct"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoStructArray">
+ <soap:operation soapAction="InteropBase#echoStructArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoVoid">
+ <soap:operation soapAction="InteropBase#echoVoid"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoBase64">
+ <soap:operation soapAction="InteropBase#echoBase64"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoDate">
+ <soap:operation soapAction="InteropBase#echoDate"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoHexBinary">
+ <soap:operation soapAction="InteropBase#echoHexBinary"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoDecimal">
+ <soap:operation soapAction="InteropBase#echoDecimal"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoBoolean">
+ <soap:operation soapAction="InteropBase#echoBoolean"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ </binding>
+ <service name="InteropBase">
+ <port binding="tns:InteropTestSoapBinding" name="InteropBaseTest">
+ <soap:address location="http://localhost/axis/InteropBase"/>
+ </port>
+ </service>
+</definitions>
diff --git a/test/resources/wsdl/RpcHttpHeaderTest5.wsdl b/test/resources/wsdl/RpcHttpHeaderTest5.wsdl
new file mode 100644
index 0000000..f7d1945
--- /dev/null
+++ b/test/resources/wsdl/RpcHttpHeaderTest5.wsdl
@@ -0,0 +1,333 @@
+<?xml version="1.0"?>
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- -->
+<!-- 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. -->
+
+<definitions name="InteropTest" 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:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://soapinterop.org/" xmlns:s="http://soapinterop.org/xsd" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+
+ <types>
+ <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://soapinterop.org/xsd">
+ <import namespace = "http://schemas.xmlsoap.org/soap/encoding/"/>
+ <complexType name="ArrayOfstring">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="string[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="ArrayOfint">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="int[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="ArrayOffloat">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="float[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="ArrayOfSOAPStruct">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="s:SOAPStruct[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="SOAPStruct">
+ <all>
+ <element name="varString" type="string"/>
+ <element name="varInt" type="int"/>
+ <element name="varFloat" type="float"/>
+ </all>
+ </complexType>
+ </schema>
+ </types>
+
+ <message name="echoStringRequest">
+ <part name="inputString" type="xsd:string"/>
+ </message>
+ <message name="echoStringResponse">
+ <part name="return" type="xsd:string"/>
+ </message>
+ <message name="echoStringArrayRequest">
+ <part name="inputStringArray" type="s:ArrayOfstring"/>
+ </message>
+ <message name="echoStringArrayResponse">
+ <part name="return" type="s:ArrayOfstring"/>
+ </message>
+ <message name="echoIntegerRequest">
+ <part name="inputInteger" type="xsd:int"/>
+ </message>
+ <message name="echoIntegerResponse">
+ <part name="return" type="xsd:int"/>
+ </message>
+ <message name="echoIntegerArrayRequest">
+ <part name="inputIntegerArray" type="s:ArrayOfint"/>
+ </message>
+ <message name="echoIntegerArrayResponse">
+ <part name="return" type="s:ArrayOfint"/>
+ </message>
+ <message name="echoFloatRequest">
+ <part name="inputFloat" type="xsd:float"/>
+ </message>
+ <message name="echoFloatResponse">
+ <part name="return" type="xsd:float"/>
+ </message>
+ <message name="echoFloatArrayRequest">
+ <part name="inputFloatArray" type="s:ArrayOffloat"/>
+ </message>
+ <message name="echoFloatArrayResponse">
+ <part name="return" type="s:ArrayOffloat"/>
+ </message>
+ <message name="echoStructRequest">
+ <part name="inputStruct" type="s:SOAPStruct"/>
+ </message>
+ <message name="echoStructResponse">
+ <part name="return" type="s:SOAPStruct"/>
+ </message>
+ <message name="echoStructArrayRequest">
+ <part name="inputStructArray" type="s:ArrayOfSOAPStruct"/>
+ </message>
+ <message name="echoStructArrayResponse">
+ <part name="return" type="s:ArrayOfSOAPStruct"/>
+ </message>
+ <message name="echoVoidRequest"/>
+ <message name="echoVoidResponse"/>
+ <message name="echoBase64Request">
+ <part name="inputBase64" type="xsd:base64Binary"/>
+ </message>
+ <message name="echoBase64Response">
+ <part name="return" type="xsd:base64Binary"/>
+ </message>
+ <message name="echoDateRequest">
+ <part name="inputDate" type="xsd:dateTime"/>
+ </message>
+ <message name="echoDateResponse">
+ <part name="return" type="xsd:dateTime"/>
+ </message>
+ <message name="echoHexBinaryRequest">
+ <part name="inputHexBinary" type="xsd:hexBinary"/>
+ </message>
+ <message name="echoHexBinaryResponse">
+ <part name="return" type="xsd:hexBinary"/>
+ </message>
+ <message name="echoDecimalRequest">
+ <part name="inputDecimal" type="xsd:decimal"/>
+ </message>
+ <message name="echoDecimalResponse">
+ <part name="return" type="xsd:decimal"/>
+ </message>
+ <message name="echoBooleanRequest">
+ <part name="inputBoolean" type="xsd:boolean"/>
+ </message>
+ <message name="echoBooleanResponse">
+ <part name="return" type="xsd:boolean"/>
+ </message>
+
+ <portType name="InteropTestPortType">
+ <operation name="echoString" parameterOrder="inputString">
+ <input message="tns:echoStringRequest"/>
+ <output message="tns:echoStringResponse"/>
+ </operation>
+ <operation name="echoStringArray" parameterOrder="inputStringArray">
+ <input message="tns:echoStringArrayRequest"/>
+ <output message="tns:echoStringArrayResponse"/>
+ </operation>
+ <operation name="echoInteger" parameterOrder="inputInteger">
+ <input message="tns:echoIntegerRequest"/>
+ <output message="tns:echoIntegerResponse"/>
+ </operation>
+ <operation name="echoIntegerArray" parameterOrder="inputIntegerArray">
+ <input message="tns:echoIntegerArrayRequest"/>
+ <output message="tns:echoIntegerArrayResponse"/>
+ </operation>
+ <operation name="echoFloat" parameterOrder="inputFloat">
+ <input message="tns:echoFloatRequest"/>
+ <output message="tns:echoFloatResponse"/>
+ </operation>
+ <operation name="echoFloatArray" parameterOrder="inputFloatArray">
+ <input message="tns:echoFloatArrayRequest"/>
+ <output message="tns:echoFloatArrayResponse"/>
+ </operation>
+ <operation name="echoStruct" parameterOrder="inputStruct">
+ <input message="tns:echoStructRequest"/>
+ <output message="tns:echoStructResponse"/>
+ </operation>
+ <operation name="echoStructArray" parameterOrder="inputStructArray">
+ <input message="tns:echoStructArrayRequest"/>
+ <output message="tns:echoStructArrayResponse"/>
+ </operation>
+ <operation name="echoVoid">
+ <input message="tns:echoVoidRequest"/>
+ <output message="tns:echoVoidResponse"/>
+ </operation>
+ <operation name="echoBase64" parameterOrder="inputBase64">
+ <input message="tns:echoBase64Request"/>
+ <output message="tns:echoBase64Response"/>
+ </operation>
+ <operation name="echoDate" parameterOrder="inputDate">
+ <input message="tns:echoDateRequest"/>
+ <output message="tns:echoDateResponse"/>
+ </operation>
+ <operation name="echoHexBinary" parameterOrder="inputHexBinary">
+ <input message="tns:echoHexBinaryRequest"/>
+ <output message="tns:echoHexBinaryResponse"/>
+ </operation>
+ <operation name="echoDecimal" parameterOrder="inputDecimal">
+ <input message="tns:echoDecimalRequest"/>
+ <output message="tns:echoDecimalResponse"/>
+ </operation>
+ <operation name="echoBoolean" parameterOrder="inputBoolean">
+ <input message="tns:echoBooleanRequest"/>
+ <output message="tns:echoBooleanResponse"/>
+ </operation>
+ </portType>
+
+ <binding name="InteropTestSoapBinding" type="tns:InteropTestPortType">
+ <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="echoString">
+ <soap:operation soapAction="InteropBase#echoString"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoStringArray">
+ <soap:operation soapAction="InteropBase#echoStringArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoInteger">
+ <soap:operation soapAction="InteropBase#echoInteger"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoIntegerArray">
+ <soap:operation soapAction="InteropBase#echoIntegerArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoFloat">
+ <soap:operation soapAction="InteropBase#echoFloat"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoFloatArray">
+ <soap:operation soapAction="InteropBase#echoFloatArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoStruct">
+ <soap:operation soapAction="InteropBase#echoStruct"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoStructArray">
+ <soap:operation soapAction="InteropBase#echoStructArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoVoid">
+ <soap:operation soapAction="InteropBase#echoVoid"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoBase64">
+ <soap:operation soapAction="InteropBase#echoBase64"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoDate">
+ <soap:operation soapAction="InteropBase#echoDate"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoHexBinary">
+ <soap:operation soapAction="InteropBase#echoHexBinary"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoDecimal">
+ <soap:operation soapAction="InteropBase#echoDecimal"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoBoolean">
+ <soap:operation soapAction="InteropBase#echoBoolean"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ </binding>
+ <service name="InteropBase">
+ <port binding="tns:InteropTestSoapBinding" name="InteropBaseTest">
+ <soap:address location="http://localhost/axis/InteropBase"/>
+ </port>
+ </service>
+</definitions>
diff --git a/test/resources/wsdl/RpcHttpHeaderTest7.wsdl b/test/resources/wsdl/RpcHttpHeaderTest7.wsdl
new file mode 100644
index 0000000..f7d1945
--- /dev/null
+++ b/test/resources/wsdl/RpcHttpHeaderTest7.wsdl
@@ -0,0 +1,333 @@
+<?xml version="1.0"?>
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- -->
+<!-- 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. -->
+
+<definitions name="InteropTest" 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:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://soapinterop.org/" xmlns:s="http://soapinterop.org/xsd" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+
+ <types>
+ <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://soapinterop.org/xsd">
+ <import namespace = "http://schemas.xmlsoap.org/soap/encoding/"/>
+ <complexType name="ArrayOfstring">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="string[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="ArrayOfint">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="int[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="ArrayOffloat">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="float[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="ArrayOfSOAPStruct">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="s:SOAPStruct[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="SOAPStruct">
+ <all>
+ <element name="varString" type="string"/>
+ <element name="varInt" type="int"/>
+ <element name="varFloat" type="float"/>
+ </all>
+ </complexType>
+ </schema>
+ </types>
+
+ <message name="echoStringRequest">
+ <part name="inputString" type="xsd:string"/>
+ </message>
+ <message name="echoStringResponse">
+ <part name="return" type="xsd:string"/>
+ </message>
+ <message name="echoStringArrayRequest">
+ <part name="inputStringArray" type="s:ArrayOfstring"/>
+ </message>
+ <message name="echoStringArrayResponse">
+ <part name="return" type="s:ArrayOfstring"/>
+ </message>
+ <message name="echoIntegerRequest">
+ <part name="inputInteger" type="xsd:int"/>
+ </message>
+ <message name="echoIntegerResponse">
+ <part name="return" type="xsd:int"/>
+ </message>
+ <message name="echoIntegerArrayRequest">
+ <part name="inputIntegerArray" type="s:ArrayOfint"/>
+ </message>
+ <message name="echoIntegerArrayResponse">
+ <part name="return" type="s:ArrayOfint"/>
+ </message>
+ <message name="echoFloatRequest">
+ <part name="inputFloat" type="xsd:float"/>
+ </message>
+ <message name="echoFloatResponse">
+ <part name="return" type="xsd:float"/>
+ </message>
+ <message name="echoFloatArrayRequest">
+ <part name="inputFloatArray" type="s:ArrayOffloat"/>
+ </message>
+ <message name="echoFloatArrayResponse">
+ <part name="return" type="s:ArrayOffloat"/>
+ </message>
+ <message name="echoStructRequest">
+ <part name="inputStruct" type="s:SOAPStruct"/>
+ </message>
+ <message name="echoStructResponse">
+ <part name="return" type="s:SOAPStruct"/>
+ </message>
+ <message name="echoStructArrayRequest">
+ <part name="inputStructArray" type="s:ArrayOfSOAPStruct"/>
+ </message>
+ <message name="echoStructArrayResponse">
+ <part name="return" type="s:ArrayOfSOAPStruct"/>
+ </message>
+ <message name="echoVoidRequest"/>
+ <message name="echoVoidResponse"/>
+ <message name="echoBase64Request">
+ <part name="inputBase64" type="xsd:base64Binary"/>
+ </message>
+ <message name="echoBase64Response">
+ <part name="return" type="xsd:base64Binary"/>
+ </message>
+ <message name="echoDateRequest">
+ <part name="inputDate" type="xsd:dateTime"/>
+ </message>
+ <message name="echoDateResponse">
+ <part name="return" type="xsd:dateTime"/>
+ </message>
+ <message name="echoHexBinaryRequest">
+ <part name="inputHexBinary" type="xsd:hexBinary"/>
+ </message>
+ <message name="echoHexBinaryResponse">
+ <part name="return" type="xsd:hexBinary"/>
+ </message>
+ <message name="echoDecimalRequest">
+ <part name="inputDecimal" type="xsd:decimal"/>
+ </message>
+ <message name="echoDecimalResponse">
+ <part name="return" type="xsd:decimal"/>
+ </message>
+ <message name="echoBooleanRequest">
+ <part name="inputBoolean" type="xsd:boolean"/>
+ </message>
+ <message name="echoBooleanResponse">
+ <part name="return" type="xsd:boolean"/>
+ </message>
+
+ <portType name="InteropTestPortType">
+ <operation name="echoString" parameterOrder="inputString">
+ <input message="tns:echoStringRequest"/>
+ <output message="tns:echoStringResponse"/>
+ </operation>
+ <operation name="echoStringArray" parameterOrder="inputStringArray">
+ <input message="tns:echoStringArrayRequest"/>
+ <output message="tns:echoStringArrayResponse"/>
+ </operation>
+ <operation name="echoInteger" parameterOrder="inputInteger">
+ <input message="tns:echoIntegerRequest"/>
+ <output message="tns:echoIntegerResponse"/>
+ </operation>
+ <operation name="echoIntegerArray" parameterOrder="inputIntegerArray">
+ <input message="tns:echoIntegerArrayRequest"/>
+ <output message="tns:echoIntegerArrayResponse"/>
+ </operation>
+ <operation name="echoFloat" parameterOrder="inputFloat">
+ <input message="tns:echoFloatRequest"/>
+ <output message="tns:echoFloatResponse"/>
+ </operation>
+ <operation name="echoFloatArray" parameterOrder="inputFloatArray">
+ <input message="tns:echoFloatArrayRequest"/>
+ <output message="tns:echoFloatArrayResponse"/>
+ </operation>
+ <operation name="echoStruct" parameterOrder="inputStruct">
+ <input message="tns:echoStructRequest"/>
+ <output message="tns:echoStructResponse"/>
+ </operation>
+ <operation name="echoStructArray" parameterOrder="inputStructArray">
+ <input message="tns:echoStructArrayRequest"/>
+ <output message="tns:echoStructArrayResponse"/>
+ </operation>
+ <operation name="echoVoid">
+ <input message="tns:echoVoidRequest"/>
+ <output message="tns:echoVoidResponse"/>
+ </operation>
+ <operation name="echoBase64" parameterOrder="inputBase64">
+ <input message="tns:echoBase64Request"/>
+ <output message="tns:echoBase64Response"/>
+ </operation>
+ <operation name="echoDate" parameterOrder="inputDate">
+ <input message="tns:echoDateRequest"/>
+ <output message="tns:echoDateResponse"/>
+ </operation>
+ <operation name="echoHexBinary" parameterOrder="inputHexBinary">
+ <input message="tns:echoHexBinaryRequest"/>
+ <output message="tns:echoHexBinaryResponse"/>
+ </operation>
+ <operation name="echoDecimal" parameterOrder="inputDecimal">
+ <input message="tns:echoDecimalRequest"/>
+ <output message="tns:echoDecimalResponse"/>
+ </operation>
+ <operation name="echoBoolean" parameterOrder="inputBoolean">
+ <input message="tns:echoBooleanRequest"/>
+ <output message="tns:echoBooleanResponse"/>
+ </operation>
+ </portType>
+
+ <binding name="InteropTestSoapBinding" type="tns:InteropTestPortType">
+ <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="echoString">
+ <soap:operation soapAction="InteropBase#echoString"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoStringArray">
+ <soap:operation soapAction="InteropBase#echoStringArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoInteger">
+ <soap:operation soapAction="InteropBase#echoInteger"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoIntegerArray">
+ <soap:operation soapAction="InteropBase#echoIntegerArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoFloat">
+ <soap:operation soapAction="InteropBase#echoFloat"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoFloatArray">
+ <soap:operation soapAction="InteropBase#echoFloatArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoStruct">
+ <soap:operation soapAction="InteropBase#echoStruct"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoStructArray">
+ <soap:operation soapAction="InteropBase#echoStructArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoVoid">
+ <soap:operation soapAction="InteropBase#echoVoid"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoBase64">
+ <soap:operation soapAction="InteropBase#echoBase64"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoDate">
+ <soap:operation soapAction="InteropBase#echoDate"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoHexBinary">
+ <soap:operation soapAction="InteropBase#echoHexBinary"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoDecimal">
+ <soap:operation soapAction="InteropBase#echoDecimal"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoBoolean">
+ <soap:operation soapAction="InteropBase#echoBoolean"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ </binding>
+ <service name="InteropBase">
+ <port binding="tns:InteropTestSoapBinding" name="InteropBaseTest">
+ <soap:address location="http://localhost/axis/InteropBase"/>
+ </port>
+ </service>
+</definitions>
diff --git a/test/resources/wsdl/RpcHttpHeaderTest8.wsdl b/test/resources/wsdl/RpcHttpHeaderTest8.wsdl
new file mode 100644
index 0000000..f7d1945
--- /dev/null
+++ b/test/resources/wsdl/RpcHttpHeaderTest8.wsdl
@@ -0,0 +1,333 @@
+<?xml version="1.0"?>
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- -->
+<!-- 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. -->
+
+<definitions name="InteropTest" 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:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://soapinterop.org/" xmlns:s="http://soapinterop.org/xsd" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+
+ <types>
+ <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://soapinterop.org/xsd">
+ <import namespace = "http://schemas.xmlsoap.org/soap/encoding/"/>
+ <complexType name="ArrayOfstring">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="string[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="ArrayOfint">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="int[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="ArrayOffloat">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="float[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="ArrayOfSOAPStruct">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="s:SOAPStruct[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="SOAPStruct">
+ <all>
+ <element name="varString" type="string"/>
+ <element name="varInt" type="int"/>
+ <element name="varFloat" type="float"/>
+ </all>
+ </complexType>
+ </schema>
+ </types>
+
+ <message name="echoStringRequest">
+ <part name="inputString" type="xsd:string"/>
+ </message>
+ <message name="echoStringResponse">
+ <part name="return" type="xsd:string"/>
+ </message>
+ <message name="echoStringArrayRequest">
+ <part name="inputStringArray" type="s:ArrayOfstring"/>
+ </message>
+ <message name="echoStringArrayResponse">
+ <part name="return" type="s:ArrayOfstring"/>
+ </message>
+ <message name="echoIntegerRequest">
+ <part name="inputInteger" type="xsd:int"/>
+ </message>
+ <message name="echoIntegerResponse">
+ <part name="return" type="xsd:int"/>
+ </message>
+ <message name="echoIntegerArrayRequest">
+ <part name="inputIntegerArray" type="s:ArrayOfint"/>
+ </message>
+ <message name="echoIntegerArrayResponse">
+ <part name="return" type="s:ArrayOfint"/>
+ </message>
+ <message name="echoFloatRequest">
+ <part name="inputFloat" type="xsd:float"/>
+ </message>
+ <message name="echoFloatResponse">
+ <part name="return" type="xsd:float"/>
+ </message>
+ <message name="echoFloatArrayRequest">
+ <part name="inputFloatArray" type="s:ArrayOffloat"/>
+ </message>
+ <message name="echoFloatArrayResponse">
+ <part name="return" type="s:ArrayOffloat"/>
+ </message>
+ <message name="echoStructRequest">
+ <part name="inputStruct" type="s:SOAPStruct"/>
+ </message>
+ <message name="echoStructResponse">
+ <part name="return" type="s:SOAPStruct"/>
+ </message>
+ <message name="echoStructArrayRequest">
+ <part name="inputStructArray" type="s:ArrayOfSOAPStruct"/>
+ </message>
+ <message name="echoStructArrayResponse">
+ <part name="return" type="s:ArrayOfSOAPStruct"/>
+ </message>
+ <message name="echoVoidRequest"/>
+ <message name="echoVoidResponse"/>
+ <message name="echoBase64Request">
+ <part name="inputBase64" type="xsd:base64Binary"/>
+ </message>
+ <message name="echoBase64Response">
+ <part name="return" type="xsd:base64Binary"/>
+ </message>
+ <message name="echoDateRequest">
+ <part name="inputDate" type="xsd:dateTime"/>
+ </message>
+ <message name="echoDateResponse">
+ <part name="return" type="xsd:dateTime"/>
+ </message>
+ <message name="echoHexBinaryRequest">
+ <part name="inputHexBinary" type="xsd:hexBinary"/>
+ </message>
+ <message name="echoHexBinaryResponse">
+ <part name="return" type="xsd:hexBinary"/>
+ </message>
+ <message name="echoDecimalRequest">
+ <part name="inputDecimal" type="xsd:decimal"/>
+ </message>
+ <message name="echoDecimalResponse">
+ <part name="return" type="xsd:decimal"/>
+ </message>
+ <message name="echoBooleanRequest">
+ <part name="inputBoolean" type="xsd:boolean"/>
+ </message>
+ <message name="echoBooleanResponse">
+ <part name="return" type="xsd:boolean"/>
+ </message>
+
+ <portType name="InteropTestPortType">
+ <operation name="echoString" parameterOrder="inputString">
+ <input message="tns:echoStringRequest"/>
+ <output message="tns:echoStringResponse"/>
+ </operation>
+ <operation name="echoStringArray" parameterOrder="inputStringArray">
+ <input message="tns:echoStringArrayRequest"/>
+ <output message="tns:echoStringArrayResponse"/>
+ </operation>
+ <operation name="echoInteger" parameterOrder="inputInteger">
+ <input message="tns:echoIntegerRequest"/>
+ <output message="tns:echoIntegerResponse"/>
+ </operation>
+ <operation name="echoIntegerArray" parameterOrder="inputIntegerArray">
+ <input message="tns:echoIntegerArrayRequest"/>
+ <output message="tns:echoIntegerArrayResponse"/>
+ </operation>
+ <operation name="echoFloat" parameterOrder="inputFloat">
+ <input message="tns:echoFloatRequest"/>
+ <output message="tns:echoFloatResponse"/>
+ </operation>
+ <operation name="echoFloatArray" parameterOrder="inputFloatArray">
+ <input message="tns:echoFloatArrayRequest"/>
+ <output message="tns:echoFloatArrayResponse"/>
+ </operation>
+ <operation name="echoStruct" parameterOrder="inputStruct">
+ <input message="tns:echoStructRequest"/>
+ <output message="tns:echoStructResponse"/>
+ </operation>
+ <operation name="echoStructArray" parameterOrder="inputStructArray">
+ <input message="tns:echoStructArrayRequest"/>
+ <output message="tns:echoStructArrayResponse"/>
+ </operation>
+ <operation name="echoVoid">
+ <input message="tns:echoVoidRequest"/>
+ <output message="tns:echoVoidResponse"/>
+ </operation>
+ <operation name="echoBase64" parameterOrder="inputBase64">
+ <input message="tns:echoBase64Request"/>
+ <output message="tns:echoBase64Response"/>
+ </operation>
+ <operation name="echoDate" parameterOrder="inputDate">
+ <input message="tns:echoDateRequest"/>
+ <output message="tns:echoDateResponse"/>
+ </operation>
+ <operation name="echoHexBinary" parameterOrder="inputHexBinary">
+ <input message="tns:echoHexBinaryRequest"/>
+ <output message="tns:echoHexBinaryResponse"/>
+ </operation>
+ <operation name="echoDecimal" parameterOrder="inputDecimal">
+ <input message="tns:echoDecimalRequest"/>
+ <output message="tns:echoDecimalResponse"/>
+ </operation>
+ <operation name="echoBoolean" parameterOrder="inputBoolean">
+ <input message="tns:echoBooleanRequest"/>
+ <output message="tns:echoBooleanResponse"/>
+ </operation>
+ </portType>
+
+ <binding name="InteropTestSoapBinding" type="tns:InteropTestPortType">
+ <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="echoString">
+ <soap:operation soapAction="InteropBase#echoString"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoStringArray">
+ <soap:operation soapAction="InteropBase#echoStringArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoInteger">
+ <soap:operation soapAction="InteropBase#echoInteger"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoIntegerArray">
+ <soap:operation soapAction="InteropBase#echoIntegerArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoFloat">
+ <soap:operation soapAction="InteropBase#echoFloat"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoFloatArray">
+ <soap:operation soapAction="InteropBase#echoFloatArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoStruct">
+ <soap:operation soapAction="InteropBase#echoStruct"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoStructArray">
+ <soap:operation soapAction="InteropBase#echoStructArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoVoid">
+ <soap:operation soapAction="InteropBase#echoVoid"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoBase64">
+ <soap:operation soapAction="InteropBase#echoBase64"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoDate">
+ <soap:operation soapAction="InteropBase#echoDate"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoHexBinary">
+ <soap:operation soapAction="InteropBase#echoHexBinary"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoDecimal">
+ <soap:operation soapAction="InteropBase#echoDecimal"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoBoolean">
+ <soap:operation soapAction="InteropBase#echoBoolean"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ </binding>
+ <service name="InteropBase">
+ <port binding="tns:InteropTestSoapBinding" name="InteropBaseTest">
+ <soap:address location="http://localhost/axis/InteropBase"/>
+ </port>
+ </service>
+</definitions>
diff --git a/test/resources/wsdl/RpcSoapHeaderTest1.wsdl b/test/resources/wsdl/RpcSoapHeaderTest1.wsdl
new file mode 100644
index 0000000..f7d1945
--- /dev/null
+++ b/test/resources/wsdl/RpcSoapHeaderTest1.wsdl
@@ -0,0 +1,333 @@
+<?xml version="1.0"?>
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- -->
+<!-- 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. -->
+
+<definitions name="InteropTest" 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:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://soapinterop.org/" xmlns:s="http://soapinterop.org/xsd" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+
+ <types>
+ <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://soapinterop.org/xsd">
+ <import namespace = "http://schemas.xmlsoap.org/soap/encoding/"/>
+ <complexType name="ArrayOfstring">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="string[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="ArrayOfint">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="int[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="ArrayOffloat">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="float[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="ArrayOfSOAPStruct">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="s:SOAPStruct[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="SOAPStruct">
+ <all>
+ <element name="varString" type="string"/>
+ <element name="varInt" type="int"/>
+ <element name="varFloat" type="float"/>
+ </all>
+ </complexType>
+ </schema>
+ </types>
+
+ <message name="echoStringRequest">
+ <part name="inputString" type="xsd:string"/>
+ </message>
+ <message name="echoStringResponse">
+ <part name="return" type="xsd:string"/>
+ </message>
+ <message name="echoStringArrayRequest">
+ <part name="inputStringArray" type="s:ArrayOfstring"/>
+ </message>
+ <message name="echoStringArrayResponse">
+ <part name="return" type="s:ArrayOfstring"/>
+ </message>
+ <message name="echoIntegerRequest">
+ <part name="inputInteger" type="xsd:int"/>
+ </message>
+ <message name="echoIntegerResponse">
+ <part name="return" type="xsd:int"/>
+ </message>
+ <message name="echoIntegerArrayRequest">
+ <part name="inputIntegerArray" type="s:ArrayOfint"/>
+ </message>
+ <message name="echoIntegerArrayResponse">
+ <part name="return" type="s:ArrayOfint"/>
+ </message>
+ <message name="echoFloatRequest">
+ <part name="inputFloat" type="xsd:float"/>
+ </message>
+ <message name="echoFloatResponse">
+ <part name="return" type="xsd:float"/>
+ </message>
+ <message name="echoFloatArrayRequest">
+ <part name="inputFloatArray" type="s:ArrayOffloat"/>
+ </message>
+ <message name="echoFloatArrayResponse">
+ <part name="return" type="s:ArrayOffloat"/>
+ </message>
+ <message name="echoStructRequest">
+ <part name="inputStruct" type="s:SOAPStruct"/>
+ </message>
+ <message name="echoStructResponse">
+ <part name="return" type="s:SOAPStruct"/>
+ </message>
+ <message name="echoStructArrayRequest">
+ <part name="inputStructArray" type="s:ArrayOfSOAPStruct"/>
+ </message>
+ <message name="echoStructArrayResponse">
+ <part name="return" type="s:ArrayOfSOAPStruct"/>
+ </message>
+ <message name="echoVoidRequest"/>
+ <message name="echoVoidResponse"/>
+ <message name="echoBase64Request">
+ <part name="inputBase64" type="xsd:base64Binary"/>
+ </message>
+ <message name="echoBase64Response">
+ <part name="return" type="xsd:base64Binary"/>
+ </message>
+ <message name="echoDateRequest">
+ <part name="inputDate" type="xsd:dateTime"/>
+ </message>
+ <message name="echoDateResponse">
+ <part name="return" type="xsd:dateTime"/>
+ </message>
+ <message name="echoHexBinaryRequest">
+ <part name="inputHexBinary" type="xsd:hexBinary"/>
+ </message>
+ <message name="echoHexBinaryResponse">
+ <part name="return" type="xsd:hexBinary"/>
+ </message>
+ <message name="echoDecimalRequest">
+ <part name="inputDecimal" type="xsd:decimal"/>
+ </message>
+ <message name="echoDecimalResponse">
+ <part name="return" type="xsd:decimal"/>
+ </message>
+ <message name="echoBooleanRequest">
+ <part name="inputBoolean" type="xsd:boolean"/>
+ </message>
+ <message name="echoBooleanResponse">
+ <part name="return" type="xsd:boolean"/>
+ </message>
+
+ <portType name="InteropTestPortType">
+ <operation name="echoString" parameterOrder="inputString">
+ <input message="tns:echoStringRequest"/>
+ <output message="tns:echoStringResponse"/>
+ </operation>
+ <operation name="echoStringArray" parameterOrder="inputStringArray">
+ <input message="tns:echoStringArrayRequest"/>
+ <output message="tns:echoStringArrayResponse"/>
+ </operation>
+ <operation name="echoInteger" parameterOrder="inputInteger">
+ <input message="tns:echoIntegerRequest"/>
+ <output message="tns:echoIntegerResponse"/>
+ </operation>
+ <operation name="echoIntegerArray" parameterOrder="inputIntegerArray">
+ <input message="tns:echoIntegerArrayRequest"/>
+ <output message="tns:echoIntegerArrayResponse"/>
+ </operation>
+ <operation name="echoFloat" parameterOrder="inputFloat">
+ <input message="tns:echoFloatRequest"/>
+ <output message="tns:echoFloatResponse"/>
+ </operation>
+ <operation name="echoFloatArray" parameterOrder="inputFloatArray">
+ <input message="tns:echoFloatArrayRequest"/>
+ <output message="tns:echoFloatArrayResponse"/>
+ </operation>
+ <operation name="echoStruct" parameterOrder="inputStruct">
+ <input message="tns:echoStructRequest"/>
+ <output message="tns:echoStructResponse"/>
+ </operation>
+ <operation name="echoStructArray" parameterOrder="inputStructArray">
+ <input message="tns:echoStructArrayRequest"/>
+ <output message="tns:echoStructArrayResponse"/>
+ </operation>
+ <operation name="echoVoid">
+ <input message="tns:echoVoidRequest"/>
+ <output message="tns:echoVoidResponse"/>
+ </operation>
+ <operation name="echoBase64" parameterOrder="inputBase64">
+ <input message="tns:echoBase64Request"/>
+ <output message="tns:echoBase64Response"/>
+ </operation>
+ <operation name="echoDate" parameterOrder="inputDate">
+ <input message="tns:echoDateRequest"/>
+ <output message="tns:echoDateResponse"/>
+ </operation>
+ <operation name="echoHexBinary" parameterOrder="inputHexBinary">
+ <input message="tns:echoHexBinaryRequest"/>
+ <output message="tns:echoHexBinaryResponse"/>
+ </operation>
+ <operation name="echoDecimal" parameterOrder="inputDecimal">
+ <input message="tns:echoDecimalRequest"/>
+ <output message="tns:echoDecimalResponse"/>
+ </operation>
+ <operation name="echoBoolean" parameterOrder="inputBoolean">
+ <input message="tns:echoBooleanRequest"/>
+ <output message="tns:echoBooleanResponse"/>
+ </operation>
+ </portType>
+
+ <binding name="InteropTestSoapBinding" type="tns:InteropTestPortType">
+ <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="echoString">
+ <soap:operation soapAction="InteropBase#echoString"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoStringArray">
+ <soap:operation soapAction="InteropBase#echoStringArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoInteger">
+ <soap:operation soapAction="InteropBase#echoInteger"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoIntegerArray">
+ <soap:operation soapAction="InteropBase#echoIntegerArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoFloat">
+ <soap:operation soapAction="InteropBase#echoFloat"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoFloatArray">
+ <soap:operation soapAction="InteropBase#echoFloatArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoStruct">
+ <soap:operation soapAction="InteropBase#echoStruct"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoStructArray">
+ <soap:operation soapAction="InteropBase#echoStructArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoVoid">
+ <soap:operation soapAction="InteropBase#echoVoid"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoBase64">
+ <soap:operation soapAction="InteropBase#echoBase64"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoDate">
+ <soap:operation soapAction="InteropBase#echoDate"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoHexBinary">
+ <soap:operation soapAction="InteropBase#echoHexBinary"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoDecimal">
+ <soap:operation soapAction="InteropBase#echoDecimal"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoBoolean">
+ <soap:operation soapAction="InteropBase#echoBoolean"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ </binding>
+ <service name="InteropBase">
+ <port binding="tns:InteropTestSoapBinding" name="InteropBaseTest">
+ <soap:address location="http://localhost/axis/InteropBase"/>
+ </port>
+ </service>
+</definitions>
diff --git a/test/resources/wsdl/RpcSoapHeaderTest10.wsdl b/test/resources/wsdl/RpcSoapHeaderTest10.wsdl
new file mode 100644
index 0000000..f7d1945
--- /dev/null
+++ b/test/resources/wsdl/RpcSoapHeaderTest10.wsdl
@@ -0,0 +1,333 @@
+<?xml version="1.0"?>
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- -->
+<!-- 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. -->
+
+<definitions name="InteropTest" 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:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://soapinterop.org/" xmlns:s="http://soapinterop.org/xsd" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+
+ <types>
+ <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://soapinterop.org/xsd">
+ <import namespace = "http://schemas.xmlsoap.org/soap/encoding/"/>
+ <complexType name="ArrayOfstring">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="string[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="ArrayOfint">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="int[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="ArrayOffloat">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="float[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="ArrayOfSOAPStruct">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="s:SOAPStruct[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="SOAPStruct">
+ <all>
+ <element name="varString" type="string"/>
+ <element name="varInt" type="int"/>
+ <element name="varFloat" type="float"/>
+ </all>
+ </complexType>
+ </schema>
+ </types>
+
+ <message name="echoStringRequest">
+ <part name="inputString" type="xsd:string"/>
+ </message>
+ <message name="echoStringResponse">
+ <part name="return" type="xsd:string"/>
+ </message>
+ <message name="echoStringArrayRequest">
+ <part name="inputStringArray" type="s:ArrayOfstring"/>
+ </message>
+ <message name="echoStringArrayResponse">
+ <part name="return" type="s:ArrayOfstring"/>
+ </message>
+ <message name="echoIntegerRequest">
+ <part name="inputInteger" type="xsd:int"/>
+ </message>
+ <message name="echoIntegerResponse">
+ <part name="return" type="xsd:int"/>
+ </message>
+ <message name="echoIntegerArrayRequest">
+ <part name="inputIntegerArray" type="s:ArrayOfint"/>
+ </message>
+ <message name="echoIntegerArrayResponse">
+ <part name="return" type="s:ArrayOfint"/>
+ </message>
+ <message name="echoFloatRequest">
+ <part name="inputFloat" type="xsd:float"/>
+ </message>
+ <message name="echoFloatResponse">
+ <part name="return" type="xsd:float"/>
+ </message>
+ <message name="echoFloatArrayRequest">
+ <part name="inputFloatArray" type="s:ArrayOffloat"/>
+ </message>
+ <message name="echoFloatArrayResponse">
+ <part name="return" type="s:ArrayOffloat"/>
+ </message>
+ <message name="echoStructRequest">
+ <part name="inputStruct" type="s:SOAPStruct"/>
+ </message>
+ <message name="echoStructResponse">
+ <part name="return" type="s:SOAPStruct"/>
+ </message>
+ <message name="echoStructArrayRequest">
+ <part name="inputStructArray" type="s:ArrayOfSOAPStruct"/>
+ </message>
+ <message name="echoStructArrayResponse">
+ <part name="return" type="s:ArrayOfSOAPStruct"/>
+ </message>
+ <message name="echoVoidRequest"/>
+ <message name="echoVoidResponse"/>
+ <message name="echoBase64Request">
+ <part name="inputBase64" type="xsd:base64Binary"/>
+ </message>
+ <message name="echoBase64Response">
+ <part name="return" type="xsd:base64Binary"/>
+ </message>
+ <message name="echoDateRequest">
+ <part name="inputDate" type="xsd:dateTime"/>
+ </message>
+ <message name="echoDateResponse">
+ <part name="return" type="xsd:dateTime"/>
+ </message>
+ <message name="echoHexBinaryRequest">
+ <part name="inputHexBinary" type="xsd:hexBinary"/>
+ </message>
+ <message name="echoHexBinaryResponse">
+ <part name="return" type="xsd:hexBinary"/>
+ </message>
+ <message name="echoDecimalRequest">
+ <part name="inputDecimal" type="xsd:decimal"/>
+ </message>
+ <message name="echoDecimalResponse">
+ <part name="return" type="xsd:decimal"/>
+ </message>
+ <message name="echoBooleanRequest">
+ <part name="inputBoolean" type="xsd:boolean"/>
+ </message>
+ <message name="echoBooleanResponse">
+ <part name="return" type="xsd:boolean"/>
+ </message>
+
+ <portType name="InteropTestPortType">
+ <operation name="echoString" parameterOrder="inputString">
+ <input message="tns:echoStringRequest"/>
+ <output message="tns:echoStringResponse"/>
+ </operation>
+ <operation name="echoStringArray" parameterOrder="inputStringArray">
+ <input message="tns:echoStringArrayRequest"/>
+ <output message="tns:echoStringArrayResponse"/>
+ </operation>
+ <operation name="echoInteger" parameterOrder="inputInteger">
+ <input message="tns:echoIntegerRequest"/>
+ <output message="tns:echoIntegerResponse"/>
+ </operation>
+ <operation name="echoIntegerArray" parameterOrder="inputIntegerArray">
+ <input message="tns:echoIntegerArrayRequest"/>
+ <output message="tns:echoIntegerArrayResponse"/>
+ </operation>
+ <operation name="echoFloat" parameterOrder="inputFloat">
+ <input message="tns:echoFloatRequest"/>
+ <output message="tns:echoFloatResponse"/>
+ </operation>
+ <operation name="echoFloatArray" parameterOrder="inputFloatArray">
+ <input message="tns:echoFloatArrayRequest"/>
+ <output message="tns:echoFloatArrayResponse"/>
+ </operation>
+ <operation name="echoStruct" parameterOrder="inputStruct">
+ <input message="tns:echoStructRequest"/>
+ <output message="tns:echoStructResponse"/>
+ </operation>
+ <operation name="echoStructArray" parameterOrder="inputStructArray">
+ <input message="tns:echoStructArrayRequest"/>
+ <output message="tns:echoStructArrayResponse"/>
+ </operation>
+ <operation name="echoVoid">
+ <input message="tns:echoVoidRequest"/>
+ <output message="tns:echoVoidResponse"/>
+ </operation>
+ <operation name="echoBase64" parameterOrder="inputBase64">
+ <input message="tns:echoBase64Request"/>
+ <output message="tns:echoBase64Response"/>
+ </operation>
+ <operation name="echoDate" parameterOrder="inputDate">
+ <input message="tns:echoDateRequest"/>
+ <output message="tns:echoDateResponse"/>
+ </operation>
+ <operation name="echoHexBinary" parameterOrder="inputHexBinary">
+ <input message="tns:echoHexBinaryRequest"/>
+ <output message="tns:echoHexBinaryResponse"/>
+ </operation>
+ <operation name="echoDecimal" parameterOrder="inputDecimal">
+ <input message="tns:echoDecimalRequest"/>
+ <output message="tns:echoDecimalResponse"/>
+ </operation>
+ <operation name="echoBoolean" parameterOrder="inputBoolean">
+ <input message="tns:echoBooleanRequest"/>
+ <output message="tns:echoBooleanResponse"/>
+ </operation>
+ </portType>
+
+ <binding name="InteropTestSoapBinding" type="tns:InteropTestPortType">
+ <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="echoString">
+ <soap:operation soapAction="InteropBase#echoString"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoStringArray">
+ <soap:operation soapAction="InteropBase#echoStringArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoInteger">
+ <soap:operation soapAction="InteropBase#echoInteger"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoIntegerArray">
+ <soap:operation soapAction="InteropBase#echoIntegerArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoFloat">
+ <soap:operation soapAction="InteropBase#echoFloat"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoFloatArray">
+ <soap:operation soapAction="InteropBase#echoFloatArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoStruct">
+ <soap:operation soapAction="InteropBase#echoStruct"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoStructArray">
+ <soap:operation soapAction="InteropBase#echoStructArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoVoid">
+ <soap:operation soapAction="InteropBase#echoVoid"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoBase64">
+ <soap:operation soapAction="InteropBase#echoBase64"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoDate">
+ <soap:operation soapAction="InteropBase#echoDate"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoHexBinary">
+ <soap:operation soapAction="InteropBase#echoHexBinary"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoDecimal">
+ <soap:operation soapAction="InteropBase#echoDecimal"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoBoolean">
+ <soap:operation soapAction="InteropBase#echoBoolean"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ </binding>
+ <service name="InteropBase">
+ <port binding="tns:InteropTestSoapBinding" name="InteropBaseTest">
+ <soap:address location="http://localhost/axis/InteropBase"/>
+ </port>
+ </service>
+</definitions>
diff --git a/test/resources/wsdl/RpcSoapHeaderTest2.wsdl b/test/resources/wsdl/RpcSoapHeaderTest2.wsdl
new file mode 100644
index 0000000..f7d1945
--- /dev/null
+++ b/test/resources/wsdl/RpcSoapHeaderTest2.wsdl
@@ -0,0 +1,333 @@
+<?xml version="1.0"?>
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- -->
+<!-- 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. -->
+
+<definitions name="InteropTest" 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:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://soapinterop.org/" xmlns:s="http://soapinterop.org/xsd" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+
+ <types>
+ <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://soapinterop.org/xsd">
+ <import namespace = "http://schemas.xmlsoap.org/soap/encoding/"/>
+ <complexType name="ArrayOfstring">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="string[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="ArrayOfint">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="int[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="ArrayOffloat">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="float[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="ArrayOfSOAPStruct">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="s:SOAPStruct[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="SOAPStruct">
+ <all>
+ <element name="varString" type="string"/>
+ <element name="varInt" type="int"/>
+ <element name="varFloat" type="float"/>
+ </all>
+ </complexType>
+ </schema>
+ </types>
+
+ <message name="echoStringRequest">
+ <part name="inputString" type="xsd:string"/>
+ </message>
+ <message name="echoStringResponse">
+ <part name="return" type="xsd:string"/>
+ </message>
+ <message name="echoStringArrayRequest">
+ <part name="inputStringArray" type="s:ArrayOfstring"/>
+ </message>
+ <message name="echoStringArrayResponse">
+ <part name="return" type="s:ArrayOfstring"/>
+ </message>
+ <message name="echoIntegerRequest">
+ <part name="inputInteger" type="xsd:int"/>
+ </message>
+ <message name="echoIntegerResponse">
+ <part name="return" type="xsd:int"/>
+ </message>
+ <message name="echoIntegerArrayRequest">
+ <part name="inputIntegerArray" type="s:ArrayOfint"/>
+ </message>
+ <message name="echoIntegerArrayResponse">
+ <part name="return" type="s:ArrayOfint"/>
+ </message>
+ <message name="echoFloatRequest">
+ <part name="inputFloat" type="xsd:float"/>
+ </message>
+ <message name="echoFloatResponse">
+ <part name="return" type="xsd:float"/>
+ </message>
+ <message name="echoFloatArrayRequest">
+ <part name="inputFloatArray" type="s:ArrayOffloat"/>
+ </message>
+ <message name="echoFloatArrayResponse">
+ <part name="return" type="s:ArrayOffloat"/>
+ </message>
+ <message name="echoStructRequest">
+ <part name="inputStruct" type="s:SOAPStruct"/>
+ </message>
+ <message name="echoStructResponse">
+ <part name="return" type="s:SOAPStruct"/>
+ </message>
+ <message name="echoStructArrayRequest">
+ <part name="inputStructArray" type="s:ArrayOfSOAPStruct"/>
+ </message>
+ <message name="echoStructArrayResponse">
+ <part name="return" type="s:ArrayOfSOAPStruct"/>
+ </message>
+ <message name="echoVoidRequest"/>
+ <message name="echoVoidResponse"/>
+ <message name="echoBase64Request">
+ <part name="inputBase64" type="xsd:base64Binary"/>
+ </message>
+ <message name="echoBase64Response">
+ <part name="return" type="xsd:base64Binary"/>
+ </message>
+ <message name="echoDateRequest">
+ <part name="inputDate" type="xsd:dateTime"/>
+ </message>
+ <message name="echoDateResponse">
+ <part name="return" type="xsd:dateTime"/>
+ </message>
+ <message name="echoHexBinaryRequest">
+ <part name="inputHexBinary" type="xsd:hexBinary"/>
+ </message>
+ <message name="echoHexBinaryResponse">
+ <part name="return" type="xsd:hexBinary"/>
+ </message>
+ <message name="echoDecimalRequest">
+ <part name="inputDecimal" type="xsd:decimal"/>
+ </message>
+ <message name="echoDecimalResponse">
+ <part name="return" type="xsd:decimal"/>
+ </message>
+ <message name="echoBooleanRequest">
+ <part name="inputBoolean" type="xsd:boolean"/>
+ </message>
+ <message name="echoBooleanResponse">
+ <part name="return" type="xsd:boolean"/>
+ </message>
+
+ <portType name="InteropTestPortType">
+ <operation name="echoString" parameterOrder="inputString">
+ <input message="tns:echoStringRequest"/>
+ <output message="tns:echoStringResponse"/>
+ </operation>
+ <operation name="echoStringArray" parameterOrder="inputStringArray">
+ <input message="tns:echoStringArrayRequest"/>
+ <output message="tns:echoStringArrayResponse"/>
+ </operation>
+ <operation name="echoInteger" parameterOrder="inputInteger">
+ <input message="tns:echoIntegerRequest"/>
+ <output message="tns:echoIntegerResponse"/>
+ </operation>
+ <operation name="echoIntegerArray" parameterOrder="inputIntegerArray">
+ <input message="tns:echoIntegerArrayRequest"/>
+ <output message="tns:echoIntegerArrayResponse"/>
+ </operation>
+ <operation name="echoFloat" parameterOrder="inputFloat">
+ <input message="tns:echoFloatRequest"/>
+ <output message="tns:echoFloatResponse"/>
+ </operation>
+ <operation name="echoFloatArray" parameterOrder="inputFloatArray">
+ <input message="tns:echoFloatArrayRequest"/>
+ <output message="tns:echoFloatArrayResponse"/>
+ </operation>
+ <operation name="echoStruct" parameterOrder="inputStruct">
+ <input message="tns:echoStructRequest"/>
+ <output message="tns:echoStructResponse"/>
+ </operation>
+ <operation name="echoStructArray" parameterOrder="inputStructArray">
+ <input message="tns:echoStructArrayRequest"/>
+ <output message="tns:echoStructArrayResponse"/>
+ </operation>
+ <operation name="echoVoid">
+ <input message="tns:echoVoidRequest"/>
+ <output message="tns:echoVoidResponse"/>
+ </operation>
+ <operation name="echoBase64" parameterOrder="inputBase64">
+ <input message="tns:echoBase64Request"/>
+ <output message="tns:echoBase64Response"/>
+ </operation>
+ <operation name="echoDate" parameterOrder="inputDate">
+ <input message="tns:echoDateRequest"/>
+ <output message="tns:echoDateResponse"/>
+ </operation>
+ <operation name="echoHexBinary" parameterOrder="inputHexBinary">
+ <input message="tns:echoHexBinaryRequest"/>
+ <output message="tns:echoHexBinaryResponse"/>
+ </operation>
+ <operation name="echoDecimal" parameterOrder="inputDecimal">
+ <input message="tns:echoDecimalRequest"/>
+ <output message="tns:echoDecimalResponse"/>
+ </operation>
+ <operation name="echoBoolean" parameterOrder="inputBoolean">
+ <input message="tns:echoBooleanRequest"/>
+ <output message="tns:echoBooleanResponse"/>
+ </operation>
+ </portType>
+
+ <binding name="InteropTestSoapBinding" type="tns:InteropTestPortType">
+ <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="echoString">
+ <soap:operation soapAction="InteropBase#echoString"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoStringArray">
+ <soap:operation soapAction="InteropBase#echoStringArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoInteger">
+ <soap:operation soapAction="InteropBase#echoInteger"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoIntegerArray">
+ <soap:operation soapAction="InteropBase#echoIntegerArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoFloat">
+ <soap:operation soapAction="InteropBase#echoFloat"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoFloatArray">
+ <soap:operation soapAction="InteropBase#echoFloatArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoStruct">
+ <soap:operation soapAction="InteropBase#echoStruct"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoStructArray">
+ <soap:operation soapAction="InteropBase#echoStructArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoVoid">
+ <soap:operation soapAction="InteropBase#echoVoid"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoBase64">
+ <soap:operation soapAction="InteropBase#echoBase64"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoDate">
+ <soap:operation soapAction="InteropBase#echoDate"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoHexBinary">
+ <soap:operation soapAction="InteropBase#echoHexBinary"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoDecimal">
+ <soap:operation soapAction="InteropBase#echoDecimal"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoBoolean">
+ <soap:operation soapAction="InteropBase#echoBoolean"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ </binding>
+ <service name="InteropBase">
+ <port binding="tns:InteropTestSoapBinding" name="InteropBaseTest">
+ <soap:address location="http://localhost/axis/InteropBase"/>
+ </port>
+ </service>
+</definitions>
diff --git a/test/resources/wsdl/RpcSoapHeaderTest3.wsdl b/test/resources/wsdl/RpcSoapHeaderTest3.wsdl
new file mode 100644
index 0000000..f7d1945
--- /dev/null
+++ b/test/resources/wsdl/RpcSoapHeaderTest3.wsdl
@@ -0,0 +1,333 @@
+<?xml version="1.0"?>
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- -->
+<!-- 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. -->
+
+<definitions name="InteropTest" 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:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://soapinterop.org/" xmlns:s="http://soapinterop.org/xsd" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+
+ <types>
+ <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://soapinterop.org/xsd">
+ <import namespace = "http://schemas.xmlsoap.org/soap/encoding/"/>
+ <complexType name="ArrayOfstring">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="string[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="ArrayOfint">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="int[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="ArrayOffloat">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="float[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="ArrayOfSOAPStruct">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="s:SOAPStruct[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="SOAPStruct">
+ <all>
+ <element name="varString" type="string"/>
+ <element name="varInt" type="int"/>
+ <element name="varFloat" type="float"/>
+ </all>
+ </complexType>
+ </schema>
+ </types>
+
+ <message name="echoStringRequest">
+ <part name="inputString" type="xsd:string"/>
+ </message>
+ <message name="echoStringResponse">
+ <part name="return" type="xsd:string"/>
+ </message>
+ <message name="echoStringArrayRequest">
+ <part name="inputStringArray" type="s:ArrayOfstring"/>
+ </message>
+ <message name="echoStringArrayResponse">
+ <part name="return" type="s:ArrayOfstring"/>
+ </message>
+ <message name="echoIntegerRequest">
+ <part name="inputInteger" type="xsd:int"/>
+ </message>
+ <message name="echoIntegerResponse">
+ <part name="return" type="xsd:int"/>
+ </message>
+ <message name="echoIntegerArrayRequest">
+ <part name="inputIntegerArray" type="s:ArrayOfint"/>
+ </message>
+ <message name="echoIntegerArrayResponse">
+ <part name="return" type="s:ArrayOfint"/>
+ </message>
+ <message name="echoFloatRequest">
+ <part name="inputFloat" type="xsd:float"/>
+ </message>
+ <message name="echoFloatResponse">
+ <part name="return" type="xsd:float"/>
+ </message>
+ <message name="echoFloatArrayRequest">
+ <part name="inputFloatArray" type="s:ArrayOffloat"/>
+ </message>
+ <message name="echoFloatArrayResponse">
+ <part name="return" type="s:ArrayOffloat"/>
+ </message>
+ <message name="echoStructRequest">
+ <part name="inputStruct" type="s:SOAPStruct"/>
+ </message>
+ <message name="echoStructResponse">
+ <part name="return" type="s:SOAPStruct"/>
+ </message>
+ <message name="echoStructArrayRequest">
+ <part name="inputStructArray" type="s:ArrayOfSOAPStruct"/>
+ </message>
+ <message name="echoStructArrayResponse">
+ <part name="return" type="s:ArrayOfSOAPStruct"/>
+ </message>
+ <message name="echoVoidRequest"/>
+ <message name="echoVoidResponse"/>
+ <message name="echoBase64Request">
+ <part name="inputBase64" type="xsd:base64Binary"/>
+ </message>
+ <message name="echoBase64Response">
+ <part name="return" type="xsd:base64Binary"/>
+ </message>
+ <message name="echoDateRequest">
+ <part name="inputDate" type="xsd:dateTime"/>
+ </message>
+ <message name="echoDateResponse">
+ <part name="return" type="xsd:dateTime"/>
+ </message>
+ <message name="echoHexBinaryRequest">
+ <part name="inputHexBinary" type="xsd:hexBinary"/>
+ </message>
+ <message name="echoHexBinaryResponse">
+ <part name="return" type="xsd:hexBinary"/>
+ </message>
+ <message name="echoDecimalRequest">
+ <part name="inputDecimal" type="xsd:decimal"/>
+ </message>
+ <message name="echoDecimalResponse">
+ <part name="return" type="xsd:decimal"/>
+ </message>
+ <message name="echoBooleanRequest">
+ <part name="inputBoolean" type="xsd:boolean"/>
+ </message>
+ <message name="echoBooleanResponse">
+ <part name="return" type="xsd:boolean"/>
+ </message>
+
+ <portType name="InteropTestPortType">
+ <operation name="echoString" parameterOrder="inputString">
+ <input message="tns:echoStringRequest"/>
+ <output message="tns:echoStringResponse"/>
+ </operation>
+ <operation name="echoStringArray" parameterOrder="inputStringArray">
+ <input message="tns:echoStringArrayRequest"/>
+ <output message="tns:echoStringArrayResponse"/>
+ </operation>
+ <operation name="echoInteger" parameterOrder="inputInteger">
+ <input message="tns:echoIntegerRequest"/>
+ <output message="tns:echoIntegerResponse"/>
+ </operation>
+ <operation name="echoIntegerArray" parameterOrder="inputIntegerArray">
+ <input message="tns:echoIntegerArrayRequest"/>
+ <output message="tns:echoIntegerArrayResponse"/>
+ </operation>
+ <operation name="echoFloat" parameterOrder="inputFloat">
+ <input message="tns:echoFloatRequest"/>
+ <output message="tns:echoFloatResponse"/>
+ </operation>
+ <operation name="echoFloatArray" parameterOrder="inputFloatArray">
+ <input message="tns:echoFloatArrayRequest"/>
+ <output message="tns:echoFloatArrayResponse"/>
+ </operation>
+ <operation name="echoStruct" parameterOrder="inputStruct">
+ <input message="tns:echoStructRequest"/>
+ <output message="tns:echoStructResponse"/>
+ </operation>
+ <operation name="echoStructArray" parameterOrder="inputStructArray">
+ <input message="tns:echoStructArrayRequest"/>
+ <output message="tns:echoStructArrayResponse"/>
+ </operation>
+ <operation name="echoVoid">
+ <input message="tns:echoVoidRequest"/>
+ <output message="tns:echoVoidResponse"/>
+ </operation>
+ <operation name="echoBase64" parameterOrder="inputBase64">
+ <input message="tns:echoBase64Request"/>
+ <output message="tns:echoBase64Response"/>
+ </operation>
+ <operation name="echoDate" parameterOrder="inputDate">
+ <input message="tns:echoDateRequest"/>
+ <output message="tns:echoDateResponse"/>
+ </operation>
+ <operation name="echoHexBinary" parameterOrder="inputHexBinary">
+ <input message="tns:echoHexBinaryRequest"/>
+ <output message="tns:echoHexBinaryResponse"/>
+ </operation>
+ <operation name="echoDecimal" parameterOrder="inputDecimal">
+ <input message="tns:echoDecimalRequest"/>
+ <output message="tns:echoDecimalResponse"/>
+ </operation>
+ <operation name="echoBoolean" parameterOrder="inputBoolean">
+ <input message="tns:echoBooleanRequest"/>
+ <output message="tns:echoBooleanResponse"/>
+ </operation>
+ </portType>
+
+ <binding name="InteropTestSoapBinding" type="tns:InteropTestPortType">
+ <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="echoString">
+ <soap:operation soapAction="InteropBase#echoString"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoStringArray">
+ <soap:operation soapAction="InteropBase#echoStringArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoInteger">
+ <soap:operation soapAction="InteropBase#echoInteger"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoIntegerArray">
+ <soap:operation soapAction="InteropBase#echoIntegerArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoFloat">
+ <soap:operation soapAction="InteropBase#echoFloat"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoFloatArray">
+ <soap:operation soapAction="InteropBase#echoFloatArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoStruct">
+ <soap:operation soapAction="InteropBase#echoStruct"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoStructArray">
+ <soap:operation soapAction="InteropBase#echoStructArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoVoid">
+ <soap:operation soapAction="InteropBase#echoVoid"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoBase64">
+ <soap:operation soapAction="InteropBase#echoBase64"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoDate">
+ <soap:operation soapAction="InteropBase#echoDate"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoHexBinary">
+ <soap:operation soapAction="InteropBase#echoHexBinary"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoDecimal">
+ <soap:operation soapAction="InteropBase#echoDecimal"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoBoolean">
+ <soap:operation soapAction="InteropBase#echoBoolean"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ </binding>
+ <service name="InteropBase">
+ <port binding="tns:InteropTestSoapBinding" name="InteropBaseTest">
+ <soap:address location="http://localhost/axis/InteropBase"/>
+ </port>
+ </service>
+</definitions>
diff --git a/test/resources/wsdl/RpcSoapHeaderTest4.wsdl b/test/resources/wsdl/RpcSoapHeaderTest4.wsdl
new file mode 100644
index 0000000..f7d1945
--- /dev/null
+++ b/test/resources/wsdl/RpcSoapHeaderTest4.wsdl
@@ -0,0 +1,333 @@
+<?xml version="1.0"?>
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- -->
+<!-- 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. -->
+
+<definitions name="InteropTest" 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:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://soapinterop.org/" xmlns:s="http://soapinterop.org/xsd" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+
+ <types>
+ <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://soapinterop.org/xsd">
+ <import namespace = "http://schemas.xmlsoap.org/soap/encoding/"/>
+ <complexType name="ArrayOfstring">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="string[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="ArrayOfint">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="int[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="ArrayOffloat">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="float[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="ArrayOfSOAPStruct">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="s:SOAPStruct[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="SOAPStruct">
+ <all>
+ <element name="varString" type="string"/>
+ <element name="varInt" type="int"/>
+ <element name="varFloat" type="float"/>
+ </all>
+ </complexType>
+ </schema>
+ </types>
+
+ <message name="echoStringRequest">
+ <part name="inputString" type="xsd:string"/>
+ </message>
+ <message name="echoStringResponse">
+ <part name="return" type="xsd:string"/>
+ </message>
+ <message name="echoStringArrayRequest">
+ <part name="inputStringArray" type="s:ArrayOfstring"/>
+ </message>
+ <message name="echoStringArrayResponse">
+ <part name="return" type="s:ArrayOfstring"/>
+ </message>
+ <message name="echoIntegerRequest">
+ <part name="inputInteger" type="xsd:int"/>
+ </message>
+ <message name="echoIntegerResponse">
+ <part name="return" type="xsd:int"/>
+ </message>
+ <message name="echoIntegerArrayRequest">
+ <part name="inputIntegerArray" type="s:ArrayOfint"/>
+ </message>
+ <message name="echoIntegerArrayResponse">
+ <part name="return" type="s:ArrayOfint"/>
+ </message>
+ <message name="echoFloatRequest">
+ <part name="inputFloat" type="xsd:float"/>
+ </message>
+ <message name="echoFloatResponse">
+ <part name="return" type="xsd:float"/>
+ </message>
+ <message name="echoFloatArrayRequest">
+ <part name="inputFloatArray" type="s:ArrayOffloat"/>
+ </message>
+ <message name="echoFloatArrayResponse">
+ <part name="return" type="s:ArrayOffloat"/>
+ </message>
+ <message name="echoStructRequest">
+ <part name="inputStruct" type="s:SOAPStruct"/>
+ </message>
+ <message name="echoStructResponse">
+ <part name="return" type="s:SOAPStruct"/>
+ </message>
+ <message name="echoStructArrayRequest">
+ <part name="inputStructArray" type="s:ArrayOfSOAPStruct"/>
+ </message>
+ <message name="echoStructArrayResponse">
+ <part name="return" type="s:ArrayOfSOAPStruct"/>
+ </message>
+ <message name="echoVoidRequest"/>
+ <message name="echoVoidResponse"/>
+ <message name="echoBase64Request">
+ <part name="inputBase64" type="xsd:base64Binary"/>
+ </message>
+ <message name="echoBase64Response">
+ <part name="return" type="xsd:base64Binary"/>
+ </message>
+ <message name="echoDateRequest">
+ <part name="inputDate" type="xsd:dateTime"/>
+ </message>
+ <message name="echoDateResponse">
+ <part name="return" type="xsd:dateTime"/>
+ </message>
+ <message name="echoHexBinaryRequest">
+ <part name="inputHexBinary" type="xsd:hexBinary"/>
+ </message>
+ <message name="echoHexBinaryResponse">
+ <part name="return" type="xsd:hexBinary"/>
+ </message>
+ <message name="echoDecimalRequest">
+ <part name="inputDecimal" type="xsd:decimal"/>
+ </message>
+ <message name="echoDecimalResponse">
+ <part name="return" type="xsd:decimal"/>
+ </message>
+ <message name="echoBooleanRequest">
+ <part name="inputBoolean" type="xsd:boolean"/>
+ </message>
+ <message name="echoBooleanResponse">
+ <part name="return" type="xsd:boolean"/>
+ </message>
+
+ <portType name="InteropTestPortType">
+ <operation name="echoString" parameterOrder="inputString">
+ <input message="tns:echoStringRequest"/>
+ <output message="tns:echoStringResponse"/>
+ </operation>
+ <operation name="echoStringArray" parameterOrder="inputStringArray">
+ <input message="tns:echoStringArrayRequest"/>
+ <output message="tns:echoStringArrayResponse"/>
+ </operation>
+ <operation name="echoInteger" parameterOrder="inputInteger">
+ <input message="tns:echoIntegerRequest"/>
+ <output message="tns:echoIntegerResponse"/>
+ </operation>
+ <operation name="echoIntegerArray" parameterOrder="inputIntegerArray">
+ <input message="tns:echoIntegerArrayRequest"/>
+ <output message="tns:echoIntegerArrayResponse"/>
+ </operation>
+ <operation name="echoFloat" parameterOrder="inputFloat">
+ <input message="tns:echoFloatRequest"/>
+ <output message="tns:echoFloatResponse"/>
+ </operation>
+ <operation name="echoFloatArray" parameterOrder="inputFloatArray">
+ <input message="tns:echoFloatArrayRequest"/>
+ <output message="tns:echoFloatArrayResponse"/>
+ </operation>
+ <operation name="echoStruct" parameterOrder="inputStruct">
+ <input message="tns:echoStructRequest"/>
+ <output message="tns:echoStructResponse"/>
+ </operation>
+ <operation name="echoStructArray" parameterOrder="inputStructArray">
+ <input message="tns:echoStructArrayRequest"/>
+ <output message="tns:echoStructArrayResponse"/>
+ </operation>
+ <operation name="echoVoid">
+ <input message="tns:echoVoidRequest"/>
+ <output message="tns:echoVoidResponse"/>
+ </operation>
+ <operation name="echoBase64" parameterOrder="inputBase64">
+ <input message="tns:echoBase64Request"/>
+ <output message="tns:echoBase64Response"/>
+ </operation>
+ <operation name="echoDate" parameterOrder="inputDate">
+ <input message="tns:echoDateRequest"/>
+ <output message="tns:echoDateResponse"/>
+ </operation>
+ <operation name="echoHexBinary" parameterOrder="inputHexBinary">
+ <input message="tns:echoHexBinaryRequest"/>
+ <output message="tns:echoHexBinaryResponse"/>
+ </operation>
+ <operation name="echoDecimal" parameterOrder="inputDecimal">
+ <input message="tns:echoDecimalRequest"/>
+ <output message="tns:echoDecimalResponse"/>
+ </operation>
+ <operation name="echoBoolean" parameterOrder="inputBoolean">
+ <input message="tns:echoBooleanRequest"/>
+ <output message="tns:echoBooleanResponse"/>
+ </operation>
+ </portType>
+
+ <binding name="InteropTestSoapBinding" type="tns:InteropTestPortType">
+ <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="echoString">
+ <soap:operation soapAction="InteropBase#echoString"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoStringArray">
+ <soap:operation soapAction="InteropBase#echoStringArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoInteger">
+ <soap:operation soapAction="InteropBase#echoInteger"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoIntegerArray">
+ <soap:operation soapAction="InteropBase#echoIntegerArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoFloat">
+ <soap:operation soapAction="InteropBase#echoFloat"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoFloatArray">
+ <soap:operation soapAction="InteropBase#echoFloatArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoStruct">
+ <soap:operation soapAction="InteropBase#echoStruct"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoStructArray">
+ <soap:operation soapAction="InteropBase#echoStructArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoVoid">
+ <soap:operation soapAction="InteropBase#echoVoid"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoBase64">
+ <soap:operation soapAction="InteropBase#echoBase64"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoDate">
+ <soap:operation soapAction="InteropBase#echoDate"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoHexBinary">
+ <soap:operation soapAction="InteropBase#echoHexBinary"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoDecimal">
+ <soap:operation soapAction="InteropBase#echoDecimal"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoBoolean">
+ <soap:operation soapAction="InteropBase#echoBoolean"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ </binding>
+ <service name="InteropBase">
+ <port binding="tns:InteropTestSoapBinding" name="InteropBaseTest">
+ <soap:address location="http://localhost/axis/InteropBase"/>
+ </port>
+ </service>
+</definitions>
diff --git a/test/resources/wsdl/RpcSoapHeaderTest6.wsdl b/test/resources/wsdl/RpcSoapHeaderTest6.wsdl
new file mode 100644
index 0000000..f7d1945
--- /dev/null
+++ b/test/resources/wsdl/RpcSoapHeaderTest6.wsdl
@@ -0,0 +1,333 @@
+<?xml version="1.0"?>
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- -->
+<!-- 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. -->
+
+<definitions name="InteropTest" 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:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://soapinterop.org/" xmlns:s="http://soapinterop.org/xsd" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+
+ <types>
+ <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://soapinterop.org/xsd">
+ <import namespace = "http://schemas.xmlsoap.org/soap/encoding/"/>
+ <complexType name="ArrayOfstring">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="string[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="ArrayOfint">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="int[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="ArrayOffloat">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="float[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="ArrayOfSOAPStruct">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="s:SOAPStruct[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="SOAPStruct">
+ <all>
+ <element name="varString" type="string"/>
+ <element name="varInt" type="int"/>
+ <element name="varFloat" type="float"/>
+ </all>
+ </complexType>
+ </schema>
+ </types>
+
+ <message name="echoStringRequest">
+ <part name="inputString" type="xsd:string"/>
+ </message>
+ <message name="echoStringResponse">
+ <part name="return" type="xsd:string"/>
+ </message>
+ <message name="echoStringArrayRequest">
+ <part name="inputStringArray" type="s:ArrayOfstring"/>
+ </message>
+ <message name="echoStringArrayResponse">
+ <part name="return" type="s:ArrayOfstring"/>
+ </message>
+ <message name="echoIntegerRequest">
+ <part name="inputInteger" type="xsd:int"/>
+ </message>
+ <message name="echoIntegerResponse">
+ <part name="return" type="xsd:int"/>
+ </message>
+ <message name="echoIntegerArrayRequest">
+ <part name="inputIntegerArray" type="s:ArrayOfint"/>
+ </message>
+ <message name="echoIntegerArrayResponse">
+ <part name="return" type="s:ArrayOfint"/>
+ </message>
+ <message name="echoFloatRequest">
+ <part name="inputFloat" type="xsd:float"/>
+ </message>
+ <message name="echoFloatResponse">
+ <part name="return" type="xsd:float"/>
+ </message>
+ <message name="echoFloatArrayRequest">
+ <part name="inputFloatArray" type="s:ArrayOffloat"/>
+ </message>
+ <message name="echoFloatArrayResponse">
+ <part name="return" type="s:ArrayOffloat"/>
+ </message>
+ <message name="echoStructRequest">
+ <part name="inputStruct" type="s:SOAPStruct"/>
+ </message>
+ <message name="echoStructResponse">
+ <part name="return" type="s:SOAPStruct"/>
+ </message>
+ <message name="echoStructArrayRequest">
+ <part name="inputStructArray" type="s:ArrayOfSOAPStruct"/>
+ </message>
+ <message name="echoStructArrayResponse">
+ <part name="return" type="s:ArrayOfSOAPStruct"/>
+ </message>
+ <message name="echoVoidRequest"/>
+ <message name="echoVoidResponse"/>
+ <message name="echoBase64Request">
+ <part name="inputBase64" type="xsd:base64Binary"/>
+ </message>
+ <message name="echoBase64Response">
+ <part name="return" type="xsd:base64Binary"/>
+ </message>
+ <message name="echoDateRequest">
+ <part name="inputDate" type="xsd:dateTime"/>
+ </message>
+ <message name="echoDateResponse">
+ <part name="return" type="xsd:dateTime"/>
+ </message>
+ <message name="echoHexBinaryRequest">
+ <part name="inputHexBinary" type="xsd:hexBinary"/>
+ </message>
+ <message name="echoHexBinaryResponse">
+ <part name="return" type="xsd:hexBinary"/>
+ </message>
+ <message name="echoDecimalRequest">
+ <part name="inputDecimal" type="xsd:decimal"/>
+ </message>
+ <message name="echoDecimalResponse">
+ <part name="return" type="xsd:decimal"/>
+ </message>
+ <message name="echoBooleanRequest">
+ <part name="inputBoolean" type="xsd:boolean"/>
+ </message>
+ <message name="echoBooleanResponse">
+ <part name="return" type="xsd:boolean"/>
+ </message>
+
+ <portType name="InteropTestPortType">
+ <operation name="echoString" parameterOrder="inputString">
+ <input message="tns:echoStringRequest"/>
+ <output message="tns:echoStringResponse"/>
+ </operation>
+ <operation name="echoStringArray" parameterOrder="inputStringArray">
+ <input message="tns:echoStringArrayRequest"/>
+ <output message="tns:echoStringArrayResponse"/>
+ </operation>
+ <operation name="echoInteger" parameterOrder="inputInteger">
+ <input message="tns:echoIntegerRequest"/>
+ <output message="tns:echoIntegerResponse"/>
+ </operation>
+ <operation name="echoIntegerArray" parameterOrder="inputIntegerArray">
+ <input message="tns:echoIntegerArrayRequest"/>
+ <output message="tns:echoIntegerArrayResponse"/>
+ </operation>
+ <operation name="echoFloat" parameterOrder="inputFloat">
+ <input message="tns:echoFloatRequest"/>
+ <output message="tns:echoFloatResponse"/>
+ </operation>
+ <operation name="echoFloatArray" parameterOrder="inputFloatArray">
+ <input message="tns:echoFloatArrayRequest"/>
+ <output message="tns:echoFloatArrayResponse"/>
+ </operation>
+ <operation name="echoStruct" parameterOrder="inputStruct">
+ <input message="tns:echoStructRequest"/>
+ <output message="tns:echoStructResponse"/>
+ </operation>
+ <operation name="echoStructArray" parameterOrder="inputStructArray">
+ <input message="tns:echoStructArrayRequest"/>
+ <output message="tns:echoStructArrayResponse"/>
+ </operation>
+ <operation name="echoVoid">
+ <input message="tns:echoVoidRequest"/>
+ <output message="tns:echoVoidResponse"/>
+ </operation>
+ <operation name="echoBase64" parameterOrder="inputBase64">
+ <input message="tns:echoBase64Request"/>
+ <output message="tns:echoBase64Response"/>
+ </operation>
+ <operation name="echoDate" parameterOrder="inputDate">
+ <input message="tns:echoDateRequest"/>
+ <output message="tns:echoDateResponse"/>
+ </operation>
+ <operation name="echoHexBinary" parameterOrder="inputHexBinary">
+ <input message="tns:echoHexBinaryRequest"/>
+ <output message="tns:echoHexBinaryResponse"/>
+ </operation>
+ <operation name="echoDecimal" parameterOrder="inputDecimal">
+ <input message="tns:echoDecimalRequest"/>
+ <output message="tns:echoDecimalResponse"/>
+ </operation>
+ <operation name="echoBoolean" parameterOrder="inputBoolean">
+ <input message="tns:echoBooleanRequest"/>
+ <output message="tns:echoBooleanResponse"/>
+ </operation>
+ </portType>
+
+ <binding name="InteropTestSoapBinding" type="tns:InteropTestPortType">
+ <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="echoString">
+ <soap:operation soapAction="InteropBase#echoString"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoStringArray">
+ <soap:operation soapAction="InteropBase#echoStringArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoInteger">
+ <soap:operation soapAction="InteropBase#echoInteger"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoIntegerArray">
+ <soap:operation soapAction="InteropBase#echoIntegerArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoFloat">
+ <soap:operation soapAction="InteropBase#echoFloat"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoFloatArray">
+ <soap:operation soapAction="InteropBase#echoFloatArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoStruct">
+ <soap:operation soapAction="InteropBase#echoStruct"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoStructArray">
+ <soap:operation soapAction="InteropBase#echoStructArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoVoid">
+ <soap:operation soapAction="InteropBase#echoVoid"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoBase64">
+ <soap:operation soapAction="InteropBase#echoBase64"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoDate">
+ <soap:operation soapAction="InteropBase#echoDate"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoHexBinary">
+ <soap:operation soapAction="InteropBase#echoHexBinary"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoDecimal">
+ <soap:operation soapAction="InteropBase#echoDecimal"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoBoolean">
+ <soap:operation soapAction="InteropBase#echoBoolean"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ </binding>
+ <service name="InteropBase">
+ <port binding="tns:InteropTestSoapBinding" name="InteropBaseTest">
+ <soap:address location="http://localhost/axis/InteropBase"/>
+ </port>
+ </service>
+</definitions>
diff --git a/test/resources/wsdl/RpcSoapHeaderTest8.wsdl b/test/resources/wsdl/RpcSoapHeaderTest8.wsdl
new file mode 100644
index 0000000..f7d1945
--- /dev/null
+++ b/test/resources/wsdl/RpcSoapHeaderTest8.wsdl
@@ -0,0 +1,333 @@
+<?xml version="1.0"?>
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- -->
+<!-- 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. -->
+
+<definitions name="InteropTest" 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:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://soapinterop.org/" xmlns:s="http://soapinterop.org/xsd" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+
+ <types>
+ <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://soapinterop.org/xsd">
+ <import namespace = "http://schemas.xmlsoap.org/soap/encoding/"/>
+ <complexType name="ArrayOfstring">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="string[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="ArrayOfint">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="int[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="ArrayOffloat">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="float[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="ArrayOfSOAPStruct">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="s:SOAPStruct[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="SOAPStruct">
+ <all>
+ <element name="varString" type="string"/>
+ <element name="varInt" type="int"/>
+ <element name="varFloat" type="float"/>
+ </all>
+ </complexType>
+ </schema>
+ </types>
+
+ <message name="echoStringRequest">
+ <part name="inputString" type="xsd:string"/>
+ </message>
+ <message name="echoStringResponse">
+ <part name="return" type="xsd:string"/>
+ </message>
+ <message name="echoStringArrayRequest">
+ <part name="inputStringArray" type="s:ArrayOfstring"/>
+ </message>
+ <message name="echoStringArrayResponse">
+ <part name="return" type="s:ArrayOfstring"/>
+ </message>
+ <message name="echoIntegerRequest">
+ <part name="inputInteger" type="xsd:int"/>
+ </message>
+ <message name="echoIntegerResponse">
+ <part name="return" type="xsd:int"/>
+ </message>
+ <message name="echoIntegerArrayRequest">
+ <part name="inputIntegerArray" type="s:ArrayOfint"/>
+ </message>
+ <message name="echoIntegerArrayResponse">
+ <part name="return" type="s:ArrayOfint"/>
+ </message>
+ <message name="echoFloatRequest">
+ <part name="inputFloat" type="xsd:float"/>
+ </message>
+ <message name="echoFloatResponse">
+ <part name="return" type="xsd:float"/>
+ </message>
+ <message name="echoFloatArrayRequest">
+ <part name="inputFloatArray" type="s:ArrayOffloat"/>
+ </message>
+ <message name="echoFloatArrayResponse">
+ <part name="return" type="s:ArrayOffloat"/>
+ </message>
+ <message name="echoStructRequest">
+ <part name="inputStruct" type="s:SOAPStruct"/>
+ </message>
+ <message name="echoStructResponse">
+ <part name="return" type="s:SOAPStruct"/>
+ </message>
+ <message name="echoStructArrayRequest">
+ <part name="inputStructArray" type="s:ArrayOfSOAPStruct"/>
+ </message>
+ <message name="echoStructArrayResponse">
+ <part name="return" type="s:ArrayOfSOAPStruct"/>
+ </message>
+ <message name="echoVoidRequest"/>
+ <message name="echoVoidResponse"/>
+ <message name="echoBase64Request">
+ <part name="inputBase64" type="xsd:base64Binary"/>
+ </message>
+ <message name="echoBase64Response">
+ <part name="return" type="xsd:base64Binary"/>
+ </message>
+ <message name="echoDateRequest">
+ <part name="inputDate" type="xsd:dateTime"/>
+ </message>
+ <message name="echoDateResponse">
+ <part name="return" type="xsd:dateTime"/>
+ </message>
+ <message name="echoHexBinaryRequest">
+ <part name="inputHexBinary" type="xsd:hexBinary"/>
+ </message>
+ <message name="echoHexBinaryResponse">
+ <part name="return" type="xsd:hexBinary"/>
+ </message>
+ <message name="echoDecimalRequest">
+ <part name="inputDecimal" type="xsd:decimal"/>
+ </message>
+ <message name="echoDecimalResponse">
+ <part name="return" type="xsd:decimal"/>
+ </message>
+ <message name="echoBooleanRequest">
+ <part name="inputBoolean" type="xsd:boolean"/>
+ </message>
+ <message name="echoBooleanResponse">
+ <part name="return" type="xsd:boolean"/>
+ </message>
+
+ <portType name="InteropTestPortType">
+ <operation name="echoString" parameterOrder="inputString">
+ <input message="tns:echoStringRequest"/>
+ <output message="tns:echoStringResponse"/>
+ </operation>
+ <operation name="echoStringArray" parameterOrder="inputStringArray">
+ <input message="tns:echoStringArrayRequest"/>
+ <output message="tns:echoStringArrayResponse"/>
+ </operation>
+ <operation name="echoInteger" parameterOrder="inputInteger">
+ <input message="tns:echoIntegerRequest"/>
+ <output message="tns:echoIntegerResponse"/>
+ </operation>
+ <operation name="echoIntegerArray" parameterOrder="inputIntegerArray">
+ <input message="tns:echoIntegerArrayRequest"/>
+ <output message="tns:echoIntegerArrayResponse"/>
+ </operation>
+ <operation name="echoFloat" parameterOrder="inputFloat">
+ <input message="tns:echoFloatRequest"/>
+ <output message="tns:echoFloatResponse"/>
+ </operation>
+ <operation name="echoFloatArray" parameterOrder="inputFloatArray">
+ <input message="tns:echoFloatArrayRequest"/>
+ <output message="tns:echoFloatArrayResponse"/>
+ </operation>
+ <operation name="echoStruct" parameterOrder="inputStruct">
+ <input message="tns:echoStructRequest"/>
+ <output message="tns:echoStructResponse"/>
+ </operation>
+ <operation name="echoStructArray" parameterOrder="inputStructArray">
+ <input message="tns:echoStructArrayRequest"/>
+ <output message="tns:echoStructArrayResponse"/>
+ </operation>
+ <operation name="echoVoid">
+ <input message="tns:echoVoidRequest"/>
+ <output message="tns:echoVoidResponse"/>
+ </operation>
+ <operation name="echoBase64" parameterOrder="inputBase64">
+ <input message="tns:echoBase64Request"/>
+ <output message="tns:echoBase64Response"/>
+ </operation>
+ <operation name="echoDate" parameterOrder="inputDate">
+ <input message="tns:echoDateRequest"/>
+ <output message="tns:echoDateResponse"/>
+ </operation>
+ <operation name="echoHexBinary" parameterOrder="inputHexBinary">
+ <input message="tns:echoHexBinaryRequest"/>
+ <output message="tns:echoHexBinaryResponse"/>
+ </operation>
+ <operation name="echoDecimal" parameterOrder="inputDecimal">
+ <input message="tns:echoDecimalRequest"/>
+ <output message="tns:echoDecimalResponse"/>
+ </operation>
+ <operation name="echoBoolean" parameterOrder="inputBoolean">
+ <input message="tns:echoBooleanRequest"/>
+ <output message="tns:echoBooleanResponse"/>
+ </operation>
+ </portType>
+
+ <binding name="InteropTestSoapBinding" type="tns:InteropTestPortType">
+ <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="echoString">
+ <soap:operation soapAction="InteropBase#echoString"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoStringArray">
+ <soap:operation soapAction="InteropBase#echoStringArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoInteger">
+ <soap:operation soapAction="InteropBase#echoInteger"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoIntegerArray">
+ <soap:operation soapAction="InteropBase#echoIntegerArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoFloat">
+ <soap:operation soapAction="InteropBase#echoFloat"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoFloatArray">
+ <soap:operation soapAction="InteropBase#echoFloatArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoStruct">
+ <soap:operation soapAction="InteropBase#echoStruct"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoStructArray">
+ <soap:operation soapAction="InteropBase#echoStructArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoVoid">
+ <soap:operation soapAction="InteropBase#echoVoid"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoBase64">
+ <soap:operation soapAction="InteropBase#echoBase64"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoDate">
+ <soap:operation soapAction="InteropBase#echoDate"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoHexBinary">
+ <soap:operation soapAction="InteropBase#echoHexBinary"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoDecimal">
+ <soap:operation soapAction="InteropBase#echoDecimal"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoBoolean">
+ <soap:operation soapAction="InteropBase#echoBoolean"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ </binding>
+ <service name="InteropBase">
+ <port binding="tns:InteropTestSoapBinding" name="InteropBaseTest">
+ <soap:address location="http://localhost/axis/InteropBase"/>
+ </port>
+ </service>
+</definitions>
diff --git a/test/resources/wsdl/RpcSoapHeaderTest9.wsdl b/test/resources/wsdl/RpcSoapHeaderTest9.wsdl
new file mode 100644
index 0000000..f7d1945
--- /dev/null
+++ b/test/resources/wsdl/RpcSoapHeaderTest9.wsdl
@@ -0,0 +1,333 @@
+<?xml version="1.0"?>
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- -->
+<!-- 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. -->
+
+<definitions name="InteropTest" 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:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://soapinterop.org/" xmlns:s="http://soapinterop.org/xsd" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+
+ <types>
+ <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://soapinterop.org/xsd">
+ <import namespace = "http://schemas.xmlsoap.org/soap/encoding/"/>
+ <complexType name="ArrayOfstring">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="string[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="ArrayOfint">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="int[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="ArrayOffloat">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="float[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="ArrayOfSOAPStruct">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="s:SOAPStruct[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="SOAPStruct">
+ <all>
+ <element name="varString" type="string"/>
+ <element name="varInt" type="int"/>
+ <element name="varFloat" type="float"/>
+ </all>
+ </complexType>
+ </schema>
+ </types>
+
+ <message name="echoStringRequest">
+ <part name="inputString" type="xsd:string"/>
+ </message>
+ <message name="echoStringResponse">
+ <part name="return" type="xsd:string"/>
+ </message>
+ <message name="echoStringArrayRequest">
+ <part name="inputStringArray" type="s:ArrayOfstring"/>
+ </message>
+ <message name="echoStringArrayResponse">
+ <part name="return" type="s:ArrayOfstring"/>
+ </message>
+ <message name="echoIntegerRequest">
+ <part name="inputInteger" type="xsd:int"/>
+ </message>
+ <message name="echoIntegerResponse">
+ <part name="return" type="xsd:int"/>
+ </message>
+ <message name="echoIntegerArrayRequest">
+ <part name="inputIntegerArray" type="s:ArrayOfint"/>
+ </message>
+ <message name="echoIntegerArrayResponse">
+ <part name="return" type="s:ArrayOfint"/>
+ </message>
+ <message name="echoFloatRequest">
+ <part name="inputFloat" type="xsd:float"/>
+ </message>
+ <message name="echoFloatResponse">
+ <part name="return" type="xsd:float"/>
+ </message>
+ <message name="echoFloatArrayRequest">
+ <part name="inputFloatArray" type="s:ArrayOffloat"/>
+ </message>
+ <message name="echoFloatArrayResponse">
+ <part name="return" type="s:ArrayOffloat"/>
+ </message>
+ <message name="echoStructRequest">
+ <part name="inputStruct" type="s:SOAPStruct"/>
+ </message>
+ <message name="echoStructResponse">
+ <part name="return" type="s:SOAPStruct"/>
+ </message>
+ <message name="echoStructArrayRequest">
+ <part name="inputStructArray" type="s:ArrayOfSOAPStruct"/>
+ </message>
+ <message name="echoStructArrayResponse">
+ <part name="return" type="s:ArrayOfSOAPStruct"/>
+ </message>
+ <message name="echoVoidRequest"/>
+ <message name="echoVoidResponse"/>
+ <message name="echoBase64Request">
+ <part name="inputBase64" type="xsd:base64Binary"/>
+ </message>
+ <message name="echoBase64Response">
+ <part name="return" type="xsd:base64Binary"/>
+ </message>
+ <message name="echoDateRequest">
+ <part name="inputDate" type="xsd:dateTime"/>
+ </message>
+ <message name="echoDateResponse">
+ <part name="return" type="xsd:dateTime"/>
+ </message>
+ <message name="echoHexBinaryRequest">
+ <part name="inputHexBinary" type="xsd:hexBinary"/>
+ </message>
+ <message name="echoHexBinaryResponse">
+ <part name="return" type="xsd:hexBinary"/>
+ </message>
+ <message name="echoDecimalRequest">
+ <part name="inputDecimal" type="xsd:decimal"/>
+ </message>
+ <message name="echoDecimalResponse">
+ <part name="return" type="xsd:decimal"/>
+ </message>
+ <message name="echoBooleanRequest">
+ <part name="inputBoolean" type="xsd:boolean"/>
+ </message>
+ <message name="echoBooleanResponse">
+ <part name="return" type="xsd:boolean"/>
+ </message>
+
+ <portType name="InteropTestPortType">
+ <operation name="echoString" parameterOrder="inputString">
+ <input message="tns:echoStringRequest"/>
+ <output message="tns:echoStringResponse"/>
+ </operation>
+ <operation name="echoStringArray" parameterOrder="inputStringArray">
+ <input message="tns:echoStringArrayRequest"/>
+ <output message="tns:echoStringArrayResponse"/>
+ </operation>
+ <operation name="echoInteger" parameterOrder="inputInteger">
+ <input message="tns:echoIntegerRequest"/>
+ <output message="tns:echoIntegerResponse"/>
+ </operation>
+ <operation name="echoIntegerArray" parameterOrder="inputIntegerArray">
+ <input message="tns:echoIntegerArrayRequest"/>
+ <output message="tns:echoIntegerArrayResponse"/>
+ </operation>
+ <operation name="echoFloat" parameterOrder="inputFloat">
+ <input message="tns:echoFloatRequest"/>
+ <output message="tns:echoFloatResponse"/>
+ </operation>
+ <operation name="echoFloatArray" parameterOrder="inputFloatArray">
+ <input message="tns:echoFloatArrayRequest"/>
+ <output message="tns:echoFloatArrayResponse"/>
+ </operation>
+ <operation name="echoStruct" parameterOrder="inputStruct">
+ <input message="tns:echoStructRequest"/>
+ <output message="tns:echoStructResponse"/>
+ </operation>
+ <operation name="echoStructArray" parameterOrder="inputStructArray">
+ <input message="tns:echoStructArrayRequest"/>
+ <output message="tns:echoStructArrayResponse"/>
+ </operation>
+ <operation name="echoVoid">
+ <input message="tns:echoVoidRequest"/>
+ <output message="tns:echoVoidResponse"/>
+ </operation>
+ <operation name="echoBase64" parameterOrder="inputBase64">
+ <input message="tns:echoBase64Request"/>
+ <output message="tns:echoBase64Response"/>
+ </operation>
+ <operation name="echoDate" parameterOrder="inputDate">
+ <input message="tns:echoDateRequest"/>
+ <output message="tns:echoDateResponse"/>
+ </operation>
+ <operation name="echoHexBinary" parameterOrder="inputHexBinary">
+ <input message="tns:echoHexBinaryRequest"/>
+ <output message="tns:echoHexBinaryResponse"/>
+ </operation>
+ <operation name="echoDecimal" parameterOrder="inputDecimal">
+ <input message="tns:echoDecimalRequest"/>
+ <output message="tns:echoDecimalResponse"/>
+ </operation>
+ <operation name="echoBoolean" parameterOrder="inputBoolean">
+ <input message="tns:echoBooleanRequest"/>
+ <output message="tns:echoBooleanResponse"/>
+ </operation>
+ </portType>
+
+ <binding name="InteropTestSoapBinding" type="tns:InteropTestPortType">
+ <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="echoString">
+ <soap:operation soapAction="InteropBase#echoString"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoStringArray">
+ <soap:operation soapAction="InteropBase#echoStringArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoInteger">
+ <soap:operation soapAction="InteropBase#echoInteger"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoIntegerArray">
+ <soap:operation soapAction="InteropBase#echoIntegerArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoFloat">
+ <soap:operation soapAction="InteropBase#echoFloat"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoFloatArray">
+ <soap:operation soapAction="InteropBase#echoFloatArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoStruct">
+ <soap:operation soapAction="InteropBase#echoStruct"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoStructArray">
+ <soap:operation soapAction="InteropBase#echoStructArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoVoid">
+ <soap:operation soapAction="InteropBase#echoVoid"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoBase64">
+ <soap:operation soapAction="InteropBase#echoBase64"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoDate">
+ <soap:operation soapAction="InteropBase#echoDate"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoHexBinary">
+ <soap:operation soapAction="InteropBase#echoHexBinary"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoDecimal">
+ <soap:operation soapAction="InteropBase#echoDecimal"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoBoolean">
+ <soap:operation soapAction="InteropBase#echoBoolean"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ </binding>
+ <service name="InteropBase">
+ <port binding="tns:InteropTestSoapBinding" name="InteropBaseTest">
+ <soap:address location="http://localhost/axis/InteropBase"/>
+ </port>
+ </service>
+</definitions>
diff --git a/test/resources/wsdl/SimpleArray.wsdl b/test/resources/wsdl/SimpleArray.wsdl
new file mode 100644
index 0000000..ef42ca1
--- /dev/null
+++ b/test/resources/wsdl/SimpleArray.wsdl
@@ -0,0 +1,64 @@
+<?xml version="1.0"?>
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- -->
+<!-- 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. -->
+
+<definitions name="InteropTest" 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:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://soapinterop.org/" xmlns:s="http://soapinterop.org/xsd" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+
+ <types>
+ <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://soapinterop.org/xsd">
+ <import namespace = "http://schemas.xmlsoap.org/soap/encoding/"/>
+
+ <element name="intItem" type="int" />
+ <complexType name="intArrayType">
+ <sequence>
+ <element ref="s:intItem" minOccurs="0" maxOccurs="unbounded" />
+ </sequence>
+ </complexType>
+
+
+ </schema>
+ </types>
+ <message name="echoIntArrayRequest">
+ <part name ="inputIntArrayType" type="s:intArrayType"/>
+ </message>
+ <message name="echoIntArrayResponse">
+ <part name ="return" type="s:intArrayType"/>
+ </message>
+
+ <portType name="ArrayTestPortType">
+ <operation name="echoIntArray" parameterOrder="inputIntArrayType">
+ <input message="tns:echoIntArrayRequest"/>
+ <output message="tns:echoIntArrayResponse"/>
+ </operation>
+ </portType>
+
+ <binding name="ArrayTestSoapBinding" type="tns:ArrayTestPortType">
+ <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="echoIntArray">
+ <soap:operation soapAction="array#echoIntArray"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+
+ </binding>
+ <service name="array">
+ <port binding="tns:ArrayTestSoapBinding" name="arrayTest">
+ <soap:address location="http://localhost/axis/array"/>
+ </port>
+ </service>
+</definitions>
diff --git a/test/resources/wsdl/SimpleArrayDoc.wsdl b/test/resources/wsdl/SimpleArrayDoc.wsdl
new file mode 100644
index 0000000..d079513
--- /dev/null
+++ b/test/resources/wsdl/SimpleArrayDoc.wsdl
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions targetNamespace="http://soapinterop.org" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://soapinterop.org" xmlns:intf="http://soapinterop.org" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <wsdl:types>
+ <schema elementFormDefault="qualified" targetNamespace="http://soapinterop.org" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://soapinterop.org" xmlns:intf="http://soapinterop.org" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+ <complexType name="intArrayType">
+ <sequence>
+ <element maxOccurs="unbounded" name="intItem" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ <element name="echoIntArray">
+ <complexType>
+ <sequence>
+ <element name="arg_0_0" nillable="true" type="impl:intArrayType"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoIntArrayResponse">
+ <complexType>
+ <sequence>
+ <element name="echoIntArrayReturn" nillable="true" type="impl:intArrayType"/>
+ </sequence>
+ </complexType>
+ </element>
+ </schema>
+ </wsdl:types>
+
+ <wsdl:message name="echoIntArrayRequest">
+
+ <wsdl:part element="impl:echoIntArray" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="echoIntArrayResponse">
+
+ <wsdl:part element="impl:echoIntArrayResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:portType name="ArrayTestPortType">
+
+ <wsdl:operation name="echoIntArray">
+
+ <wsdl:input message="impl:echoIntArrayRequest" name="echoIntArrayRequest"/>
+
+ <wsdl:output message="impl:echoIntArrayResponse" name="echoIntArrayResponse"/>
+
+ </wsdl:operation>
+
+ </wsdl:portType>
+
+ <wsdl:binding name="arrayTestSoapBinding" type="impl:ArrayTestPortType">
+
+ <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+
+ <wsdl:operation name="echoIntArray">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="echoIntArrayRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="echoIntArrayResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ </wsdl:binding>
+
+ <wsdl:service name="array">
+
+ <wsdl:port binding="impl:arrayTestSoapBinding" name="arrayTest">
+
+ <wsdlsoap:address location="http://localhost/axis/array"/>
+
+ </wsdl:port>
+
+ </wsdl:service>
+
+</wsdl:definitions>
diff --git a/test/resources/wsdl/SimpleArrays.wsdl b/test/resources/wsdl/SimpleArrays.wsdl
new file mode 100644
index 0000000..ae60352
--- /dev/null
+++ b/test/resources/wsdl/SimpleArrays.wsdl
@@ -0,0 +1,299 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- (c) Copyright IBM Corp. 2004, 2005 All Rights Reserved -->
+<!-- -->
+<!-- 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 targetNamespace="http://arrays.test.apache.org" xmlns:impl="http://arrays.test.apache.org" xmlns:intf="http://arrays.test.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">
+ <wsdl:types>
+ <schema elementFormDefault="qualified" targetNamespace="http://arrays.test.apache.org" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:impl="http://arrays.test.apache.org" xmlns:intf="http://arrays.test.apache.org" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <element name="echoBooleanArray">
+ <complexType>
+ <sequence>
+ <element maxOccurs="unbounded" minOccurs="0" name="arg_0_0" type="xsd:boolean"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoBooleanArrayResponse">
+ <complexType>
+ <sequence>
+ <element maxOccurs="unbounded" minOccurs="0" name="echoBooleanArrayReturn" type="xsd:boolean"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoByteArray">
+ <complexType>
+ <sequence>
+ <element name="arg_0_1" type="xsd:base64Binary"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoByteArrayResponse">
+ <complexType>
+ <sequence>
+ <element name="echoByteArrayReturn" type="xsd:base64Binary"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoShortArray">
+ <complexType>
+ <sequence>
+ <element maxOccurs="unbounded" minOccurs="0" name="arg_0_2" type="xsd:short"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoShortArrayResponse">
+ <complexType>
+ <sequence>
+ <element maxOccurs="unbounded" minOccurs="0" name="echoShortArrayReturn" type="xsd:short"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoIntArray">
+ <complexType>
+ <sequence>
+ <element maxOccurs="unbounded" minOccurs="0" name="arg_0_3" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoIntArrayResponse">
+ <complexType>
+ <sequence>
+ <element maxOccurs="unbounded" minOccurs="0" name="echoIntArrayReturn" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoLongArray">
+ <complexType>
+ <sequence>
+ <element maxOccurs="unbounded" minOccurs="0" name="arg_0_4" type="xsd:long"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoLongArrayResponse">
+ <complexType>
+ <sequence>
+ <element maxOccurs="unbounded" minOccurs="0" name="echoLongArrayReturn" type="xsd:long"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoFloatArray">
+ <complexType>
+ <sequence>
+ <element maxOccurs="unbounded" minOccurs="0" name="arg_0_5" type="xsd:float"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoFloatArrayResponse">
+ <complexType>
+ <sequence>
+ <element maxOccurs="unbounded" minOccurs="0" name="echoFloatArrayReturn" type="xsd:float"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoDoubleArray">
+ <complexType>
+ <sequence>
+ <element maxOccurs="unbounded" minOccurs="0" name="arg_0_6" type="xsd:double"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoDoubleArrayResponse">
+ <complexType>
+ <sequence>
+ <element maxOccurs="unbounded" minOccurs="0" name="echoDoubleArrayReturn" type="xsd:double"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoStringArray">
+ <complexType>
+ <sequence>
+ <element maxOccurs="unbounded" minOccurs="0" name="arg_0_7" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoStringArrayResponse">
+ <complexType>
+ <sequence>
+ <element maxOccurs="unbounded" minOccurs="0" name="echoStringArrayReturn" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </element>
+ </schema>
+ </wsdl:types>
+ <wsdl:message name="echoDoubleArrayRequest">
+ <wsdl:part element="impl:echoDoubleArray" name="parameters"/>
+ </wsdl:message>
+ <wsdl:message name="echoIntArrayResponse">
+ <wsdl:part element="impl:echoIntArrayResponse" name="parameters"/>
+ </wsdl:message>
+ <wsdl:message name="echoByteArrayRequest">
+ <wsdl:part element="impl:echoByteArray" name="parameters"/>
+ </wsdl:message>
+ <wsdl:message name="echoShortArrayRequest">
+ <wsdl:part element="impl:echoShortArray" name="parameters"/>
+ </wsdl:message>
+ <wsdl:message name="echoShortArrayResponse">
+ <wsdl:part element="impl:echoShortArrayResponse" name="parameters"/>
+ </wsdl:message>
+ <wsdl:message name="echoIntArrayRequest">
+ <wsdl:part element="impl:echoIntArray" name="parameters"/>
+ </wsdl:message>
+ <wsdl:message name="echoDoubleArrayResponse">
+ <wsdl:part element="impl:echoDoubleArrayResponse" name="parameters"/>
+ </wsdl:message>
+ <wsdl:message name="echoBooleanArrayResponse">
+ <wsdl:part element="impl:echoBooleanArrayResponse" name="parameters"/>
+ </wsdl:message>
+ <wsdl:message name="echoBooleanArrayRequest">
+ <wsdl:part element="impl:echoBooleanArray" name="parameters"/>
+ </wsdl:message>
+ <wsdl:message name="echoLongArrayRequest">
+ <wsdl:part element="impl:echoLongArray" name="parameters"/>
+ </wsdl:message>
+ <wsdl:message name="echoFloatArrayRequest">
+ <wsdl:part element="impl:echoFloatArray" name="parameters"/>
+ </wsdl:message>
+ <wsdl:message name="echoByteArrayResponse">
+ <wsdl:part element="impl:echoByteArrayResponse" name="parameters"/>
+ </wsdl:message>
+ <wsdl:message name="echoStringArrayRequest">
+ <wsdl:part element="impl:echoStringArray" name="parameters"/>
+ </wsdl:message>
+ <wsdl:message name="echoLongArrayResponse">
+ <wsdl:part element="impl:echoLongArrayResponse" name="parameters"/>
+ </wsdl:message>
+ <wsdl:message name="echoStringArrayResponse">
+ <wsdl:part element="impl:echoStringArrayResponse" name="parameters"/>
+ </wsdl:message>
+ <wsdl:message name="echoFloatArrayResponse">
+ <wsdl:part element="impl:echoFloatArrayResponse" name="parameters"/>
+ </wsdl:message>
+
+ <wsdl:portType name="SimpleArrays">
+ <wsdl:operation name="echoBooleanArray">
+ <wsdl:input message="impl:echoBooleanArrayRequest" name="echoBooleanArrayRequest"/>
+ <wsdl:output message="impl:echoBooleanArrayResponse" name="echoBooleanArrayResponse"/>
+ </wsdl:operation>
+ <wsdl:operation name="echoByteArray">
+ <wsdl:input message="impl:echoByteArrayRequest" name="echoByteArrayRequest"/>
+ <wsdl:output message="impl:echoByteArrayResponse" name="echoByteArrayResponse"/>
+ </wsdl:operation>
+ <wsdl:operation name="echoShortArray">
+ <wsdl:input message="impl:echoShortArrayRequest" name="echoShortArrayRequest"/>
+ <wsdl:output message="impl:echoShortArrayResponse" name="echoShortArrayResponse"/>
+ </wsdl:operation>
+ <wsdl:operation name="echoIntArray">
+ <wsdl:input message="impl:echoIntArrayRequest" name="echoIntArrayRequest"/>
+ <wsdl:output message="impl:echoIntArrayResponse" name="echoIntArrayResponse"/>
+ </wsdl:operation>
+ <wsdl:operation name="echoLongArray">
+ <wsdl:input message="impl:echoLongArrayRequest" name="echoLongArrayRequest"/>
+ <wsdl:output message="impl:echoLongArrayResponse" name="echoLongArrayResponse"/>
+ </wsdl:operation>
+ <wsdl:operation name="echoFloatArray">
+ <wsdl:input message="impl:echoFloatArrayRequest" name="echoFloatArrayRequest"/>
+ <wsdl:output message="impl:echoFloatArrayResponse" name="echoFloatArrayResponse"/>
+ </wsdl:operation>
+ <wsdl:operation name="echoDoubleArray">
+ <wsdl:input message="impl:echoDoubleArrayRequest" name="echoDoubleArrayRequest"/>
+ <wsdl:output message="impl:echoDoubleArrayResponse" name="echoDoubleArrayResponse"/>
+ </wsdl:operation>
+ <wsdl:operation name="echoStringArray">
+ <wsdl:input message="impl:echoStringArrayRequest" name="echoStringArrayRequest"/>
+ <wsdl:output message="impl:echoStringArrayResponse" name="echoStringArrayResponse"/>
+ </wsdl:operation>
+ </wsdl:portType>
+
+ <wsdl:binding name="SimpleArraysSoapBinding" type="impl:SimpleArrays">
+ <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <wsdl:operation name="echoBooleanArray">
+ <wsdlsoap:operation soapAction=""/>
+ <wsdl:input name="echoBooleanArrayRequest">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="echoBooleanArrayResponse">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="echoByteArray">
+ <wsdlsoap:operation soapAction=""/>
+ <wsdl:input name="echoByteArrayRequest">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="echoByteArrayResponse">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="echoShortArray">
+ <wsdlsoap:operation soapAction=""/>
+ <wsdl:input name="echoShortArrayRequest">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="echoShortArrayResponse">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="echoIntArray">
+ <wsdlsoap:operation soapAction=""/>
+ <wsdl:input name="echoIntArrayRequest">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="echoIntArrayResponse">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="echoLongArray">
+ <wsdlsoap:operation soapAction=""/>
+ <wsdl:input name="echoLongArrayRequest">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="echoLongArrayResponse">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="echoFloatArray">
+ <wsdlsoap:operation soapAction=""/>
+ <wsdl:input name="echoFloatArrayRequest">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="echoFloatArrayResponse">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="echoDoubleArray">
+ <wsdlsoap:operation soapAction=""/>
+ <wsdl:input name="echoDoubleArrayRequest">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="echoDoubleArrayResponse">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="echoStringArray">
+ <wsdlsoap:operation soapAction=""/>
+ <wsdl:input name="echoStringArrayRequest">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="echoStringArrayResponse">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+
+ <wsdl:service name="SimpleArraysService">
+ <wsdl:port binding="impl:SimpleArraysSoapBinding" name="SimpleArraysPort">
+ <wsdlsoap:address location="http://lion:9080/SimpleArrays/services/SimpleArraysPort"/>
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/test/resources/wsdl/SimpleChoice.wsdl b/test/resources/wsdl/SimpleChoice.wsdl
new file mode 100644
index 0000000..37329ed
--- /dev/null
+++ b/test/resources/wsdl/SimpleChoice.wsdl
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="utf-8"?>
+<definitions xmlns:s1="http://soapinterop.org/xsd" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s0="http://soapinterop.org/" xmlns:s3="http://soapinterop.org/echoheader/" xmlns:soap12enc="http://www.w3.org/2002/06/soap-envelope" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s2="http://soapinterop.org" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" targetNamespace="http://soapinterop.org/" xmlns="http://schemas.xmlsoap.org/wsdl/">
+ <types>
+ <s:schema elementFormDefault="qualified" targetNamespace="http://soapinterop.org/">
+ <s:import namespace="http://soapinterop.org/xsd" />
+
+
+
+
+ <s:element name="echoChoice">
+ <s:complexType>
+ <s:sequence>
+ <s:element minOccurs="0" maxOccurs="1" name="inputChoice" type="s1:ChoiceComplexType" />
+ </s:sequence>
+ </s:complexType>
+ </s:element>
+ <s:element name="echoChoiceResponse">
+ <s:complexType>
+ <s:sequence>
+ <s:element minOccurs="0" maxOccurs="1" name="return" type="s1:ChoiceComplexType" />
+ </s:sequence>
+ </s:complexType>
+ </s:element>
+
+
+
+ </s:schema>
+
+ <s:schema elementFormDefault="qualified" targetNamespace="http://soapinterop.org/xsd">
+ <s:import namespace="http://soapinterop.org/" />
+
+ <s:complexType name="ChoiceComplexType">
+ <s:sequence>
+ <s:choice minOccurs="1" maxOccurs="1">
+ <s:element minOccurs="0" maxOccurs="1" name="IntValue" type="s:int" />
+ <s:element minOccurs="0" maxOccurs="1" name="StringValue" type="s:string" />
+ </s:choice>
+ </s:sequence>
+ </s:complexType>
+ </s:schema>
+
+ </types>
+
+
+
+ <message name="echoChoiceSoapIn">
+ <part name="parameters" element="s0:echoChoice" />
+ </message>
+ <message name="echoChoiceSoapOut">
+ <part name="parameters" element="s0:echoChoiceResponse" />
+ </message>
+
+ <portType name="ChoiceTestSoap">
+
+
+ <operation name="echoChoice">
+ <input message="s0:echoChoiceSoapIn" />
+ <output message="s0:echoChoiceSoapOut" />
+ </operation>
+
+ </portType>
+
+
+ <binding name="ChoiceTestSoap" type="s0:ChoiceTestSoap">
+ <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
+
+ <operation name="echoChoice">
+ <soap:operation soapAction="SimpleChoiceTest#echoChoice" style="document" />
+ <input>
+ <soap:body use="literal" />
+ </input>
+ <output>
+ <soap:body use="literal" />
+ </output>
+ </operation>
+
+ </binding>
+
+<binding name="ChoiceTestSoap12" type="s0:ChoiceTestSoap">
+ <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
+
+
+ <operation name="echoChoice">
+ <soap12:operation soapAction="Choice#echoChoice" style="document" />
+ <input>
+ <soap12:body use="literal" />
+ </input>
+ <output>
+ <soap12:body use="literal" />
+ </output>
+ </operation>
+
+ </binding>
+
+<service name="ChoiceTest">
+ <documentation>These operations implement DOC/LIT SOAP operations, for interoperable testing. Please email johnko@microsoft.com with any questions/coments.</documentation>
+ <port name="ChoiceTestSoap" binding="s0:ChoiceTestSoap">
+ <soap:address location="http://localhost:90/axis/Choice" />
+ </port>
+ <port name="ChoiceTestSoap12" binding="s0:ChoiceTestSoap12">
+ <soap12:address location="http://localhost:90/axis/Choice" />
+ </port>
+ </service>
+</definitions> \ No newline at end of file
diff --git a/test/resources/wsdl/SimpleRef.wsdl b/test/resources/wsdl/SimpleRef.wsdl
new file mode 100644
index 0000000..58e2a99
--- /dev/null
+++ b/test/resources/wsdl/SimpleRef.wsdl
@@ -0,0 +1,114 @@
+<?xml version="1.0"?>
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- -->
+<!-- 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. -->
+
+
+<definitions name="InteropTest" 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:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://soapinterop.org/" xmlns:s="http://soapinterop.org/xsd" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+
+
+
+ <types>
+
+ <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://soapinterop.org/xsd">
+
+ <import namespace = "http://schemas.xmlsoap.org/soap/encoding/"/>
+
+
+
+ <element name="intItem" type="int" />
+
+ <complexType name="intType">
+
+ <sequence>
+
+ <element ref="s:intItem" />
+
+ </sequence>
+
+ </complexType>
+
+
+
+
+
+ </schema>
+
+ </types>
+
+ <message name="echoIntRequest">
+
+ <part name ="inputIntType" type="s:intType"/>
+
+ </message>
+
+ <message name="echoIntResponse">
+
+ <part name ="return" type="s:intType"/>
+
+ </message>
+
+
+
+ <portType name="RefTestPortType">
+
+ <operation name="echoInt" parameterOrder="inputIntType">
+
+ <input message="tns:echoIntRequest"/>
+
+ <output message="tns:echoIntResponse"/>
+
+ </operation>
+
+ </portType>
+
+
+
+ <binding name="RefTestSoapBinding" type="tns:RefTestPortType">
+
+ <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
+
+ <operation name="echoInt">
+
+ <soap:operation soapAction="ref#echoInt"/>
+
+ <input>
+
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+
+ </input>
+
+ <output>
+
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+
+ </output>
+
+ </operation>
+
+
+
+ </binding>
+
+ <service name="ref">
+
+ <port binding="tns:RefTestSoapBinding" name="RefTest">
+
+ <soap:address location="http://localhost/axis/ref"/>
+
+ </port>
+
+ </service>
+
+</definitions>
+
diff --git a/test/resources/wsdl/SimpleRefDoc.wsdl b/test/resources/wsdl/SimpleRefDoc.wsdl
new file mode 100644
index 0000000..543a472
--- /dev/null
+++ b/test/resources/wsdl/SimpleRefDoc.wsdl
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- (c) Copyright IBM Corp. 2004, 2005 All Rights Reserved -->
+<!-- -->
+<!-- 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 targetNamespace="http://soapinterop.org" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://soapinterop.org" xmlns:intf="http://soapinterop.org" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <wsdl:types>
+ <schema elementFormDefault="qualified" targetNamespace="http://soapinterop.org" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://soapinterop.org" xmlns:intf="http://soapinterop.org" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+ <complexType name="intType">
+ <sequence>
+ <element name="intItem" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ <element name="echoInt">
+ <complexType>
+ <sequence>
+ <element name="arg_0_0" nillable="true" type="impl:intType"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoIntResponse">
+ <complexType>
+ <sequence>
+ <element name="echoIntReturn" nillable="true" type="impl:intType"/>
+ </sequence>
+ </complexType>
+ </element>
+ </schema>
+ </wsdl:types>
+
+ <wsdl:message name="echoIntRequest">
+
+ <wsdl:part element="impl:echoInt" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="echoIntResponse">
+
+ <wsdl:part element="impl:echoIntResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:portType name="RefTestPortType">
+
+ <wsdl:operation name="echoInt">
+
+ <wsdl:input message="impl:echoIntRequest" name="echoIntRequest"/>
+
+ <wsdl:output message="impl:echoIntResponse" name="echoIntResponse"/>
+
+ </wsdl:operation>
+
+ </wsdl:portType>
+
+ <wsdl:binding name="refSoapBinding" type="impl:RefTestPortType">
+
+ <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+
+ <wsdl:operation name="echoInt">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="echoIntRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="echoIntResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ </wsdl:binding>
+
+ <wsdl:service name="ref">
+
+ <wsdl:port binding="impl:refSoapBinding" name="RefTest">
+
+ <wsdlsoap:address location="http://localhost/axis/ref"/>
+
+ </wsdl:port>
+
+ </wsdl:service>
+
+</wsdl:definitions>
diff --git a/test/resources/wsdl/SimpleTypeArray.wsdl b/test/resources/wsdl/SimpleTypeArray.wsdl
new file mode 100644
index 0000000..410ec86
--- /dev/null
+++ b/test/resources/wsdl/SimpleTypeArray.wsdl
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- (c) Copyright IBM Corp. 2004, 2005 All Rights Reserved -->
+<!-- -->
+<!-- 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. -->
+
+<definitions targetNamespace="http://simpletypearray.test.apache.org" xmlns:wsi="http://ws-i.org/schemas/conformanceClaim/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://simpletypearray.test.apache.org" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/">
+ <types>
+ <xsd:schema targetNamespace="http://simpletypearray.test.apache.org" xmlns:tns="http://simpletypearray.test.apache.org" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+
+ <xsd:element name="getInput">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="input" type="tns:Type"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:complexType name="Type">
+ <xsd:sequence>
+ <xsd:element maxOccurs="unbounded" minOccurs="0" name="item" type="xsd:int"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:element name="getInputResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="input" type="tns:Type"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+ </xsd:schema>
+ </types>
+ <message name="output">
+ <part name="parameters" element="tns:getInputResponse"/>
+ </message>
+ <message name="input">
+ <part name="parameters" element="tns:getInput"/>
+ </message>
+ <portType name="SimpleTypeArrayWS">
+ <operation name="getInput">
+ <input message="tns:input"/>
+ <output message="tns:output"/>
+ </operation>
+ </portType>
+ <binding name="SimpleTypeArrayWSBinding" type="tns:SimpleTypeArrayWS">
+ <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="getInput">
+ <soap:operation/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ </binding>
+ <service name="SimpleTypeArrayWSService">
+ <port name="sampleWS" binding="tns:SimpleTypeArrayWSBinding">
+ <soap:address location="http://localhost:9080/SimpleTypeArray/services/sampleWS"/>
+ </port>
+ </service>
+</definitions>
diff --git a/test/resources/wsdl/SimpleTypeInnerUnbounded.wsdl b/test/resources/wsdl/SimpleTypeInnerUnbounded.wsdl
new file mode 100644
index 0000000..15e4eba
--- /dev/null
+++ b/test/resources/wsdl/SimpleTypeInnerUnbounded.wsdl
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- (c) Copyright IBM Corp. 2004, 2005 All Rights Reserved -->
+<!-- -->
+<!-- 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. -->
+
+<definitions targetNamespace="http://simpletypeinnerunbounded.test.apache.org" xmlns:wsi="http://ws-i.org/schemas/conformanceClaim/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://simpletypeinnerunbounded.test.apache.org" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/">
+ <types>
+ <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://simpletypeinnerunbounded.test.apache.org" xmlns:tns="http://simpletypeinnerunbounded.test.apache.org">
+
+ <xsd:element name="getInput">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="type" maxOccurs="1" minOccurs="0" type="tns:Type1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="getInputResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="type" maxOccurs="1" minOccurs="0" type="tns:Type1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:complexType name="Type1">
+ <xsd:sequence>
+ <xsd:element name="enum_int" maxOccurs="1" minOccurs="0" type="tns:TypeInt" />
+ <xsd:element name="enum_string" maxOccurs="1" minOccurs="0" type="tns:TypeString" />
+ <xsd:element maxOccurs="100" minOccurs="1" name="ident">
+ <xsd:simpleType>
+ <xsd:restriction base="xsd:string"/>
+ </xsd:simpleType>
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="att_enum_int" type="tns:TypeInt"/>
+ <xsd:attribute name="att_enum_string" type="tns:TypeString"/>
+ <xsd:attribute name="att_enum_kind">
+ <xsd:simpleType>
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="CHEQUE" />
+ <xsd:enumeration value="CREDIT_CARD" />
+ <xsd:enumeration value="TRANSFER" />
+ <xsd:enumeration value="WITHDRAWAL" />
+ <xsd:enumeration value="AUTOMATIC" />
+ </xsd:restriction>
+ </xsd:simpleType>
+ </xsd:attribute>
+ </xsd:complexType>
+
+ <xsd:simpleType name="TypeInt">
+ <xsd:restriction base="xsd:int">
+ <xsd:enumeration value="0" />
+ <xsd:enumeration value="1" />
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="TypeString">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="one" />
+ <xsd:enumeration value="two" />
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ </xsd:schema>
+ </types>
+
+
+ <message name="input">
+ <part name="parameters" element="tns:getInput" />
+ </message>
+
+ <message name="output">
+ <part name="parameters" element="tns:getInputResponse" />
+ </message>
+
+ <portType name="SimpleTypeInnerUnboundedWS">
+ <operation name="getInput">
+ <input message="tns:input" />
+ <output message="tns:output" />
+ </operation>
+ </portType>
+
+ <binding name="SimpleTypeInnerUnboundedWSBinding" type="tns:SimpleTypeInnerUnboundedWS">
+ <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
+ <operation name="getInput">
+ <soap:operation />
+ <input>
+ <soap:body use="literal" />
+ </input>
+ <output>
+ <soap:body use="literal" />
+ </output>
+ </operation>
+ </binding>
+
+ <service name="SimpleTypeInnerUnboundedWSService">
+ <port name="sampleWS" binding="tns:SimpleTypeInnerUnboundedWSBinding">
+ <soap:address location="http://localhost:9080/SimpleTypeInnerUnbounded/services/sampleWS"/>
+ </port>
+ </service>
+</definitions>
diff --git a/test/resources/wsdl/SimpleTypeInnerUnboundedInOutput.wsdl b/test/resources/wsdl/SimpleTypeInnerUnboundedInOutput.wsdl
new file mode 100644
index 0000000..3aceb9f
--- /dev/null
+++ b/test/resources/wsdl/SimpleTypeInnerUnboundedInOutput.wsdl
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- (c) Copyright IBM Corp. 2004, 2005 All Rights Reserved -->
+<!-- -->
+<!-- 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. -->
+
+<definitions targetNamespace="http://simpletypeinnerunboundedinoutput.test.apache.org" xmlns:wsi="http://ws-i.org/schemas/conformanceClaim/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://simpletypeinnerunboundedinoutput.test.apache.org" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/">
+ <types>
+ <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://simpletypeinnerunboundedinoutput.test.apache.org" xmlns:tns="http://simpletypeinnerunboundedinoutput.test.apache.org">
+
+ <xsd:element name="getInput">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="type" maxOccurs="1" minOccurs="0" type="xsd:int" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="getInputResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="type" maxOccurs="1" minOccurs="0" type="tns:Type1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:complexType name="Type1">
+ <xsd:sequence>
+ <!--xsd:element name="enum_int" maxOccurs="1" minOccurs="0" type="tns:TypeInt" />
+ <xsd:element name="enum_string" maxOccurs="1" minOccurs="0" type="tns:TypeString" /-->
+ <xsd:element maxOccurs="100" minOccurs="1" name="ident">
+ <xsd:simpleType>
+ <xsd:restriction base="xsd:string"/>
+ </xsd:simpleType>
+ </xsd:element>
+ </xsd:sequence>
+ <!--xsd:attribute name="att_enum_int" type="tns:TypeInt"/>
+ <xsd:attribute name="att_enum_string" type="tns:TypeString"/>
+ <xsd:attribute name="att_enum_kind">
+ <xsd:simpleType>
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="CHEQUE" />
+ <xsd:enumeration value="CREDIT_CARD" />
+ <xsd:enumeration value="TRANSFER" />
+ <xsd:enumeration value="WITHDRAWAL" />
+ <xsd:enumeration value="AUTOMATIC" />
+ </xsd:restriction>
+ </xsd:simpleType>
+ </xsd:attribute-->
+ </xsd:complexType>
+
+ <xsd:simpleType name="TypeInt">
+ <xsd:restriction base="xsd:int">
+ <xsd:enumeration value="0" />
+ <xsd:enumeration value="1" />
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="TypeString">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="one" />
+ <xsd:enumeration value="two" />
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ </xsd:schema>
+ </types>
+
+
+ <message name="input">
+ <part name="parameters" element="tns:getInput" />
+ </message>
+
+ <message name="output">
+ <part name="parameters" element="tns:getInputResponse" />
+ </message>
+
+ <portType name="SimpleTypeInnerUnboundedInOutputWS">
+ <operation name="getInput">
+ <input message="tns:input" />
+ <output message="tns:output" />
+ </operation>
+ </portType>
+
+ <binding name="SimpleTypeInnerUnboundedInOutputWSBinding" type="tns:SimpleTypeInnerUnboundedInOutputWS">
+ <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
+ <operation name="getInput">
+ <soap:operation />
+ <input>
+ <soap:body use="literal" />
+ </input>
+ <output>
+ <soap:body use="literal" />
+ </output>
+ </operation>
+ </binding>
+
+ <service name="SimpleTypeInnerUnboundedInOutputWSService">
+ <port name="sampleWS" binding="tns:SimpleTypeInnerUnboundedInOutputWSBinding">
+ <soap:address location="http://localhost:9080/SimpleTypeInnerUnboundedInOutput/services/sampleWS" />
+ </port>
+ </service>
+</definitions>
diff --git a/test/resources/wsdl/StockQuotes.wsdl b/test/resources/wsdl/StockQuotes.wsdl
new file mode 100644
index 0000000..a5be851
--- /dev/null
+++ b/test/resources/wsdl/StockQuotes.wsdl
@@ -0,0 +1,48 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<definitions name='net.xmethods.services.stockquote.StockQuote'
+ targetNamespace='http://www.themindelectric.com/wsdl/net.xmethods.services.stockquote.StockQuote/'
+ xmlns:tns='http://www.themindelectric.com/wsdl/net.xmethods.services.stockquote.StockQuote/'
+ xmlns:electric='http://www.themindelectric.com/'
+ xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/'
+ xmlns:xsd='http://www.w3.org/2001/XMLSchema'
+ xmlns:soapenc='http://schemas.xmlsoap.org/soap/encoding/'
+ xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/'
+ xmlns='http://schemas.xmlsoap.org/wsdl/'>
+
+<message name='getQuoteResponse1'>
+ <part name='Result' type='xsd:float'/>
+</message>
+<message name='getQuoteRequest1'>
+ <part name='symbol' type='xsd:string'/>
+</message>
+
+<portType name='net.xmethods.services.stockquote.StockQuotePortType'>
+ <operation name='getQuote' parameterOrder='symbol'>
+ <input message='tns:getQuoteRequest1'/>
+ <output message='tns:getQuoteResponse1'/>
+ </operation>
+</portType>
+
+<binding name='net.xmethods.services.stockquote.StockQuoteBinding'
+ type='tns:net.xmethods.services.stockquote.StockQuotePortType'>
+ <soap:binding style='rpc' transport='http://schemas.xmlsoap.org/soap/http'/>
+ <operation name='getQuote'>
+ <soap:operation soapAction='urn:xmethods-delayed-quotes#getQuote'/>
+ <input>
+ <soap:body use='encoded' namespace='urn:xmethods-delayed-quotes'
+ encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
+ </input>
+ <output><soap:body use='encoded' namespace='urn:xmethods-delayed-quotes'
+ encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
+ </output>
+ </operation>
+</binding>
+
+<service name='net.xmethods.services.stockquote.StockQuoteService'>
+ <documentation>net.xmethods.services.stockquote.StockQuote web service</documentation>
+ <port name='net.xmethods.services.stockquote.StockQuotePort'
+ binding='tns:net.xmethods.services.stockquote.StockQuoteBinding'>
+ <soap:address location='http://64.124.140.30:9090/soap'/>
+ </port></service>
+
+</definitions>
diff --git a/test/resources/wsdl/TestTransportTimeout.wsdl b/test/resources/wsdl/TestTransportTimeout.wsdl
new file mode 100644
index 0000000..9a469d6
--- /dev/null
+++ b/test/resources/wsdl/TestTransportTimeout.wsdl
@@ -0,0 +1,255 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- (c) Copyright IBM Corp. 2004, 2005 All Rights Reserved -->
+<!-- -->
+<!-- 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 targetNamespace="http://localhost/axis/Calculator" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://localhost/axis/Calculator" xmlns:intf="http://localhost/axis/Calculator" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <wsdl:types>
+ <schema elementFormDefault="qualified" targetNamespace="http://localhost/axis/Calculator" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://localhost/axis/Calculator" xmlns:intf="http://localhost/axis/Calculator" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+ <element name="add">
+ <complexType>
+ <sequence>
+ <element name="arg_0_0" type="xsd:int"/>
+ <element name="arg_1_0" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="addResponse">
+ <complexType>
+ <sequence>
+ <element name="addReturn" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="sub">
+ <complexType>
+ <sequence>
+ <element name="arg_0_1" type="xsd:int"/>
+ <element name="arg_1_1" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="subResponse">
+ <complexType>
+ <sequence>
+ <element name="subReturn" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="mul">
+ <complexType>
+ <sequence>
+ <element name="arg_0_2" type="xsd:int"/>
+ <element name="arg_1_2" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="mulResponse">
+ <complexType>
+ <sequence>
+ <element name="mulReturn" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="div">
+ <complexType>
+ <sequence>
+ <element name="arg_0_3" type="xsd:int"/>
+ <element name="arg_1_3" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="divResponse">
+ <complexType>
+ <sequence>
+ <element name="divReturn" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ </element>
+ </schema>
+ </wsdl:types>
+
+ <wsdl:message name="subResponse">
+
+ <wsdl:part element="impl:subResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="mulResponse">
+
+ <wsdl:part element="impl:mulResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="subRequest">
+
+ <wsdl:part element="impl:sub" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="divRequest">
+
+ <wsdl:part element="impl:div" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="divResponse">
+
+ <wsdl:part element="impl:divResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="mulRequest">
+
+ <wsdl:part element="impl:mul" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="addResponse">
+
+ <wsdl:part element="impl:addResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="addRequest">
+
+ <wsdl:part element="impl:add" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:portType name="Timeout">
+
+ <wsdl:operation name="add">
+
+ <wsdl:input message="impl:addRequest" name="addRequest"/>
+
+ <wsdl:output message="impl:addResponse" name="addResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="sub">
+
+ <wsdl:input message="impl:subRequest" name="subRequest"/>
+
+ <wsdl:output message="impl:subResponse" name="subResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="mul">
+
+ <wsdl:input message="impl:mulRequest" name="mulRequest"/>
+
+ <wsdl:output message="impl:mulResponse" name="mulResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="div">
+
+ <wsdl:input message="impl:divRequest" name="divRequest"/>
+
+ <wsdl:output message="impl:divResponse" name="divResponse"/>
+
+ </wsdl:operation>
+
+ </wsdl:portType>
+
+ <wsdl:binding name="TestTransportTimeoutSoapBinding" type="impl:Timeout">
+
+ <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+
+ <wsdl:operation name="add">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="addRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="addResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="sub">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="subRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="subResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="mul">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="mulRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="mulResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="div">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="divRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="divResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ </wsdl:binding>
+
+ <wsdl:service name="TestTransportTimeout">
+
+ <wsdl:port binding="impl:TestTransportTimeoutSoapBinding" name="TestTransportTimeoutPort">
+
+ <wsdlsoap:address location="http://localhost/axis/TestTransportTimeout"/>
+
+ </wsdl:port>
+
+ </wsdl:service>
+
+</wsdl:definitions>
diff --git a/test/resources/wsdl/UDDI.wsdl b/test/resources/wsdl/UDDI.wsdl
new file mode 100644
index 0000000..1e0e527
--- /dev/null
+++ b/test/resources/wsdl/UDDI.wsdl
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- (c) Copyright IBM Corp. 2004, 2005 All Rights Reserved -->
+<!-- -->
+<!-- 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:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ name="UDDI"
+ targetNamespace="http://tempuri.org/UDDI/"
+ xmlns:tns="urn:uddi-org:inquiry_v2">
+
+ <wsdl:import namespace="urn:uddi-org:inquiry_v2" location="inquire_v2.wsdl" />
+
+ <wsdl:service name="UDDI">
+ <wsdl:port binding="tns:InquireSoap" name="UDDIinquire">
+ <soap:address location="http://tempuri.org" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/test/resources/wsdl/UnboundedChoice.wsdl b/test/resources/wsdl/UnboundedChoice.wsdl
new file mode 100644
index 0000000..69bee20
--- /dev/null
+++ b/test/resources/wsdl/UnboundedChoice.wsdl
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="utf-8"?>
+<definitions xmlns:s1="http://soapinterop.org/xsd" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s0="http://soapinterop.org/" xmlns:s3="http://soapinterop.org/echoheader/" xmlns:soap12enc="http://www.w3.org/2002/06/soap-envelope" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s2="http://soapinterop.org" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" targetNamespace="http://soapinterop.org/" xmlns="http://schemas.xmlsoap.org/wsdl/">
+ <types>
+ <s:schema elementFormDefault="qualified" targetNamespace="http://soapinterop.org/">
+ <s:import namespace="http://soapinterop.org/xsd" />
+
+
+
+
+ <s:element name="echoChoice">
+ <s:complexType>
+ <s:sequence>
+ <s:element minOccurs="0" maxOccurs="1" name="inputChoice" type="s1:ChoiceComplexType" />
+ </s:sequence>
+ </s:complexType>
+ </s:element>
+ <s:element name="echoChoiceResponse">
+ <s:complexType>
+ <s:sequence>
+ <s:element minOccurs="0" maxOccurs="1" name="return" type="s1:ChoiceComplexType" />
+ </s:sequence>
+ </s:complexType>
+ </s:element>
+
+
+
+ </s:schema>
+
+ <s:schema elementFormDefault="qualified" targetNamespace="http://soapinterop.org/xsd">
+ <s:import namespace="http://soapinterop.org/" />
+
+ <s:complexType name="ChoiceComplexType">
+ <s:sequence>
+ <s:choice minOccurs="1" maxOccurs="1">
+ <s:element minOccurs="0" maxOccurs="unbounded" name="IntValue" type="s:int" />
+ <s:element minOccurs="0" maxOccurs="1" name="StringValue" type="s:string" />
+ </s:choice>
+ </s:sequence>
+ </s:complexType>
+ </s:schema>
+
+ </types>
+
+
+
+ <message name="echoChoiceSoapIn">
+ <part name="parameters" element="s0:echoChoice" />
+ </message>
+ <message name="echoChoiceSoapOut">
+ <part name="parameters" element="s0:echoChoiceResponse" />
+ </message>
+
+ <portType name="ChoiceTestSoap">
+
+
+ <operation name="echoChoice">
+ <input message="s0:echoChoiceSoapIn" />
+ <output message="s0:echoChoiceSoapOut" />
+ </operation>
+
+ </portType>
+
+
+ <binding name="ChoiceTestSoap" type="s0:ChoiceTestSoap">
+ <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
+
+ <operation name="echoChoice">
+ <soap:operation soapAction="SimpleChoiceTest#echoChoice" style="document" />
+ <input>
+ <soap:body use="literal" />
+ </input>
+ <output>
+ <soap:body use="literal" />
+ </output>
+ </operation>
+
+ </binding>
+
+<binding name="ChoiceTestSoap12" type="s0:ChoiceTestSoap">
+ <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
+
+
+ <operation name="echoChoice">
+ <soap12:operation soapAction="Choice#echoChoice" style="document" />
+ <input>
+ <soap12:body use="literal" />
+ </input>
+ <output>
+ <soap12:body use="literal" />
+ </output>
+ </operation>
+
+ </binding>
+
+<service name="ChoiceTest">
+ <documentation>These operations implement DOC/LIT SOAP operations, for interop testing. Please email johnko@microsoft.com with any questions/coments.</documentation>
+ <port name="ChoiceTestSoap" binding="s0:ChoiceTestSoap">
+ <soap:address location="http://localhost:90/axis/Choice" />
+ </port>
+ <port name="ChoiceTestSoap12" binding="s0:ChoiceTestSoap12">
+ <soap12:address location="http://localhost:90/axis/Choice" />
+ </port>
+ </service>
+</definitions> \ No newline at end of file
diff --git a/test/resources/wsdl/UnboundedStringChoice.wsdl b/test/resources/wsdl/UnboundedStringChoice.wsdl
new file mode 100644
index 0000000..7a88296
--- /dev/null
+++ b/test/resources/wsdl/UnboundedStringChoice.wsdl
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>
+<definitions xmlns:s1="http://soapinterop.org/xsd" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s0="http://soapinterop.org/" xmlns:s3="http://soapinterop.org/echoheader/" xmlns:soap12enc="http://www.w3.org/2002/06/soap-envelope" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s2="http://soapinterop.org" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" targetNamespace="http://soapinterop.org/" xmlns="http://schemas.xmlsoap.org/wsdl/">
+ <types>
+ <s:schema elementFormDefault="qualified" targetNamespace="http://soapinterop.org/">
+ <s:import namespace="http://soapinterop.org/xsd" />
+
+
+
+ <s:element name="echoChoice">
+ <s:complexType>
+ <s:sequence>
+ <s:element minOccurs="0" maxOccurs="1" name="inputChoice" type="s1:ChoiceComplexType" />
+ </s:sequence>
+ </s:complexType>
+ </s:element>
+ <s:element name="echoChoiceResponse">
+ <s:complexType>
+ <s:sequence>
+ <s:element minOccurs="0" maxOccurs="1" name="return" type="s1:ChoiceComplexType" />
+ </s:sequence>
+ </s:complexType>
+ </s:element>
+
+
+
+ </s:schema>
+
+ <s:schema elementFormDefault="qualified" targetNamespace="http://soapinterop.org/xsd">
+ <s:import namespace="http://soapinterop.org/" />
+
+ <s:complexType name="ChoiceComplexType">
+ <s:sequence>
+ <s:choice minOccurs="1" maxOccurs="1">
+ <s:element minOccurs="0" maxOccurs="1" name="IntValue" type="s:int" />
+ <s:element minOccurs="0" maxOccurs="5" name="StringValue" type="s:string" />
+ </s:choice>
+ </s:sequence>
+ </s:complexType>
+ </s:schema>
+
+ </types>
+
+
+
+ <message name="echoChoiceSoapIn">
+ <part name="parameters" element="s0:echoChoice" />
+ </message>
+ <message name="echoChoiceSoapOut">
+ <part name="parameters" element="s0:echoChoiceResponse" />
+ </message>
+
+ <portType name="ChoiceTestSoap">
+
+
+ <operation name="echoChoice">
+ <input message="s0:echoChoiceSoapIn" />
+ <output message="s0:echoChoiceSoapOut" />
+ </operation>
+
+ </portType>
+
+
+ <binding name="ChoiceTestSoap" type="s0:ChoiceTestSoap">
+ <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
+
+ <operation name="echoChoice">
+ <soap:operation soapAction="SimpleChoiceTest#echoChoice" style="document" />
+ <input>
+ <soap:body use="literal" />
+ </input>
+ <output>
+ <soap:body use="literal" />
+ </output>
+ </operation>
+
+ </binding>
+
+<binding name="ChoiceTestSoap12" type="s0:ChoiceTestSoap">
+ <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
+
+
+ <operation name="echoChoice">
+ <soap12:operation soapAction="Choice#echoChoice" style="document" />
+ <input>
+ <soap12:body use="literal" />
+ </input>
+ <output>
+ <soap12:body use="literal" />
+ </output>
+ </operation>
+
+ </binding>
+
+<service name="ChoiceTest">
+ <documentation>These operations implement DOC/LIT SOAP operations, for interop testing. Please email johnko@microsoft.com with any questions/coments.</documentation>
+ <port name="ChoiceTestSoap" binding="s0:ChoiceTestSoap">
+ <soap:address location="http://localhost:90/axis/Choice" />
+ </port>
+ <port name="ChoiceTestSoap12" binding="s0:ChoiceTestSoap12">
+ <soap12:address location="http://localhost:90/axis/Choice" />
+ </port>
+ </service>
+</definitions> \ No newline at end of file
diff --git a/test/resources/wsdl/XSDAttribute.wsdl b/test/resources/wsdl/XSDAttribute.wsdl
new file mode 100644
index 0000000..2c3f44f
--- /dev/null
+++ b/test/resources/wsdl/XSDAttribute.wsdl
@@ -0,0 +1,1046 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- (c) Copyright IBM Corp. 2004, 2005 All Rights Reserved -->
+<!-- -->
+<!-- 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 targetNamespace="http://xsdattribute.test.apache.org" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://xsdattribute.test.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">
+
+ <wsdl:types>
+ <schema elementFormDefault="qualified" targetNamespace="http://xsdattribute.test.apache.org" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://xsdattribute.test.apache.org" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+
+ <!-- ############################################ -->
+ <!-- Define the operation elements and data types -->
+ <!-- ############################################ -->
+
+ <!-- test boolean as attribute -->
+ <xsd:element name="getDataBoolean">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="TypeBoolean" maxOccurs="1" minOccurs="0" type="impl:BooleanType" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getDataBooleanResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="TypeBoolean" maxOccurs="1" minOccurs="0" type="impl:BooleanType" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="BooleanType">
+ <xsd:attribute name="booleanType" type="xsd:boolean"/>
+ </xsd:complexType>
+
+ <!-- test byte as attribute -->
+ <xsd:element name="getDataByte">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="TypeByte" maxOccurs="1" minOccurs="0" type="impl:ByteType" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getDataByteResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="TypeByte" maxOccurs="1" minOccurs="0" type="impl:ByteType" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="ByteType">
+ <xsd:attribute name="byteType" type="xsd:byte"/>
+ </xsd:complexType>
+
+ <!-- test unsigned_byte as attribute -->
+ <xsd:element name="getDataUnsignedByte">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="TypeUnsignedByte" maxOccurs="1" minOccurs="0" type="impl:UnsignedByteType" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getDataUnsignedByteResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="TypeUnsignedByte" maxOccurs="1" minOccurs="0" type="impl:UnsignedByteType" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="UnsignedByteType">
+ <xsd:attribute name="unsignedByteType" type="xsd:unsignedByte"/>
+ </xsd:complexType>
+
+ <!-- test short as attribute -->
+ <xsd:element name="getDataShort">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="TypeShort" maxOccurs="1" minOccurs="0" type="impl:ShortType" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getDataShortResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="TypeShort" maxOccurs="1" minOccurs="0" type="impl:ShortType" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="ShortType">
+ <xsd:attribute name="shortType" type="xsd:short"/>
+ </xsd:complexType>
+
+ <!-- test unsigned_short as attribute -->
+ <xsd:element name="getDataUnsignedShort">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="TypeUnsignedShort" maxOccurs="1" minOccurs="0" type="impl:UnsignedShortType" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getDataUnsignedShortResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="TypeUnsignedShort" maxOccurs="1" minOccurs="0" type="impl:UnsignedShortType" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="UnsignedShortType">
+ <xsd:attribute name="unsignedShortType" type="xsd:unsignedShort"/>
+ </xsd:complexType>
+
+ <!-- test int as attribute -->
+ <xsd:element name="getDataInt">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="TypeInt" maxOccurs="1" minOccurs="0" type="impl:IntType" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getDataIntResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="TypeInt" maxOccurs="1" minOccurs="0" type="impl:IntType" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="IntType">
+ <xsd:attribute name="intType" type="xsd:int"/>
+ </xsd:complexType>
+
+ <!-- test unsigned_int as attribute -->
+ <xsd:element name="getDataUnsignedInt">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="TypeUnsignedInt" maxOccurs="1" minOccurs="0" type="impl:UnsignedIntType" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getDataUnsignedIntResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="TypeUnsignedInt" maxOccurs="1" minOccurs="0" type="impl:UnsignedIntType" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="UnsignedIntType">
+ <xsd:attribute name="unsignedIntType" type="xsd:unsignedInt"/>
+ </xsd:complexType>
+
+ <!-- test long as attribute -->
+ <xsd:element name="getDataLong">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="TypeLong" maxOccurs="1" minOccurs="0" type="impl:LongType" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getDataLongResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="TypeLong" maxOccurs="1" minOccurs="0" type="impl:LongType" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="LongType">
+ <xsd:attribute name="longType" type="xsd:long"/>
+ </xsd:complexType>
+
+ <!-- test unsigned_long as attribute -->
+ <xsd:element name="getDataUnsignedLong">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="TypeUnsignedLong" maxOccurs="1" minOccurs="0" type="impl:UnsignedLongType" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getDataUnsignedLongResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="TypeUnsignedLong" maxOccurs="1" minOccurs="0" type="impl:UnsignedLongType" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="UnsignedLongType">
+ <xsd:attribute name="unsignedLongType" type="xsd:unsignedLong"/>
+ </xsd:complexType>
+
+ <!-- test float as attribute -->
+ <xsd:element name="getDataFloat">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="TypeFloat" maxOccurs="1" minOccurs="0" type="impl:FloatType" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getDataFloatResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="TypeFloat" maxOccurs="1" minOccurs="0" type="impl:FloatType" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="FloatType">
+ <xsd:attribute name="floatType" type="xsd:float"/>
+ </xsd:complexType>
+
+ <!-- test double as attribute -->
+ <xsd:element name="getDataDouble">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="TypeDouble" maxOccurs="1" minOccurs="0" type="impl:DoubleType" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getDataDoubleResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="TypeDouble" maxOccurs="1" minOccurs="0" type="impl:DoubleType" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="DoubleType">
+ <xsd:attribute name="doubleType" type="xsd:double"/>
+ </xsd:complexType>
+
+ <!-- test string as attribute -->
+ <xsd:element name="getDataString">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="TypeString" maxOccurs="1" minOccurs="0" type="impl:StringType" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getDataStringResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="TypeString" maxOccurs="1" minOccurs="0" type="impl:StringType" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="StringType">
+ <xsd:attribute name="stringType" type="xsd:string"/>
+ </xsd:complexType>
+
+ <!-- test date as attribute -->
+ <xsd:element name="getDataDate">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="TypeDate" maxOccurs="1" minOccurs="0" type="impl:DateType" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getDataDateResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="TypeDate" maxOccurs="1" minOccurs="0" type="impl:DateType" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="DateType">
+ <xsd:attribute name="dateType" type="xsd:date"/>
+ </xsd:complexType>
+
+ <!-- test dateTime as attribute -->
+ <xsd:element name="getDataDateTime">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="TypeDateTime" maxOccurs="1" minOccurs="0" type="impl:DateTimeType" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getDataDateTimeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="TypeDateTime" maxOccurs="1" minOccurs="0" type="impl:DateTimeType" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="DateTimeType">
+ <xsd:attribute name="dateTimeType" type="xsd:dateTime"/>
+ </xsd:complexType>
+
+ <!-- test time as attribute -->
+ <xsd:element name="getDataTime">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="TypeTime" maxOccurs="1" minOccurs="0" type="impl:TimeType" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getDataTimeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="TypeTime" maxOccurs="1" minOccurs="0" type="impl:TimeType" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="TimeType">
+ <xsd:attribute name="timeType" type="xsd:time"/>
+ </xsd:complexType>
+
+
+ <!-- test duration as attribute -->
+<!--
+ <xsd:element name="getDataDuration">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="TypeDuration" maxOccurs="1" minOccurs="0" type="impl:DurationType" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getDataDurationResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="TypeDuration" maxOccurs="1" minOccurs="0" type="impl:DurationType" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="DurationType">
+ <xsd:attribute name="durationType" type="xsd:duration"/>
+ </xsd:complexType>
+-->
+
+ <!-- test base64Binary as attribute -->
+ <xsd:element name="getDataBase64Binary">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="TypeBase64Binary" maxOccurs="1" minOccurs="0" type="impl:Base64BinaryType" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getDataBase64BinaryResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="TypeBase64Binary" maxOccurs="1" minOccurs="0" type="impl:Base64BinaryType" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="Base64BinaryType">
+ <xsd:attribute name="base64BinaryType" type="xsd:base64Binary"/>
+ </xsd:complexType>
+
+ <!-- test hexBinary as attribute -->
+ <xsd:element name="getDataHexBinary">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="TypeHexBinary" maxOccurs="1" minOccurs="0" type="impl:HexBinaryType" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getDataHexBinaryResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="TypeHexBinary" maxOccurs="1" minOccurs="0" type="impl:HexBinaryType" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="HexBinaryType">
+ <xsd:attribute name="hexBinaryType" type="xsd:hexBinary"/>
+ </xsd:complexType>
+
+ <!-- test integer as attribute -->
+ <xsd:element name="getDataInteger">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="TypeInteger" maxOccurs="1" minOccurs="0" type="impl:IntegerType" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getDataIntegerResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="TypeInteger" maxOccurs="1" minOccurs="0" type="impl:IntegerType" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="IntegerType">
+ <xsd:attribute name="integerType" type="xsd:integer"/>
+ </xsd:complexType>
+
+ <!-- test decimal as attribute -->
+ <xsd:element name="getDataDecimal">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="TypeDecimal" maxOccurs="1" minOccurs="0" type="impl:DecimalType" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getDataDecimalResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="TypeDecimal" maxOccurs="1" minOccurs="0" type="impl:DecimalType" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="DecimalType">
+ <xsd:attribute name="decimalType" type="xsd:decimal"/>
+ </xsd:complexType>
+
+ <!-- test QName as attribute -->
+ <xsd:element name="getDataQName">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="TypeQName" maxOccurs="1" minOccurs="0" type="impl:QNameType" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getDataQNameResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="TypeQName" maxOccurs="1" minOccurs="0" type="impl:QNameType" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="QNameType">
+ <xsd:attribute name="qnameType" type="xsd:QName"/>
+ </xsd:complexType>
+
+ <!-- test anyURI as attribute -->
+ <xsd:element name="getDataAnyURI">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="TypeAnyURI" maxOccurs="1" minOccurs="0" type="impl:AnyURIType" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getDataAnyURIResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="TypeAnyURI" maxOccurs="1" minOccurs="0" type="impl:AnyURIType" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="AnyURIType">
+ <xsd:attribute name="anyURIType" type="xsd:anyURI"/>
+ </xsd:complexType>
+
+ </schema>
+
+ </wsdl:types>
+
+
+ <!-- ############################################ -->
+ <!-- Define the message elements and data types -->
+ <!-- ############################################ -->
+
+ <!-- test boolean as attribute -->
+ <wsdl:message name="getDataBooleanRequest">
+ <wsdl:part element="impl:getDataBoolean" name="gdboolean"/>
+ </wsdl:message>
+ <wsdl:message name="getDataBooleanResponse">
+ <wsdl:part element="impl:getDataBooleanResponse" name="gdbooleanr"/>
+ </wsdl:message>
+
+ <!-- test byte as attribute -->
+ <wsdl:message name="getDataByteRequest">
+ <wsdl:part element="impl:getDataByte" name="gdbyte"/>
+ </wsdl:message>
+ <wsdl:message name="getDataByteResponse">
+ <wsdl:part element="impl:getDataByteResponse" name="gdbyter"/>
+ </wsdl:message>
+
+ <!-- test unsigned_byte as attribute -->
+ <wsdl:message name="getDataUnsignedByteRequest">
+ <wsdl:part element="impl:getDataUnsignedByte" name="gdubyte"/>
+ </wsdl:message>
+ <wsdl:message name="getDataUnsignedByteResponse">
+ <wsdl:part element="impl:getDataUnsignedByteResponse" name="gdubyter"/>
+ </wsdl:message>
+
+ <!-- test short as attribute -->
+ <wsdl:message name="getDataShortRequest">
+ <wsdl:part element="impl:getDataShort" name="gdshort"/>
+ </wsdl:message>
+ <wsdl:message name="getDataShortResponse">
+ <wsdl:part element="impl:getDataShortResponse" name="gdshortr"/>
+ </wsdl:message>
+
+ <!-- test unsigned_short as attribute -->
+ <wsdl:message name="getDataUnsignedShortRequest">
+ <wsdl:part element="impl:getDataUnsignedShort" name="gdushort"/>
+ </wsdl:message>
+ <wsdl:message name="getDataUnsignedShortResponse">
+ <wsdl:part element="impl:getDataUnsignedShortResponse" name="gdushortr"/>
+ </wsdl:message>
+
+ <!-- test int as attribute -->
+ <wsdl:message name="getDataIntRequest">
+ <wsdl:part element="impl:getDataInt" name="gdint"/>
+ </wsdl:message>
+ <wsdl:message name="getDataIntResponse">
+ <wsdl:part element="impl:getDataIntResponse" name="gdintr"/>
+ </wsdl:message>
+
+ <!-- test unsigned_int as attribute -->
+ <wsdl:message name="getDataUnsignedIntRequest">
+ <wsdl:part element="impl:getDataUnsignedInt" name="gduint"/>
+ </wsdl:message>
+ <wsdl:message name="getDataUnsignedIntResponse">
+ <wsdl:part element="impl:getDataUnsignedIntResponse" name="gduintr"/>
+ </wsdl:message>
+
+ <!-- test long as attribute -->
+ <wsdl:message name="getDataLongRequest">
+ <wsdl:part element="impl:getDataLong" name="gdlong"/>
+ </wsdl:message>
+ <wsdl:message name="getDataLongResponse">
+ <wsdl:part element="impl:getDataLongResponse" name="gdlongr"/>
+ </wsdl:message>
+
+ <!-- test unsigned_long as attribute -->
+ <wsdl:message name="getDataUnsignedLongRequest">
+ <wsdl:part element="impl:getDataUnsignedLong" name="gdulong"/>
+ </wsdl:message>
+ <wsdl:message name="getDataUnsignedLongResponse">
+ <wsdl:part element="impl:getDataUnsignedLongResponse" name="gdulongr"/>
+ </wsdl:message>
+
+ <!-- test float as attribute -->
+ <wsdl:message name="getDataFloatRequest">
+ <wsdl:part element="impl:getDataFloat" name="gdfloat"/>
+ </wsdl:message>
+ <wsdl:message name="getDataFloatResponse">
+ <wsdl:part element="impl:getDataFloatResponse" name="gdfloatr"/>
+ </wsdl:message>
+
+ <!-- test double as attribute -->
+ <wsdl:message name="getDataDoubleRequest">
+ <wsdl:part element="impl:getDataDouble" name="gddouble"/>
+ </wsdl:message>
+ <wsdl:message name="getDataDoubleResponse">
+ <wsdl:part element="impl:getDataDoubleResponse" name="gddoubler"/>
+ </wsdl:message>
+
+ <!-- test string as attribute -->
+ <wsdl:message name="getDataStringRequest">
+ <wsdl:part element="impl:getDataString" name="gdstring"/>
+ </wsdl:message>
+ <wsdl:message name="getDataStringResponse">
+ <wsdl:part element="impl:getDataStringResponse" name="gdstringr"/>
+ </wsdl:message>
+
+ <!-- test date as attribute -->
+ <wsdl:message name="getDataDateRequest">
+ <wsdl:part element="impl:getDataDate" name="gddate"/>
+ </wsdl:message>
+ <wsdl:message name="getDataDateResponse">
+ <wsdl:part element="impl:getDataDateResponse" name="gddater"/>
+ </wsdl:message>
+
+ <!-- test dateTime as attribute -->
+ <wsdl:message name="getDataDateTimeRequest">
+ <wsdl:part element="impl:getDataDateTime" name="gddatetime"/>
+ </wsdl:message>
+ <wsdl:message name="getDataDateTimeResponse">
+ <wsdl:part element="impl:getDataDateTimeResponse" name="gddatetimer"/>
+ </wsdl:message>
+
+ <!-- test time as attribute -->
+ <wsdl:message name="getDataTimeRequest">
+ <wsdl:part element="impl:getDataTime" name="gdtime"/>
+ </wsdl:message>
+ <wsdl:message name="getDataTimeResponse">
+ <wsdl:part element="impl:getDataTimeResponse" name="gdtimer"/>
+ </wsdl:message>
+
+ <!-- test duration as attribute -->
+<!--
+ <wsdl:message name="getDataDurationRequest">
+ <wsdl:part element="impl:getDataDuration" name="gdduration"/>
+ </wsdl:message>
+ <wsdl:message name="getDataDurationResponse">
+ <wsdl:part element="impl:getDataDurationResponse" name="gddurationr"/>
+ </wsdl:message>
+-->
+
+ <!-- test base64Binary as attribute -->
+ <wsdl:message name="getDataBase64BinaryRequest">
+ <wsdl:part element="impl:getDataBase64Binary" name="gdbase64binary"/>
+ </wsdl:message>
+ <wsdl:message name="getDataBase64BinaryResponse">
+ <wsdl:part element="impl:getDataBase64BinaryResponse" name="gdbase64binaryr"/>
+ </wsdl:message>
+
+ <!-- test hexBinary as attribute -->
+ <wsdl:message name="getDataHexBinaryRequest">
+ <wsdl:part element="impl:getDataHexBinary" name="gdhexbinary"/>
+ </wsdl:message>
+ <wsdl:message name="getDataHexBinaryResponse">
+ <wsdl:part element="impl:getDataHexBinaryResponse" name="gdbhexbinaryr"/>
+ </wsdl:message>
+
+ <!-- test integer as attribute -->
+ <wsdl:message name="getDataIntegerRequest">
+ <wsdl:part element="impl:getDataInteger" name="gdinteger"/>
+ </wsdl:message>
+ <wsdl:message name="getDataIntegerResponse">
+ <wsdl:part element="impl:getDataIntegerResponse" name="gdintegerr"/>
+ </wsdl:message>
+
+ <!-- test decimal as attribute -->
+ <wsdl:message name="getDataDecimalRequest">
+ <wsdl:part element="impl:getDataDecimal" name="gddecimal"/>
+ </wsdl:message>
+ <wsdl:message name="getDataDecimalResponse">
+ <wsdl:part element="impl:getDataDecimalResponse" name="gddecimalr"/>
+ </wsdl:message>
+
+ <!-- test QName as attribute -->
+ <wsdl:message name="getDataQNameRequest">
+ <wsdl:part element="impl:getDataQName" name="gdqname"/>
+ </wsdl:message>
+ <wsdl:message name="getDataQNameResponse">
+ <wsdl:part element="impl:getDataQNameResponse" name="gdqnamer"/>
+ </wsdl:message>
+
+ <!-- test anyURI as attribute -->
+ <wsdl:message name="getDataAnyURIRequest">
+ <wsdl:part element="impl:getDataAnyURI" name="gdanyuri"/>
+ </wsdl:message>
+ <wsdl:message name="getDataAnyURIResponse">
+ <wsdl:part element="impl:getDataAnyURIResponse" name="gdanyurir"/>
+ </wsdl:message>
+
+
+ <!-- ############################################ -->
+ <!-- Define the operations and messages -->
+ <!-- ############################################ -->
+
+ <wsdl:portType name="XSDAttribute">
+
+ <!-- test boolean as attribute -->
+ <wsdl:operation name="getDataBoolean">
+ <wsdl:input message="impl:getDataBooleanRequest" name="getDataBooleanRequest"/>
+ <wsdl:output message="impl:getDataBooleanResponse" name="getDataBooleanResponse"/>
+ </wsdl:operation>
+
+ <!-- test byte as attribute -->
+ <wsdl:operation name="getDataByte">
+ <wsdl:input message="impl:getDataByteRequest" name="getDataByteRequest"/>
+ <wsdl:output message="impl:getDataByteResponse" name="getDataByteResponse"/>
+ </wsdl:operation>
+
+ <!-- test unsigned_byte as attribute -->
+ <wsdl:operation name="getDataUnsignedByte">
+ <wsdl:input message="impl:getDataUnsignedByteRequest" name="getDataUnsignedByteRequest"/>
+ <wsdl:output message="impl:getDataUnsignedByteResponse" name="getDataUnsignedByteResponse"/>
+ </wsdl:operation>
+
+ <!-- test short as attribute -->
+ <wsdl:operation name="getDataShort">
+ <wsdl:input message="impl:getDataShortRequest" name="getDataShortRequest"/>
+ <wsdl:output message="impl:getDataShortResponse" name="getDataShortResponse"/>
+ </wsdl:operation>
+
+ <!-- test unsigned_short as attribute -->
+ <wsdl:operation name="getDataUnsignedShort">
+ <wsdl:input message="impl:getDataUnsignedShortRequest" name="getDataUnsignedShortRequest"/>
+ <wsdl:output message="impl:getDataUnsignedShortResponse" name="getDataUnsignedShortResponse"/>
+ </wsdl:operation>
+
+ <!-- test int as attribute -->
+ <wsdl:operation name="getDataInt">
+ <wsdl:input message="impl:getDataIntRequest" name="getDataIntRequest"/>
+ <wsdl:output message="impl:getDataIntResponse" name="getDataIntResponse"/>
+ </wsdl:operation>
+
+ <!-- test unsigned_int as attribute -->
+ <wsdl:operation name="getDataUnsignedInt">
+ <wsdl:input message="impl:getDataUnsignedIntRequest" name="getDataUnsignedIntRequest"/>
+ <wsdl:output message="impl:getDataUnsignedIntResponse" name="getDataUnsignedIntResponse"/>
+ </wsdl:operation>
+
+ <!-- test long as attribute -->
+ <wsdl:operation name="getDataLong">
+ <wsdl:input message="impl:getDataLongRequest" name="getDataLongRequest"/>
+ <wsdl:output message="impl:getDataLongResponse" name="getDataLongResponse"/>
+ </wsdl:operation>
+
+ <!-- test unsigned_long as attribute -->
+ <wsdl:operation name="getDataUnsignedLong">
+ <wsdl:input message="impl:getDataUnsignedLongRequest" name="getDataUnsignedLongRequest"/>
+ <wsdl:output message="impl:getDataUnsignedLongResponse" name="getDataUnsignedLongResponse"/>
+ </wsdl:operation>
+
+ <!-- test float as attribute -->
+ <wsdl:operation name="getDataFloat">
+ <wsdl:input message="impl:getDataFloatRequest" name="getDataFloatRequest"/>
+ <wsdl:output message="impl:getDataFloatResponse" name="getDataFloatResponse"/>
+ </wsdl:operation>
+
+ <!-- test double as attribute -->
+ <wsdl:operation name="getDataDouble">
+ <wsdl:input message="impl:getDataDoubleRequest" name="getDataDoubleRequest"/>
+ <wsdl:output message="impl:getDataDoubleResponse" name="getDataDoubleResponse"/>
+ </wsdl:operation>
+
+ <!-- test string as attribute -->
+ <wsdl:operation name="getDataString">
+ <wsdl:input message="impl:getDataStringRequest" name="getDataStringRequest"/>
+ <wsdl:output message="impl:getDataStringResponse" name="getDataStringResponse"/>
+ </wsdl:operation>
+
+ <!-- test date as attribute -->
+ <wsdl:operation name="getDataDate">
+ <wsdl:input message="impl:getDataDateRequest" name="getDataDateRequest"/>
+ <wsdl:output message="impl:getDataDateResponse" name="getDataDateResponse"/>
+ </wsdl:operation>
+
+ <!-- test dateTime as attribute -->
+ <wsdl:operation name="getDataDateTime">
+ <wsdl:input message="impl:getDataDateTimeRequest" name="getDataDateTimeRequest"/>
+ <wsdl:output message="impl:getDataDateTimeResponse" name="getDataDateTimeResponse"/>
+ </wsdl:operation>
+
+ <!-- test time as attribute -->
+ <wsdl:operation name="getDataTime">
+ <wsdl:input message="impl:getDataTimeRequest" name="getDataTimeRequest"/>
+ <wsdl:output message="impl:getDataTimeResponse" name="getDataTimeResponse"/>
+ </wsdl:operation>
+
+ <!-- test duration as attribute -->
+<!--
+ <wsdl:operation name="getDataDuration">
+ <wsdl:input message="impl:getDataDurationRequest" name="getDataDurationRequest"/>
+ <wsdl:output message="impl:getDataDurationResponse" name="getDataDurationResponse"/>
+ </wsdl:operation>
+-->
+
+ <!-- test base64Binary as attribute -->
+ <wsdl:operation name="getDataBase64Binary">
+ <wsdl:input message="impl:getDataBase64BinaryRequest" name="getDataBase64BinaryRequest"/>
+ <wsdl:output message="impl:getDataBase64BinaryResponse" name="getDataBase64BinaryResponse"/>
+ </wsdl:operation>
+
+ <!-- test hexBinary as attribute -->
+ <wsdl:operation name="getDataHexBinary">
+ <wsdl:input message="impl:getDataHexBinaryRequest" name="getDataHexBinaryRequest"/>
+ <wsdl:output message="impl:getDataHexBinaryResponse" name="getDataHexBinaryResponse"/>
+ </wsdl:operation>
+
+ <!-- test integer as attribute -->
+ <wsdl:operation name="getDataInteger">
+ <wsdl:input message="impl:getDataIntegerRequest" name="getDataIntegerRequest"/>
+ <wsdl:output message="impl:getDataIntegerResponse" name="getDataIntegerResponse"/>
+ </wsdl:operation>
+
+ <!-- test decimal as attribute -->
+ <wsdl:operation name="getDataDecimal">
+ <wsdl:input message="impl:getDataDecimalRequest" name="getDataDecimalRequest"/>
+ <wsdl:output message="impl:getDataDecimalResponse" name="getDataDecimalResponse"/>
+ </wsdl:operation>
+
+ <!-- test QName as attribute -->
+ <wsdl:operation name="getDataQName">
+ <wsdl:input message="impl:getDataQNameRequest" name="getDataQNameRequest"/>
+ <wsdl:output message="impl:getDataQNameResponse" name="getDataQNameResponse"/>
+ </wsdl:operation>
+
+ <!-- test anyURI as attribute -->
+ <wsdl:operation name="getDataAnyURI">
+ <wsdl:input message="impl:getDataAnyURIRequest" name="getDataAnyURIRequest"/>
+ <wsdl:output message="impl:getDataAnyURIResponse" name="getDataAnyURIResponse"/>
+ </wsdl:operation>
+
+ </wsdl:portType>
+
+
+
+ <!-- ############################################ -->
+ <!-- Define the operation bindings -->
+ <!-- ############################################ -->
+
+ <wsdl:binding name="XSDAttributeSoapBinding" type="impl:XSDAttribute">
+
+ <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+
+ <!-- test boolean as attribute -->
+ <wsdl:operation name="getDataBoolean">
+ <wsdlsoap:operation soapAction=""/>
+ <wsdl:input name="getDataBooleanRequest">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="getDataBooleanResponse">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- test byte as attribute -->
+ <wsdl:operation name="getDataByte">
+ <wsdlsoap:operation soapAction=""/>
+ <wsdl:input name="getDataByteRequest">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="getDataByteResponse">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- test unsigned_byte as attribute -->
+ <wsdl:operation name="getDataUnsignedByte">
+ <wsdlsoap:operation soapAction=""/>
+ <wsdl:input name="getDataUnsignedByteRequest">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="getDataUnsignedByteResponse">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- test short as attribute -->
+ <wsdl:operation name="getDataShort">
+ <wsdlsoap:operation soapAction=""/>
+ <wsdl:input name="getDataShortRequest">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="getDataShortResponse">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- test unsigned_short as attribute -->
+ <wsdl:operation name="getDataUnsignedShort">
+ <wsdlsoap:operation soapAction=""/>
+ <wsdl:input name="getDataUnsignedShortRequest">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="getDataUnsignedShortResponse">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- test int as attribute -->
+ <wsdl:operation name="getDataInt">
+ <wsdlsoap:operation soapAction=""/>
+ <wsdl:input name="getDataIntRequest">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="getDataIntResponse">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- test unsigned_int as attribute -->
+ <wsdl:operation name="getDataUnsignedInt">
+ <wsdlsoap:operation soapAction=""/>
+ <wsdl:input name="getDataUnsignedIntRequest">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="getDataUnsignedIntResponse">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- test long as attribute -->
+ <wsdl:operation name="getDataLong">
+ <wsdlsoap:operation soapAction=""/>
+ <wsdl:input name="getDataLongRequest">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="getDataLongResponse">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- test unsigned_long as attribute -->
+ <wsdl:operation name="getDataUnsignedLong">
+ <wsdlsoap:operation soapAction=""/>
+ <wsdl:input name="getDataUnsignedLongRequest">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="getDataUnsignedLongResponse">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- test float as attribute -->
+ <wsdl:operation name="getDataFloat">
+ <wsdlsoap:operation soapAction=""/>
+ <wsdl:input name="getDataFloatRequest">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="getDataFloatResponse">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- test double as attribute -->
+ <wsdl:operation name="getDataDouble">
+ <wsdlsoap:operation soapAction=""/>
+ <wsdl:input name="getDataDoubleRequest">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="getDataDoubleResponse">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- test string as attribute -->
+ <wsdl:operation name="getDataString">
+ <wsdlsoap:operation soapAction=""/>
+ <wsdl:input name="getDataStringRequest">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="getDataStringResponse">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- test date as attribute -->
+ <wsdl:operation name="getDataDate">
+ <wsdlsoap:operation soapAction=""/>
+ <wsdl:input name="getDataDateRequest">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="getDataDateResponse">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- test dateTime as attribute -->
+ <wsdl:operation name="getDataDateTime">
+ <wsdlsoap:operation soapAction=""/>
+ <wsdl:input name="getDataDateTimeRequest">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="getDataDateTimeResponse">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- test time as attribute -->
+ <wsdl:operation name="getDataTime">
+ <wsdlsoap:operation soapAction=""/>
+ <wsdl:input name="getDataTimeRequest">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="getDataTimeResponse">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- test duration as attribute -->
+<!--
+ <wsdl:operation name="getDataDuration">
+ <wsdlsoap:operation soapAction=""/>
+ <wsdl:input name="getDataDurationRequest">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="getDataDurationResponse">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+-->
+
+ <!-- test base64Binary as attribute -->
+ <wsdl:operation name="getDataBase64Binary">
+ <wsdlsoap:operation soapAction=""/>
+ <wsdl:input name="getDataBase64BinaryRequest">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="getDataBase64BinaryResponse">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- test hexBinary as attribute -->
+ <wsdl:operation name="getDataHexBinary">
+ <wsdlsoap:operation soapAction=""/>
+ <wsdl:input name="getDataHexBinaryRequest">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="getDataHexBinaryResponse">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- test integer as attribute -->
+ <wsdl:operation name="getDataInteger">
+ <wsdlsoap:operation soapAction=""/>
+ <wsdl:input name="getDataIntegerRequest">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="getDataIntegerResponse">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- test decimal as attribute -->
+ <wsdl:operation name="getDataDecimal">
+ <wsdlsoap:operation soapAction=""/>
+ <wsdl:input name="getDataDecimalRequest">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="getDataDecimalResponse">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- test QName as attribute -->
+ <wsdl:operation name="getDataQName">
+ <wsdlsoap:operation soapAction=""/>
+ <wsdl:input name="getDataQNameRequest">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="getDataQNameResponse">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- test anyURI as attribute -->
+ <wsdl:operation name="getDataAnyURI">
+ <wsdlsoap:operation soapAction=""/>
+ <wsdl:input name="getDataAnyURIRequest">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="getDataAnyURIResponse">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ </wsdl:binding>
+
+
+
+ <!-- ############################################ -->
+ <!-- Define the Service -->
+ <!-- ############################################ -->
+
+ <wsdl:service name="XSDAttributeService">
+ <wsdl:port binding="impl:XSDAttributeSoapBinding" name="XSDAttributePort">
+ <wsdlsoap:address location="http://localhost:9080/XSDAttribute/services/XSDAttributePort"/>
+ </wsdl:port>
+ </wsdl:service>
+
+</wsdl:definitions>
+
diff --git a/test/resources/wsdl/XSDElement.wsdl b/test/resources/wsdl/XSDElement.wsdl
new file mode 100644
index 0000000..13309e6
--- /dev/null
+++ b/test/resources/wsdl/XSDElement.wsdl
@@ -0,0 +1,1422 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- (c) Copyright IBM Corp. 2004, 2005 All Rights Reserved -->
+<!-- -->
+<!-- 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 targetNamespace="http://xsdelement.test.apache.org" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://xsdelement.test.apache.org" xmlns:intf="http://xsdelement.test.apache.org" xmlns:tns2="http://complextypes.test.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">
+ <wsdl:types>
+ <schema elementFormDefault="qualified" targetNamespace="http://xsdelement.test.apache.org" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://xsdelement.test.apache.org" xmlns:intf="http://xsdelement.test.apache.org" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+
+ <element name="setGetDataInt">
+ <complexType>
+ <sequence>
+ <element name="arg_0_2" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="setGetDataIntResponse">
+ <complexType>
+ <sequence>
+ <element name="setGetDataIntReturn" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="setGetDataUnsignedInt">
+ <complexType>
+ <sequence>
+ <element name="arg_0_u2" type="xsd:unsignedInt"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="setGetDataUnsignedIntResponse">
+ <complexType>
+ <sequence>
+ <element name="setGetDataUnsignedIntReturn" type="xsd:unsignedInt"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="setGetDataLong">
+ <complexType>
+ <sequence>
+ <element name="arg_0_5" type="xsd:long"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="setGetDataLongResponse">
+ <complexType>
+ <sequence>
+ <element name="setGetDataLongReturn" type="xsd:long"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="setGetDataUnsignedLong">
+ <complexType>
+ <sequence>
+ <element name="arg_0_u5" type="xsd:unsignedLong"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="setGetDataUnsignedLongResponse">
+ <complexType>
+ <sequence>
+ <element name="setGetDataUnsignedLongReturn" type="xsd:unsignedLong"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="setGetDataByte">
+ <complexType>
+ <sequence>
+ <element name="arg_0_14" type="xsd:byte"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="setGetDataByteResponse">
+ <complexType>
+ <sequence>
+ <element name="setGetDataByteReturn" type="xsd:byte"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="setGetDataUnsignedByte">
+ <complexType>
+ <sequence>
+ <element name="arg_0_u14" type="xsd:unsignedByte"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="setGetDataUnsignedByteResponse">
+ <complexType>
+ <sequence>
+ <element name="setGetDataUnsignedByteReturn" type="xsd:unsignedByte"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="setGetDataShort">
+ <complexType>
+ <sequence>
+ <element name="arg_0_26" type="xsd:short"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="setGetDataShortResponse">
+ <complexType>
+ <sequence>
+ <element name="setGetDataShortReturn" type="xsd:short"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="setGetDataUnsignedShort">
+ <complexType>
+ <sequence>
+ <element name="arg_0_u26" type="xsd:unsignedShort"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="setGetDataUnsignedShortResponse">
+ <complexType>
+ <sequence>
+ <element name="setGetDataUnsignedShortReturn" type="xsd:unsignedShort"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="setGetDataBoolean">
+ <complexType>
+ <sequence>
+ <element name="arg_0_17" type="xsd:boolean"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="setGetDataBooleanResponse">
+ <complexType>
+ <sequence>
+ <element name="setGetDataBooleanReturn" type="xsd:boolean"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="setGetDataDouble">
+ <complexType>
+ <sequence>
+ <element name="arg_0_8" type="xsd:double"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="setGetDataDoubleResponse">
+ <complexType>
+ <sequence>
+ <element name="setGetDataDoubleReturn" type="xsd:double"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="setGetDataFloat">
+ <complexType>
+ <sequence>
+ <element name="arg_0_11" type="xsd:float"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="setGetDataFloatResponse">
+ <complexType>
+ <sequence>
+ <element name="setGetDataFloatReturn" type="xsd:float"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="setGetDataString">
+ <complexType>
+ <sequence>
+ <element name="arg_0_23" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="setGetDataStringResponse">
+ <complexType>
+ <sequence>
+ <element name="setGetDataStringReturn" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="setGetDateTimeType">
+ <complexType>
+ <sequence>
+ <element name="arg_0_32" type="xsd:dateTime"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="setGetDateTimeTypeResponse">
+ <complexType>
+ <sequence>
+ <element name="setGetDateTimeTypeReturn" type="xsd:dateTime"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="setGetDateType">
+ <complexType>
+ <sequence>
+ <element name="arg_0_35" type="xsd:date"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="setGetDateTypeResponse">
+ <complexType>
+ <sequence>
+ <element name="setGetDateTypeReturn" type="xsd:date"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="setGetDataDurationType">
+ <complexType>
+ <sequence>
+ <element name="arg_0_d35" type="xsd:duration"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="setGetDataDurationTypeResponse">
+ <complexType>
+ <sequence>
+ <element name="setGetDataDurationTypeReturn" type="xsd:duration"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="setGetTimeType">
+ <complexType>
+ <sequence>
+ <element name="arg_0_38" type="xsd:time"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="setGetTimeTypeResponse">
+ <complexType>
+ <sequence>
+ <element name="setGetTimeTypeReturn" type="xsd:time"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="setGetBase64BinaryType">
+ <complexType>
+ <sequence>
+ <element name="arg_0_41" type="xsd:base64Binary"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="setGetBase64BinaryTypeResponse">
+ <complexType>
+ <sequence>
+ <element name="setGetBase64BinaryTypeReturn" type="xsd:base64Binary"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="setGetHexBinary">
+ <complexType>
+ <sequence>
+ <element name="arg_0_44" type="xsd:hexBinary"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="setGetHexBinaryResponse">
+ <complexType>
+ <sequence>
+ <element name="setGetHexBinaryReturn" type="xsd:hexBinary"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="setGetDecimalType">
+ <complexType>
+ <sequence>
+ <element name="arg_0_47" type="xsd:decimal"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="setGetDecimalTypeResponse">
+ <complexType>
+ <sequence>
+ <element name="setGetDecimalTypeReturn" type="xsd:decimal"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="setGetIntegerType">
+ <complexType>
+ <sequence>
+ <element name="arg_0_50" type="xsd:integer"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="setGetIntegerTypeResponse">
+ <complexType>
+ <sequence>
+ <element name="setGetIntegerTypeReturn" type="xsd:integer"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="getQNameType">
+ <complexType>
+ <sequence/>
+ </complexType>
+ </element>
+ <element name="getQNameTypeResponse">
+ <complexType>
+ <sequence>
+ <element name="getQNameTypeReturn" type="xsd:QName"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="setQNameType">
+ <complexType>
+ <sequence>
+ <element name="arg_0_52" type="xsd:QName"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="setQNameTypeResponse">
+ <complexType>
+ <sequence/>
+ </complexType>
+ </element>
+
+ <element name="getAnyURIType">
+ <complexType>
+ <sequence/>
+ </complexType>
+ </element>
+ <element name="getAnyURITypeResponse">
+ <complexType>
+ <sequence>
+ <element name="getAnyURITypeReturn" type="xsd:anyURI"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="setAnyURIType">
+ <complexType>
+ <sequence>
+ <element name="arg_0_a52" type="xsd:anyURI"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="setAnyURITypeResponse">
+ <complexType>
+ <sequence/>
+ </complexType>
+ </element>
+
+ </schema>
+
+ </wsdl:types>
+
+
+
+ <wsdl:message name="setGetDataIntRequest">
+
+ <wsdl:part element="impl:setGetDataInt" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetDataUnsignedIntRequest">
+
+ <wsdl:part element="impl:setGetDataUnsignedInt" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+
+
+ <wsdl:message name="setGetDataIntResponse">
+
+ <wsdl:part element="impl:setGetDataIntResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="setGetDataUnsignedIntResponse">
+
+ <wsdl:part element="impl:setGetDataUnsignedIntResponse" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetDataByteRequest">
+
+ <wsdl:part element="impl:setGetDataByte" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetDataUnsignedByteRequest">
+
+ <wsdl:part element="impl:setGetDataUnsignedByte" name="parameters"/>
+
+ </wsdl:message>
+
+
+ <wsdl:message name="setGetDataByteResponse">
+
+ <wsdl:part element="impl:setGetDataByteResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="setGetDataUnsignedByteResponse">
+
+ <wsdl:part element="impl:setGetDataUnsignedByteResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="setGetDataLongRequest">
+
+ <wsdl:part element="impl:setGetDataLong" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetDataLongResponse">
+
+ <wsdl:part element="impl:setGetDataLongResponse" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetDataUnsignedLongRequest">
+
+ <wsdl:part element="impl:setGetDataUnsignedLong" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetDataUnsignedLongResponse">
+
+ <wsdl:part element="impl:setGetDataUnsignedLongResponse" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetDataShortRequest">
+
+ <wsdl:part element="impl:setGetDataShort" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetDataShortResponse">
+
+ <wsdl:part element="impl:setGetDataShortResponse" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetDataUnsignedShortRequest">
+
+ <wsdl:part element="impl:setGetDataUnsignedShort" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetDataUnsignedShortResponse">
+
+ <wsdl:part element="impl:setGetDataUnsignedShortResponse" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetDataBooleanRequest">
+
+ <wsdl:part element="impl:setGetDataBoolean" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetDataBooleanResponse">
+
+ <wsdl:part element="impl:setGetDataBooleanResponse" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetDataFloatRequest">
+
+ <wsdl:part element="impl:setGetDataFloat" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetDataFloatResponse">
+
+ <wsdl:part element="impl:setGetDataFloatResponse" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetDataDoubleRequest">
+
+ <wsdl:part element="impl:setGetDataDouble" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetDataDoubleResponse">
+
+ <wsdl:part element="impl:setGetDataDoubleResponse" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetDecimalTypeRequest">
+
+ <wsdl:part element="impl:setGetDecimalType" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetDecimalTypeResponse">
+
+ <wsdl:part element="impl:setGetDecimalTypeResponse" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetHexBinaryRequest">
+
+ <wsdl:part element="impl:setGetHexBinary" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetHexBinaryResponse">
+
+ <wsdl:part element="impl:setGetHexBinaryResponse" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetBase64BinaryTypeRequest">
+
+ <wsdl:part element="impl:setGetBase64BinaryType" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetBase64BinaryTypeResponse">
+
+ <wsdl:part element="impl:setGetBase64BinaryTypeResponse" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetDateTimeTypeRequest">
+
+ <wsdl:part element="impl:setGetDateTimeType" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetDateTimeTypeResponse">
+
+ <wsdl:part element="impl:setGetDateTimeTypeResponse" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetIntegerTypeRequest">
+
+ <wsdl:part element="impl:setGetIntegerType" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetIntegerTypeResponse">
+
+ <wsdl:part element="impl:setGetIntegerTypeResponse" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetDataStringRequest">
+
+ <wsdl:part element="impl:setGetDataString" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetDataStringResponse">
+
+ <wsdl:part element="impl:setGetDataStringResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="setAnyURITypeRequest">
+
+ <wsdl:part element="impl:setAnyURIType" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="getAnyURITypeRequest">
+
+ <wsdl:part element="impl:getAnyURIType" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="setAnyURITypeResponse">
+
+ <wsdl:part element="impl:setAnyURITypeResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="getAnyURITypeResponse">
+
+ <wsdl:part element="impl:getAnyURITypeResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="setQNameTypeRequest">
+
+ <wsdl:part element="impl:setQNameType" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="getQNameTypeRequest">
+
+ <wsdl:part element="impl:getQNameType" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="setQNameTypeResponse">
+
+ <wsdl:part element="impl:setQNameTypeResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="getQNameTypeResponse">
+
+ <wsdl:part element="impl:getQNameTypeResponse" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetDateTypeRequest">
+
+ <wsdl:part element="impl:setGetDateType" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetDateTypeResponse">
+
+ <wsdl:part element="impl:setGetDateTypeResponse" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetDataDurationTypeRequest">
+
+ <wsdl:part element="impl:setGetDataDurationType" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetDataDurationTypeResponse">
+
+ <wsdl:part element="impl:setGetDataDurationTypeResponse" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetTimeTypeRequest">
+
+ <wsdl:part element="impl:setGetTimeType" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetTimeTypeResponse">
+
+ <wsdl:part element="impl:setGetTimeTypeResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:portType name="XSDElement">
+
+
+
+ <wsdl:operation name="setGetDataInt">
+
+ <wsdl:input message="impl:setGetDataIntRequest" name="setGetDataIntRequest"/>
+
+ <wsdl:output message="impl:setGetDataIntResponse" name="setGetDataIntResponse"/>
+
+ </wsdl:operation>
+
+
+
+ <wsdl:operation name="setGetDataUnsignedInt">
+
+ <wsdl:input message="impl:setGetDataUnsignedIntRequest" name="setGetDataUnsignedIntRequest"/>
+
+ <wsdl:output message="impl:setGetDataUnsignedIntResponse" name="setGetDataUnsignedIntResponse"/>
+
+ </wsdl:operation>
+
+
+
+ <wsdl:operation name="setGetDataLong">
+
+ <wsdl:input message="impl:setGetDataLongRequest" name="setGetDataLongRequest"/>
+
+ <wsdl:output message="impl:setGetDataLongResponse" name="setGetDataLongResponse"/>
+
+ </wsdl:operation>
+
+
+
+ <wsdl:operation name="setGetDataUnsignedLong">
+
+ <wsdl:input message="impl:setGetDataUnsignedLongRequest" name="setGetDataUnsignedLongRequest"/>
+
+ <wsdl:output message="impl:setGetDataUnsignedLongResponse" name="setGetDataUnsignedLongResponse"/>
+
+ </wsdl:operation>
+
+
+
+ <wsdl:operation name="setGetDataDouble">
+
+ <wsdl:input message="impl:setGetDataDoubleRequest" name="setGetDataDoubleRequest"/>
+
+ <wsdl:output message="impl:setGetDataDoubleResponse" name="setGetDataDoubleResponse"/>
+
+ </wsdl:operation>
+
+
+
+ <wsdl:operation name="setGetDataFloat">
+
+ <wsdl:input message="impl:setGetDataFloatRequest" name="setGetDataFloatRequest"/>
+
+ <wsdl:output message="impl:setGetDataFloatResponse" name="setGetDataFloatResponse"/>
+
+ </wsdl:operation>
+
+
+
+ <wsdl:operation name="setGetDataByte">
+
+ <wsdl:input message="impl:setGetDataByteRequest" name="setGetDataByteRequest"/>
+
+ <wsdl:output message="impl:setGetDataByteResponse" name="setGetDataByteResponse"/>
+
+ </wsdl:operation>
+
+
+
+ <wsdl:operation name="setGetDataUnsignedByte">
+
+ <wsdl:input message="impl:setGetDataUnsignedByteRequest" name="setGetDataUnsignedByteRequest"/>
+
+ <wsdl:output message="impl:setGetDataUnsignedByteResponse" name="setGetDataUnsignedByteResponse"/>
+
+ </wsdl:operation>
+
+
+
+ <wsdl:operation name="setGetDataBoolean">
+
+ <wsdl:input message="impl:setGetDataBooleanRequest" name="setGetDataBooleanRequest"/>
+
+ <wsdl:output message="impl:setGetDataBooleanResponse" name="setGetDataBooleanResponse"/>
+
+ </wsdl:operation>
+
+
+
+ <wsdl:operation name="setGetDataString">
+
+ <wsdl:input message="impl:setGetDataStringRequest" name="setGetDataStringRequest"/>
+
+ <wsdl:output message="impl:setGetDataStringResponse" name="setGetDataStringResponse"/>
+
+ </wsdl:operation>
+
+
+
+ <wsdl:operation name="setGetDataShort">
+
+ <wsdl:input message="impl:setGetDataShortRequest" name="setGetDataShortRequest"/>
+
+ <wsdl:output message="impl:setGetDataShortResponse" name="setGetDataShortResponse"/>
+
+ </wsdl:operation>
+
+
+
+ <wsdl:operation name="setGetDataUnsignedShort">
+
+ <wsdl:input message="impl:setGetDataUnsignedShortRequest" name="setGetDataUnsignedShortRequest"/>
+
+ <wsdl:output message="impl:setGetDataUnsignedShortResponse" name="setGetDataUnsignedShortResponse"/>
+
+ </wsdl:operation>
+
+
+
+ <wsdl:operation name="setGetDateTimeType">
+
+ <wsdl:input message="impl:setGetDateTimeTypeRequest" name="setGetDateTimeTypeRequest"/>
+
+ <wsdl:output message="impl:setGetDateTimeTypeResponse" name="setGetDateTimeTypeResponse"/>
+
+ </wsdl:operation>
+
+
+
+ <wsdl:operation name="setGetDateType">
+
+ <wsdl:input message="impl:setGetDateTypeRequest" name="setGetDateTypeRequest"/>
+
+ <wsdl:output message="impl:setGetDateTypeResponse" name="setGetDateTypeResponse"/>
+
+ </wsdl:operation>
+
+
+
+ <wsdl:operation name="setGetDataDurationType">
+
+ <wsdl:input message="impl:setGetDataDurationTypeRequest" name="setGetDataDurationTypeRequest"/>
+
+ <wsdl:output message="impl:setGetDataDurationTypeResponse" name="setGetDataDurationTypeResponse"/>
+
+ </wsdl:operation>
+
+
+
+ <wsdl:operation name="setGetTimeType">
+
+ <wsdl:input message="impl:setGetTimeTypeRequest" name="setGetTimeTypeRequest"/>
+
+ <wsdl:output message="impl:setGetTimeTypeResponse" name="setGetTimeTypeResponse"/>
+
+ </wsdl:operation>
+
+
+
+ <wsdl:operation name="setGetBase64BinaryType">
+
+ <wsdl:input message="impl:setGetBase64BinaryTypeRequest" name="setGetBase64BinaryTypeRequest"/>
+
+ <wsdl:output message="impl:setGetBase64BinaryTypeResponse" name="setGetBase64BinaryTypeResponse"/>
+
+ </wsdl:operation>
+
+
+
+ <wsdl:operation name="setGetHexBinary">
+
+ <wsdl:input message="impl:setGetHexBinaryRequest" name="setGetHexBinaryRequest"/>
+
+ <wsdl:output message="impl:setGetHexBinaryResponse" name="setGetHexBinaryResponse"/>
+
+ </wsdl:operation>
+
+
+
+ <wsdl:operation name="setGetDecimalType">
+
+ <wsdl:input message="impl:setGetDecimalTypeRequest" name="setGetDecimalTypeRequest"/>
+
+ <wsdl:output message="impl:setGetDecimalTypeResponse" name="setGetDecimalTypeResponse"/>
+
+ </wsdl:operation>
+
+
+
+ <wsdl:operation name="setGetIntegerType">
+
+ <wsdl:input message="impl:setGetIntegerTypeRequest" name="setGetIntegerTypeRequest"/>
+
+ <wsdl:output message="impl:setGetIntegerTypeResponse" name="setGetIntegerTypeResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="setQNameType">
+
+ <wsdl:input message="impl:setQNameTypeRequest" name="setQNameTypeRequest"/>
+
+ <wsdl:output message="impl:setQNameTypeResponse" name="setQNameTypeResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="getQNameType">
+
+ <wsdl:input message="impl:getQNameTypeRequest" name="getQNameTypeRequest"/>
+
+ <wsdl:output message="impl:getQNameTypeResponse" name="getQNameTypeResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="setAnyURIType">
+
+ <wsdl:input message="impl:setAnyURITypeRequest" name="setAnyURITypeRequest"/>
+
+ <wsdl:output message="impl:setAnyURITypeResponse" name="setAnyURITypeResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="getAnyURIType">
+
+ <wsdl:input message="impl:getAnyURITypeRequest" name="getAnyURITypeRequest"/>
+
+ <wsdl:output message="impl:getAnyURITypeResponse" name="getAnyURITypeResponse"/>
+
+ </wsdl:operation>
+
+ </wsdl:portType>
+
+ <wsdl:binding name="XSDElementSoapBinding" type="impl:XSDElement">
+
+ <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+
+ <wsdl:operation name="setGetDataInt">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="setGetDataIntRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="setGetDataIntResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="setGetDataUnsignedInt">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="setGetDataUnsignedIntRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="setGetDataUnsignedIntResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="setGetDataLong">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="setGetDataLongRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="setGetDataLongResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="setGetDataUnsignedLong">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="setGetDataUnsignedLongRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="setGetDataUnsignedLongResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="setGetDataDouble">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="setGetDataDoubleRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="setGetDataDoubleResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="setGetDataFloat">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="setGetDataFloatRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="setGetDataFloatResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="setGetDataByte">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="setGetDataByteRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="setGetDataByteResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="setGetDataUnsignedByte">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="setGetDataUnsignedByteRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="setGetDataUnsignedByteResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="setGetDataBoolean">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="setGetDataBooleanRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="setGetDataBooleanResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="setGetDataString">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="setGetDataStringRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="setGetDataStringResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="setGetDataShort">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="setGetDataShortRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="setGetDataShortResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="setGetDataUnsignedShort">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="setGetDataUnsignedShortRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="setGetDataUnsignedShortResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="setGetDateTimeType">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="setGetDateTimeTypeRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="setGetDateTimeTypeResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="setGetDateType">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="setGetDateTypeRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="setGetDateTypeResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="setGetDataDurationType">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="setGetDataDurationTypeRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="setGetDataDurationTypeResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="setGetTimeType">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="setGetTimeTypeRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="setGetTimeTypeResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="setGetBase64BinaryType">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="setGetBase64BinaryTypeRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="setGetBase64BinaryTypeResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="setGetHexBinary">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="setGetHexBinaryRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="setGetHexBinaryResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="setGetDecimalType">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="setGetDecimalTypeRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="setGetDecimalTypeResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="setGetIntegerType">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="setGetIntegerTypeRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="setGetIntegerTypeResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="getQNameType">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="getQNameTypeRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="getQNameTypeResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="setQNameType">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="setQNameTypeRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="setQNameTypeResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="getAnyURIType">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="getAnyURITypeRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="getAnyURITypeResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="setAnyURIType">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="setAnyURITypeRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="setAnyURITypeResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ </wsdl:binding>
+
+ <wsdl:service name="XSDElementService">
+
+ <wsdl:port binding="impl:XSDElementSoapBinding" name="XSDElementPort">
+
+ <wsdlsoap:address location="http://localhost:9080/XSDElement/services/XSDElementPort"/>
+
+ </wsdl:port>
+
+ </wsdl:service>
+
+</wsdl:definitions>
diff --git a/test/resources/wsdl/XSDElementNil.wsdl b/test/resources/wsdl/XSDElementNil.wsdl
new file mode 100644
index 0000000..153530b
--- /dev/null
+++ b/test/resources/wsdl/XSDElementNil.wsdl
@@ -0,0 +1,1414 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- (c) Copyright IBM Corp. 2004, 2005 All Rights Reserved -->
+<!-- -->
+<!-- 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 targetNamespace="http://xsdelement.test.apache.org" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://xsdelement.test.apache.org" xmlns:intf="http://xsdelement.test.apache.org" xmlns:tns2="http://complextypes.test.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">
+ <wsdl:types>
+ <schema elementFormDefault="qualified" targetNamespace="http://xsdelement.test.apache.org" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://xsdelement.test.apache.org" xmlns:intf="http://xsdelement.test.apache.org" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+
+ <element name="setGetDataInt">
+ <complexType>
+ <sequence>
+ <element name="arg_0_2" nillable="true" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="setGetDataIntResponse">
+ <complexType>
+ <sequence>
+ <element name="setGetDataIntReturn" nillable="true" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="setGetDataUnsignedInt">
+ <complexType>
+ <sequence>
+ <element name="arg_0_u2" nillable="true" type="xsd:unsignedInt"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="setGetDataUnsignedIntResponse">
+ <complexType>
+ <sequence>
+ <element name="setGetDataUnsignedIntReturn" nillable="true" type="xsd:unsignedInt"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="setGetDataLong">
+ <complexType>
+ <sequence>
+ <element name="arg_0_5" nillable="true" type="xsd:long"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="setGetDataLongResponse">
+ <complexType>
+ <sequence>
+ <element name="setGetDataLongReturn" nillable="true" type="xsd:long"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="setGetDataUnsignedLong">
+ <complexType>
+ <sequence>
+ <element name="arg_0_u5" nillable="true" type="xsd:unsignedLong"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="setGetDataUnsignedLongResponse">
+ <complexType>
+ <sequence>
+ <element name="setGetDataUnsignedLongReturn" nillable="true" type="xsd:unsignedLong"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="setGetDataByte">
+ <complexType>
+ <sequence>
+ <element name="arg_0_14" nillable="true" type="xsd:byte"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="setGetDataByteResponse">
+ <complexType>
+ <sequence>
+ <element name="setGetDataByteReturn" nillable="true" type="xsd:byte"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="setGetDataUnsignedByte">
+ <complexType>
+ <sequence>
+ <element name="arg_0_u14" nillable="true" type="xsd:unsignedByte"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="setGetDataUnsignedByteResponse">
+ <complexType>
+ <sequence>
+ <element name="setGetDataUnsignedByteReturn" nillable="true" type="xsd:unsignedByte"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="setGetDataShort">
+ <complexType>
+ <sequence>
+ <element name="arg_0_26" nillable="true" type="xsd:short"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="setGetDataShortResponse">
+ <complexType>
+ <sequence>
+ <element name="setGetDataShortReturn" nillable="true" type="xsd:short"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="setGetDataUnsignedShort">
+ <complexType>
+ <sequence>
+ <element name="arg_0_u26" nillable="true" type="xsd:unsignedShort"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="setGetDataUnsignedShortResponse">
+ <complexType>
+ <sequence>
+ <element name="setGetDataUnsignedShortReturn" nillable="true" type="xsd:unsignedShort"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="setGetDataBoolean">
+ <complexType>
+ <sequence>
+ <element name="arg_0_17" nillable="true" type="xsd:boolean"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="setGetDataBooleanResponse">
+ <complexType>
+ <sequence>
+ <element name="setGetDataBooleanReturn" nillable="true" type="xsd:boolean"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="setGetDataDouble">
+ <complexType>
+ <sequence>
+ <element name="arg_0_8" nillable="true" type="xsd:double"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="setGetDataDoubleResponse">
+ <complexType>
+ <sequence>
+ <element name="setGetDataDoubleReturn" nillable="true" type="xsd:double"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="setGetDataFloat">
+ <complexType>
+ <sequence>
+ <element name="arg_0_11" nillable="true" type="xsd:float"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="setGetDataFloatResponse">
+ <complexType>
+ <sequence>
+ <element name="setGetDataFloatReturn" nillable="true" type="xsd:float"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="setGetDataString">
+ <complexType>
+ <sequence>
+ <element name="arg_0_23" nillable="true" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="setGetDataStringResponse">
+ <complexType>
+ <sequence>
+ <element name="setGetDataStringReturn" nillable="true" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="setGetDateTimeType">
+ <complexType>
+ <sequence>
+ <element name="arg_0_32" nillable="true" type="xsd:dateTime"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="setGetDateTimeTypeResponse">
+ <complexType>
+ <sequence>
+ <element name="setGetDateTimeTypeReturn" nillable="true" type="xsd:dateTime"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="setGetDateType">
+ <complexType>
+ <sequence>
+ <element name="arg_0_35" nillable="true" type="xsd:date"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="setGetDateTypeResponse">
+ <complexType>
+ <sequence>
+ <element name="setGetDateTypeReturn" nillable="true" type="xsd:date"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="setGetDataDurationType">
+ <complexType>
+ <sequence>
+ <element name="arg_0_d35" nillable="true" type="xsd:duration"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="setGetDataDurationTypeResponse">
+ <complexType>
+ <sequence>
+ <element name="setGetDataDurationTypeReturn" nillable="true" type="xsd:duration"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="setGetTimeType">
+ <complexType>
+ <sequence>
+ <element name="arg_0_38" nillable="true" type="xsd:time"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="setGetTimeTypeResponse">
+ <complexType>
+ <sequence>
+ <element name="setGetTimeTypeReturn" nillable="true" type="xsd:time"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="setGetBase64BinaryType">
+ <complexType>
+ <sequence>
+ <element name="arg_0_41" nillable="true" type="xsd:base64Binary"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="setGetBase64BinaryTypeResponse">
+ <complexType>
+ <sequence>
+ <element name="setGetBase64BinaryTypeReturn" nillable="true" type="xsd:base64Binary"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="setGetHexBinary">
+ <complexType>
+ <sequence>
+ <element name="arg_0_44" nillable="true" type="xsd:hexBinary"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="setGetHexBinaryResponse">
+ <complexType>
+ <sequence>
+ <element name="setGetHexBinaryReturn" nillable="true" type="xsd:hexBinary"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="setGetDecimalType">
+ <complexType>
+ <sequence>
+ <element name="arg_0_47" nillable="true" type="xsd:decimal"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="setGetDecimalTypeResponse">
+ <complexType>
+ <sequence>
+ <element name="setGetDecimalTypeReturn" nillable="true" type="xsd:decimal"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="setGetIntegerType">
+ <complexType>
+ <sequence>
+ <element name="arg_0_50" nillable="true" type="xsd:integer"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="setGetIntegerTypeResponse">
+ <complexType>
+ <sequence>
+ <element name="setGetIntegerTypeReturn" nillable="true" type="xsd:integer"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="getQNameType">
+ <complexType>
+ <sequence/>
+ </complexType>
+ </element>
+ <element name="getQNameTypeResponse">
+ <complexType>
+ <sequence>
+ <element name="getQNameTypeReturn" nillable="true" type="xsd:QName"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="setQNameType">
+ <complexType>
+ <sequence>
+ <element name="arg_0_52" nillable="true" type="xsd:QName"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="setQNameTypeResponse">
+ <complexType>
+ <sequence/>
+ </complexType>
+ </element>
+
+ <element name="getAnyURIType">
+ <complexType>
+ <sequence/>
+ </complexType>
+ </element>
+ <element name="getAnyURITypeResponse">
+ <complexType>
+ <sequence>
+ <element name="getAnyURITypeReturn" nillable="true" type="xsd:anyURI"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="setAnyURIType">
+ <complexType>
+ <sequence>
+ <element name="arg_0_a52" nillable="true" type="xsd:anyURI"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="setAnyURITypeResponse">
+ <complexType>
+ <sequence/>
+ </complexType>
+ </element>
+
+ </schema>
+
+ </wsdl:types>
+
+
+
+ <wsdl:message name="setGetDataIntRequest">
+
+ <wsdl:part element="impl:setGetDataInt" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetDataUnsignedIntRequest">
+
+ <wsdl:part element="impl:setGetDataUnsignedInt" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="setGetDataIntResponse">
+
+ <wsdl:part element="impl:setGetDataIntResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="setGetDataUnsignedIntResponse">
+
+ <wsdl:part element="impl:setGetDataUnsignedIntResponse" name="parameters"/>
+
+ </wsdl:message>
+
+
+ <wsdl:message name="setGetDataByteRequest">
+
+ <wsdl:part element="impl:setGetDataByte" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetDataUnsignedByteRequest">
+
+ <wsdl:part element="impl:setGetDataUnsignedByte" name="parameters"/>
+
+ </wsdl:message>
+
+
+ <wsdl:message name="setGetDataByteResponse">
+
+ <wsdl:part element="impl:setGetDataByteResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="setGetDataUnsignedByteResponse">
+
+ <wsdl:part element="impl:setGetDataUnsignedByteResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="setGetDataLongRequest">
+
+ <wsdl:part element="impl:setGetDataLong" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetDataLongResponse">
+
+ <wsdl:part element="impl:setGetDataLongResponse" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetDataUnsignedLongRequest">
+
+ <wsdl:part element="impl:setGetDataUnsignedLong" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetDataUnsignedLongResponse">
+
+ <wsdl:part element="impl:setGetDataUnsignedLongResponse" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetDataShortRequest">
+
+ <wsdl:part element="impl:setGetDataShort" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetDataShortResponse">
+
+ <wsdl:part element="impl:setGetDataShortResponse" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetDataUnsignedShortRequest">
+
+ <wsdl:part element="impl:setGetDataUnsignedShort" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetDataUnsignedShortResponse">
+
+ <wsdl:part element="impl:setGetDataUnsignedShortResponse" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetDataBooleanRequest">
+
+ <wsdl:part element="impl:setGetDataBoolean" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetDataBooleanResponse">
+
+ <wsdl:part element="impl:setGetDataBooleanResponse" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetDataFloatRequest">
+
+ <wsdl:part element="impl:setGetDataFloat" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetDataFloatResponse">
+
+ <wsdl:part element="impl:setGetDataFloatResponse" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetDataDoubleRequest">
+
+ <wsdl:part element="impl:setGetDataDouble" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetDataDoubleResponse">
+
+ <wsdl:part element="impl:setGetDataDoubleResponse" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetDecimalTypeRequest">
+
+ <wsdl:part element="impl:setGetDecimalType" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetDecimalTypeResponse">
+
+ <wsdl:part element="impl:setGetDecimalTypeResponse" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetHexBinaryRequest">
+
+ <wsdl:part element="impl:setGetHexBinary" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetHexBinaryResponse">
+
+ <wsdl:part element="impl:setGetHexBinaryResponse" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetBase64BinaryTypeRequest">
+
+ <wsdl:part element="impl:setGetBase64BinaryType" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetBase64BinaryTypeResponse">
+
+ <wsdl:part element="impl:setGetBase64BinaryTypeResponse" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetDateTimeTypeRequest">
+
+ <wsdl:part element="impl:setGetDateTimeType" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetDateTimeTypeResponse">
+
+ <wsdl:part element="impl:setGetDateTimeTypeResponse" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetIntegerTypeRequest">
+
+ <wsdl:part element="impl:setGetIntegerType" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetIntegerTypeResponse">
+
+ <wsdl:part element="impl:setGetIntegerTypeResponse" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetDataStringRequest">
+
+ <wsdl:part element="impl:setGetDataString" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetDataStringResponse">
+
+ <wsdl:part element="impl:setGetDataStringResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="setAnyURITypeRequest">
+
+ <wsdl:part element="impl:setAnyURIType" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="getAnyURITypeRequest">
+
+ <wsdl:part element="impl:getAnyURIType" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="setAnyURITypeResponse">
+
+ <wsdl:part element="impl:setAnyURITypeResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="getAnyURITypeResponse">
+
+ <wsdl:part element="impl:getAnyURITypeResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="setQNameTypeRequest">
+
+ <wsdl:part element="impl:setQNameType" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="getQNameTypeRequest">
+
+ <wsdl:part element="impl:getQNameType" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="setQNameTypeResponse">
+
+ <wsdl:part element="impl:setQNameTypeResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="getQNameTypeResponse">
+
+ <wsdl:part element="impl:getQNameTypeResponse" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetDateTypeRequest">
+
+ <wsdl:part element="impl:setGetDateType" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetDateTypeResponse">
+
+ <wsdl:part element="impl:setGetDateTypeResponse" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetDataDurationTypeRequest">
+
+ <wsdl:part element="impl:setGetDataDurationType" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetDataDurationTypeResponse">
+
+ <wsdl:part element="impl:setGetDataDurationTypeResponse" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetTimeTypeRequest">
+
+ <wsdl:part element="impl:setGetTimeType" name="parameters"/>
+
+ </wsdl:message>
+
+
+
+ <wsdl:message name="setGetTimeTypeResponse">
+
+ <wsdl:part element="impl:setGetTimeTypeResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:portType name="XSDElementNil">
+
+ <wsdl:operation name="setGetDataInt">
+
+ <wsdl:input message="impl:setGetDataIntRequest" name="setGetDataIntRequest"/>
+
+ <wsdl:output message="impl:setGetDataIntResponse" name="setGetDataIntResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="setGetDataUnsignedInt">
+
+ <wsdl:input message="impl:setGetDataUnsignedIntRequest" name="setGetDataUnsignedIntRequest"/>
+
+ <wsdl:output message="impl:setGetDataUnsignedIntResponse" name="setGetDataUnsignedIntResponse"/>
+
+ </wsdl:operation>
+
+
+
+ <wsdl:operation name="setGetDataLong">
+
+ <wsdl:input message="impl:setGetDataLongRequest" name="setGetDataLongRequest"/>
+
+ <wsdl:output message="impl:setGetDataLongResponse" name="setGetDataLongResponse"/>
+
+ </wsdl:operation>
+
+
+
+ <wsdl:operation name="setGetDataUnsignedLong">
+
+ <wsdl:input message="impl:setGetDataUnsignedLongRequest" name="setGetDataUnsignedLongRequest"/>
+
+ <wsdl:output message="impl:setGetDataUnsignedLongResponse" name="setGetDataUnsignedLongResponse"/>
+
+ </wsdl:operation>
+
+
+
+ <wsdl:operation name="setGetDataDouble">
+
+ <wsdl:input message="impl:setGetDataDoubleRequest" name="setGetDataDoubleRequest"/>
+
+ <wsdl:output message="impl:setGetDataDoubleResponse" name="setGetDataDoubleResponse"/>
+
+ </wsdl:operation>
+
+
+
+ <wsdl:operation name="setGetDataFloat">
+
+ <wsdl:input message="impl:setGetDataFloatRequest" name="setGetDataFloatRequest"/>
+
+ <wsdl:output message="impl:setGetDataFloatResponse" name="setGetDataFloatResponse"/>
+
+ </wsdl:operation>
+
+
+
+ <wsdl:operation name="setGetDataByte">
+
+ <wsdl:input message="impl:setGetDataByteRequest" name="setGetDataByteRequest"/>
+
+ <wsdl:output message="impl:setGetDataByteResponse" name="setGetDataByteResponse"/>
+
+ </wsdl:operation>
+
+
+
+ <wsdl:operation name="setGetDataUnsignedByte">
+
+ <wsdl:input message="impl:setGetDataUnsignedByteRequest" name="setGetDataUnsignedByteRequest"/>
+
+ <wsdl:output message="impl:setGetDataUnsignedByteResponse" name="setGetDataUnsignedByteResponse"/>
+
+ </wsdl:operation>
+
+
+
+ <wsdl:operation name="setGetDataBoolean">
+
+ <wsdl:input message="impl:setGetDataBooleanRequest" name="setGetDataBooleanRequest"/>
+
+ <wsdl:output message="impl:setGetDataBooleanResponse" name="setGetDataBooleanResponse"/>
+
+ </wsdl:operation>
+
+
+
+ <wsdl:operation name="setGetDataString">
+
+ <wsdl:input message="impl:setGetDataStringRequest" name="setGetDataStringRequest"/>
+
+ <wsdl:output message="impl:setGetDataStringResponse" name="setGetDataStringResponse"/>
+
+ </wsdl:operation>
+
+
+
+ <wsdl:operation name="setGetDataShort">
+
+ <wsdl:input message="impl:setGetDataShortRequest" name="setGetDataShortRequest"/>
+
+ <wsdl:output message="impl:setGetDataShortResponse" name="setGetDataShortResponse"/>
+
+ </wsdl:operation>
+
+
+
+ <wsdl:operation name="setGetDataUnsignedShort">
+
+ <wsdl:input message="impl:setGetDataUnsignedShortRequest" name="setGetDataUnsignedShortRequest"/>
+
+ <wsdl:output message="impl:setGetDataUnsignedShortResponse" name="setGetDataUnsignedShortResponse"/>
+
+ </wsdl:operation>
+
+
+
+ <wsdl:operation name="setGetDateTimeType">
+
+ <wsdl:input message="impl:setGetDateTimeTypeRequest" name="setGetDateTimeTypeRequest"/>
+
+ <wsdl:output message="impl:setGetDateTimeTypeResponse" name="setGetDateTimeTypeResponse"/>
+
+ </wsdl:operation>
+
+
+
+ <wsdl:operation name="setGetDateType">
+
+ <wsdl:input message="impl:setGetDateTypeRequest" name="setGetDateTypeRequest"/>
+
+ <wsdl:output message="impl:setGetDateTypeResponse" name="setGetDateTypeResponse"/>
+
+ </wsdl:operation>
+
+
+
+ <wsdl:operation name="setGetDataDurationType">
+
+ <wsdl:input message="impl:setGetDataDurationTypeRequest" name="setGetDataDurationTypeRequest"/>
+
+ <wsdl:output message="impl:setGetDataDurationTypeResponse" name="setGetDataDurationTypeResponse"/>
+
+ </wsdl:operation>
+
+
+
+ <wsdl:operation name="setGetTimeType">
+
+ <wsdl:input message="impl:setGetTimeTypeRequest" name="setGetTimeTypeRequest"/>
+
+ <wsdl:output message="impl:setGetTimeTypeResponse" name="setGetTimeTypeResponse"/>
+
+ </wsdl:operation>
+
+
+
+ <wsdl:operation name="setGetBase64BinaryType">
+
+ <wsdl:input message="impl:setGetBase64BinaryTypeRequest" name="setGetBase64BinaryTypeRequest"/>
+
+ <wsdl:output message="impl:setGetBase64BinaryTypeResponse" name="setGetBase64BinaryTypeResponse"/>
+
+ </wsdl:operation>
+
+
+
+ <wsdl:operation name="setGetHexBinary">
+
+ <wsdl:input message="impl:setGetHexBinaryRequest" name="setGetHexBinaryRequest"/>
+
+ <wsdl:output message="impl:setGetHexBinaryResponse" name="setGetHexBinaryResponse"/>
+
+ </wsdl:operation>
+
+
+
+ <wsdl:operation name="setGetDecimalType">
+
+ <wsdl:input message="impl:setGetDecimalTypeRequest" name="setGetDecimalTypeRequest"/>
+
+ <wsdl:output message="impl:setGetDecimalTypeResponse" name="setGetDecimalTypeResponse"/>
+
+ </wsdl:operation>
+
+
+
+ <wsdl:operation name="setGetIntegerType">
+
+ <wsdl:input message="impl:setGetIntegerTypeRequest" name="setGetIntegerTypeRequest"/>
+
+ <wsdl:output message="impl:setGetIntegerTypeResponse" name="setGetIntegerTypeResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="setQNameType">
+
+ <wsdl:input message="impl:setQNameTypeRequest" name="setQNameTypeRequest"/>
+
+ <wsdl:output message="impl:setQNameTypeResponse" name="setQNameTypeResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="getQNameType">
+
+ <wsdl:input message="impl:getQNameTypeRequest" name="getQNameTypeRequest"/>
+
+ <wsdl:output message="impl:getQNameTypeResponse" name="getQNameTypeResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="setAnyURIType">
+
+ <wsdl:input message="impl:setAnyURITypeRequest" name="setAnyURITypeRequest"/>
+
+ <wsdl:output message="impl:setAnyURITypeResponse" name="setAnyURITypeResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="getAnyURIType">
+
+ <wsdl:input message="impl:getAnyURITypeRequest" name="getAnyURITypeRequest"/>
+
+ <wsdl:output message="impl:getAnyURITypeResponse" name="getAnyURITypeResponse"/>
+
+ </wsdl:operation>
+
+ </wsdl:portType>
+
+ <wsdl:binding name="XSDElementNilSoapBinding" type="impl:XSDElementNil">
+
+ <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+
+ <wsdl:operation name="setGetDataInt">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="setGetDataIntRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="setGetDataIntResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="setGetDataUnsignedInt">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="setGetDataUnsignedIntRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="setGetDataUnsignedIntResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="setGetDataLong">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="setGetDataLongRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="setGetDataLongResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="setGetDataUnsignedLong">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="setGetDataUnsignedLongRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="setGetDataUnsignedLongResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="setGetDataDouble">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="setGetDataDoubleRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="setGetDataDoubleResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="setGetDataFloat">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="setGetDataFloatRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="setGetDataFloatResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="setGetDataByte">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="setGetDataByteRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="setGetDataByteResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="setGetDataUnsignedByte">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="setGetDataUnsignedByteRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="setGetDataUnsignedByteResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="setGetDataBoolean">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="setGetDataBooleanRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="setGetDataBooleanResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="setGetDataString">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="setGetDataStringRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="setGetDataStringResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="setGetDataShort">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="setGetDataShortRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="setGetDataShortResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="setGetDataUnsignedShort">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="setGetDataUnsignedShortRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="setGetDataUnsignedShortResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="setGetDateTimeType">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="setGetDateTimeTypeRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="setGetDateTimeTypeResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="setGetDateType">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="setGetDateTypeRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="setGetDateTypeResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="setGetDataDurationType">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="setGetDataDurationTypeRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="setGetDataDurationTypeResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="setGetTimeType">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="setGetTimeTypeRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="setGetTimeTypeResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="setGetBase64BinaryType">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="setGetBase64BinaryTypeRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="setGetBase64BinaryTypeResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="setGetHexBinary">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="setGetHexBinaryRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="setGetHexBinaryResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="setGetDecimalType">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="setGetDecimalTypeRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="setGetDecimalTypeResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="setGetIntegerType">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="setGetIntegerTypeRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="setGetIntegerTypeResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="getQNameType">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="getQNameTypeRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="getQNameTypeResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="setQNameType">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="setQNameTypeRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="setQNameTypeResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="getAnyURIType">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="getAnyURITypeRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="getAnyURITypeResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="setAnyURIType">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="setAnyURITypeRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="setAnyURITypeResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ </wsdl:binding>
+
+ <wsdl:service name="XSDElementNilService">
+
+ <wsdl:port binding="impl:XSDElementNilSoapBinding" name="XSDElementNilPort">
+
+ <wsdlsoap:address location="http://localhost:9080/XSDElement/services/XSDElementNilPort"/>
+
+ </wsdl:port>
+
+ </wsdl:service>
+
+</wsdl:definitions>
+
diff --git a/test/resources/wsdl/XSD_ENTITIES.wsdl b/test/resources/wsdl/XSD_ENTITIES.wsdl
new file mode 100644
index 0000000..56628fb
--- /dev/null
+++ b/test/resources/wsdl/XSD_ENTITIES.wsdl
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://xsd_ENTITIES.test.apache.org"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="XSD_ENTITIES"
+ targetNamespace="http://xsd_ENTITIES.test.apache.org">
+ <wsdl:types>
+ <xsd:schema
+ targetNamespace="http://xsd_ENTITIES.test.apache.org"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="asNonNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:ENTITIES" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="AsNonNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:ENTITIES" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:ENTITIES" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:ENTITIES" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="RequiredAttributeElement">
+ <xsd:attribute name="requiredAttribute" type="xsd:ENTITIES"
+ use="required" />
+ </xsd:complexType>
+ <xsd:element name="asRequiredAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asRequiredAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="OptionalAttributeElement">
+ <xsd:attribute name="optionalAttribute" type="xsd:ENTITIES"
+ use="optional" />
+ </xsd:complexType>
+ <xsd:element name="asOptionalAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asOptionalAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:ENTITIES" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:ENTITIES" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="SimpleComplexType">
+ <xsd:sequence>
+ <xsd:element name="complexTypeElement"
+ type="xsd:ENTITIES" minOccurs="1" maxOccurs="1" nillable="false" />
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="asComplexTypeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asComplexTypeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="asNonNillableElementResponse">
+ <wsdl:part element="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:message>
+ <wsdl:message name="asNonNillableElementRequest">
+ <wsdl:part element="tns:AsNonNillableElementRequest"
+ name="parameters" />
+ </wsdl:message>
+ <wsdl:message name="asNillableElementResponse">
+ <wsdl:part name="asNillableElementResponse"
+ element="tns:asNillableElementResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asNillableElementRequest">
+ <wsdl:part name="asNillableElementRequest"
+ element="tns:asNillableElementRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeResponse">
+ <wsdl:part name="asRequiredAttributeResponse"
+ element="tns:asRequiredAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeRequest">
+ <wsdl:part name="asRequiredAttributeRequest"
+ element="tns:asRequiredAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeResponse">
+ <wsdl:part name="asOptionalAttributeResponse"
+ element="tns:asOptionalAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeRequest">
+ <wsdl:part name="asOptionalAttributeRequest"
+ element="tns:asOptionalAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayResponse">
+ <wsdl:part name="asArrayResponse"
+ element="tns:asArrayResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayRequest">
+ <wsdl:part name="asArrayRequest" element="tns:asArrayRequest"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeResponse">
+ <wsdl:part name="asComplexTypeResponse"
+ element="tns:asComplexTypeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeRequest">
+ <wsdl:part name="asComplexTypeRequest"
+ element="tns:asComplexTypeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="XSD_ENTITIESPort">
+ <wsdl:operation name="asNonNillableElement">
+ <wsdl:input message="tns:asNonNillableElementRequest"
+ name="asNonNillableElementRequest" />
+ <wsdl:output message="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <wsdl:input message="tns:asNillableElementRequest"
+ name="asNillableElementRequest">
+ </wsdl:input>
+ <wsdl:output message="tns:asNillableElementResponse"
+ name="asNillableElementResponse">
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <wsdl:input message="tns:asRequiredAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asRequiredAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <wsdl:input message="tns:asOptionalAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asOptionalAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <wsdl:input message="tns:asArrayRequest"></wsdl:input>
+ <wsdl:output message="tns:asArrayResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <wsdl:input message="tns:asComplexTypeRequest"></wsdl:input>
+ <wsdl:output message="tns:asComplexTypeResponse"></wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="XSD_ENTITIESSOAP" type="tns:XSD_ENTITIESPort">
+ <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="asNonNillableElement">
+ <soap:operation
+ soapAction="XSD_ENTITIESPort#asNonNillableElement" style="document" />
+ <wsdl:input name="asNonNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNonNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <soap:operation soapAction="XSD_ENTITIESPort#asNillableElement"
+ style="document" />
+ <wsdl:input name="asNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <soap:operation
+ soapAction="XSD_ENTITIESPort#asRequiredAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <soap:operation
+ soapAction="XSD_ENTITIESPort#asOptionalAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <soap:operation soapAction="XSD_ENTITIESPort#asArray" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <soap:operation soapAction="XSD_ENTITIESPort#asComplexType"
+ style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="XSD_ENTITIES">
+ <wsdl:port binding="tns:XSD_ENTITIESSOAP"
+ name="XSD_ENTITIESSOAP">
+ <soap:address
+ location="http://localhost:9080/XSD_ENTITIES/services/XSD_ENTITIESPort" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/test/resources/wsdl/XSD_ENTITY.wsdl b/test/resources/wsdl/XSD_ENTITY.wsdl
new file mode 100644
index 0000000..e18be29
--- /dev/null
+++ b/test/resources/wsdl/XSD_ENTITY.wsdl
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://xsd_ENTITY.test.apache.org"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="XSD_ENTITY"
+ targetNamespace="http://xsd_ENTITY.test.apache.org">
+ <wsdl:types>
+ <xsd:schema
+ targetNamespace="http://xsd_ENTITY.test.apache.org"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="asNonNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:ENTITY" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="AsNonNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:ENTITY" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:ENTITY" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:ENTITY" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="RequiredAttributeElement">
+ <xsd:attribute name="requiredAttribute" type="xsd:ENTITY"
+ use="required" />
+ </xsd:complexType>
+ <xsd:element name="asRequiredAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asRequiredAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="OptionalAttributeElement">
+ <xsd:attribute name="optionalAttribute" type="xsd:ENTITY"
+ use="optional" />
+ </xsd:complexType>
+ <xsd:element name="asOptionalAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asOptionalAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:ENTITY" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:ENTITY" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="SimpleComplexType">
+ <xsd:sequence>
+ <xsd:element name="complexTypeElement"
+ type="xsd:ENTITY" minOccurs="1" maxOccurs="1" nillable="false" />
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="asComplexTypeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asComplexTypeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="asNonNillableElementResponse">
+ <wsdl:part element="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:message>
+ <wsdl:message name="asNonNillableElementRequest">
+ <wsdl:part element="tns:AsNonNillableElementRequest"
+ name="parameters" />
+ </wsdl:message>
+ <wsdl:message name="asNillableElementResponse">
+ <wsdl:part name="asNillableElementResponse"
+ element="tns:asNillableElementResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asNillableElementRequest">
+ <wsdl:part name="asNillableElementRequest"
+ element="tns:asNillableElementRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeResponse">
+ <wsdl:part name="asRequiredAttributeResponse"
+ element="tns:asRequiredAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeRequest">
+ <wsdl:part name="asRequiredAttributeRequest"
+ element="tns:asRequiredAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeResponse">
+ <wsdl:part name="asOptionalAttributeResponse"
+ element="tns:asOptionalAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeRequest">
+ <wsdl:part name="asOptionalAttributeRequest"
+ element="tns:asOptionalAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayResponse">
+ <wsdl:part name="asArrayResponse"
+ element="tns:asArrayResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayRequest">
+ <wsdl:part name="asArrayRequest" element="tns:asArrayRequest"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeResponse">
+ <wsdl:part name="asComplexTypeResponse"
+ element="tns:asComplexTypeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeRequest">
+ <wsdl:part name="asComplexTypeRequest"
+ element="tns:asComplexTypeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="XSD_ENTITYPort">
+ <wsdl:operation name="asNonNillableElement">
+ <wsdl:input message="tns:asNonNillableElementRequest"
+ name="asNonNillableElementRequest" />
+ <wsdl:output message="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <wsdl:input message="tns:asNillableElementRequest"
+ name="asNillableElementRequest">
+ </wsdl:input>
+ <wsdl:output message="tns:asNillableElementResponse"
+ name="asNillableElementResponse">
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <wsdl:input message="tns:asRequiredAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asRequiredAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <wsdl:input message="tns:asOptionalAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asOptionalAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <wsdl:input message="tns:asArrayRequest"></wsdl:input>
+ <wsdl:output message="tns:asArrayResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <wsdl:input message="tns:asComplexTypeRequest"></wsdl:input>
+ <wsdl:output message="tns:asComplexTypeResponse"></wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="XSD_ENTITYSOAP" type="tns:XSD_ENTITYPort">
+ <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="asNonNillableElement">
+ <soap:operation
+ soapAction="XSD_ENTITYPort#asNonNillableElement" style="document" />
+ <wsdl:input name="asNonNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNonNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <soap:operation soapAction="XSD_ENTITYPort#asNillableElement"
+ style="document" />
+ <wsdl:input name="asNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <soap:operation
+ soapAction="XSD_ENTITYPort#asRequiredAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <soap:operation
+ soapAction="XSD_ENTITYPort#asOptionalAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <soap:operation soapAction="XSD_ENTITYPort#asArray" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <soap:operation soapAction="XSD_ENTITYPort#asComplexType"
+ style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="XSD_ENTITY">
+ <wsdl:port binding="tns:XSD_ENTITYSOAP"
+ name="XSD_ENTITYSOAP">
+ <soap:address
+ location="http://localhost:9080/XSD_ENTITY/services/XSD_ENTITYPort" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/test/resources/wsdl/XSD_ID.wsdl b/test/resources/wsdl/XSD_ID.wsdl
new file mode 100644
index 0000000..06f931b
--- /dev/null
+++ b/test/resources/wsdl/XSD_ID.wsdl
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://xsd_ID.test.apache.org"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="XSD_ID"
+ targetNamespace="http://xsd_ID.test.apache.org">
+ <wsdl:types>
+ <xsd:schema
+ targetNamespace="http://xsd_ID.test.apache.org"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="asNonNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:ID" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="AsNonNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:ID" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:ID" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:ID" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="RequiredAttributeElement">
+ <xsd:attribute name="requiredAttribute" type="xsd:ID"
+ use="required" />
+ </xsd:complexType>
+ <xsd:element name="asRequiredAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asRequiredAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="OptionalAttributeElement">
+ <xsd:attribute name="optionalAttribute" type="xsd:ID"
+ use="optional" />
+ </xsd:complexType>
+ <xsd:element name="asOptionalAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asOptionalAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:ID" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:ID" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="SimpleComplexType">
+ <xsd:sequence>
+ <xsd:element name="complexTypeElement"
+ type="xsd:ID" minOccurs="1" maxOccurs="1" nillable="false" />
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="asComplexTypeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asComplexTypeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="asNonNillableElementResponse">
+ <wsdl:part element="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:message>
+ <wsdl:message name="asNonNillableElementRequest">
+ <wsdl:part element="tns:AsNonNillableElementRequest"
+ name="parameters" />
+ </wsdl:message>
+ <wsdl:message name="asNillableElementResponse">
+ <wsdl:part name="asNillableElementResponse"
+ element="tns:asNillableElementResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asNillableElementRequest">
+ <wsdl:part name="asNillableElementRequest"
+ element="tns:asNillableElementRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeResponse">
+ <wsdl:part name="asRequiredAttributeResponse"
+ element="tns:asRequiredAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeRequest">
+ <wsdl:part name="asRequiredAttributeRequest"
+ element="tns:asRequiredAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeResponse">
+ <wsdl:part name="asOptionalAttributeResponse"
+ element="tns:asOptionalAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeRequest">
+ <wsdl:part name="asOptionalAttributeRequest"
+ element="tns:asOptionalAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayResponse">
+ <wsdl:part name="asArrayResponse"
+ element="tns:asArrayResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayRequest">
+ <wsdl:part name="asArrayRequest" element="tns:asArrayRequest"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeResponse">
+ <wsdl:part name="asComplexTypeResponse"
+ element="tns:asComplexTypeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeRequest">
+ <wsdl:part name="asComplexTypeRequest"
+ element="tns:asComplexTypeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="XSD_IDPort">
+ <wsdl:operation name="asNonNillableElement">
+ <wsdl:input message="tns:asNonNillableElementRequest"
+ name="asNonNillableElementRequest" />
+ <wsdl:output message="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <wsdl:input message="tns:asNillableElementRequest"
+ name="asNillableElementRequest">
+ </wsdl:input>
+ <wsdl:output message="tns:asNillableElementResponse"
+ name="asNillableElementResponse">
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <wsdl:input message="tns:asRequiredAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asRequiredAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <wsdl:input message="tns:asOptionalAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asOptionalAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <wsdl:input message="tns:asArrayRequest"></wsdl:input>
+ <wsdl:output message="tns:asArrayResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <wsdl:input message="tns:asComplexTypeRequest"></wsdl:input>
+ <wsdl:output message="tns:asComplexTypeResponse"></wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="XSD_IDSOAP" type="tns:XSD_IDPort">
+ <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="asNonNillableElement">
+ <soap:operation
+ soapAction="XSD_IDPort#asNonNillableElement" style="document" />
+ <wsdl:input name="asNonNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNonNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <soap:operation soapAction="XSD_IDPort#asNillableElement"
+ style="document" />
+ <wsdl:input name="asNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <soap:operation
+ soapAction="XSD_IDPort#asRequiredAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <soap:operation
+ soapAction="XSD_IDPort#asOptionalAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <soap:operation soapAction="XSD_IDPort#asArray" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <soap:operation soapAction="XSD_IDPort#asComplexType"
+ style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="XSD_ID">
+ <wsdl:port binding="tns:XSD_IDSOAP"
+ name="XSD_IDSOAP">
+ <soap:address
+ location="http://localhost:9080/XSD_ID/services/XSD_IDPort" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/test/resources/wsdl/XSD_IDREF.wsdl b/test/resources/wsdl/XSD_IDREF.wsdl
new file mode 100644
index 0000000..8306b44
--- /dev/null
+++ b/test/resources/wsdl/XSD_IDREF.wsdl
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://xsd_IDREF.test.apache.org"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="XSD_IDREF"
+ targetNamespace="http://xsd_IDREF.test.apache.org">
+ <wsdl:types>
+ <xsd:schema
+ targetNamespace="http://xsd_IDREF.test.apache.org"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="asNonNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:IDREF" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="AsNonNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:IDREF" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:IDREF" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:IDREF" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="RequiredAttributeElement">
+ <xsd:attribute name="requiredAttribute" type="xsd:IDREF"
+ use="required" />
+ </xsd:complexType>
+ <xsd:element name="asRequiredAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asRequiredAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="OptionalAttributeElement">
+ <xsd:attribute name="optionalAttribute" type="xsd:IDREF"
+ use="optional" />
+ </xsd:complexType>
+ <xsd:element name="asOptionalAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asOptionalAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:IDREF" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:IDREF" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="SimpleComplexType">
+ <xsd:sequence>
+ <xsd:element name="complexTypeElement"
+ type="xsd:IDREF" minOccurs="1" maxOccurs="1" nillable="false" />
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="asComplexTypeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asComplexTypeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="asNonNillableElementResponse">
+ <wsdl:part element="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:message>
+ <wsdl:message name="asNonNillableElementRequest">
+ <wsdl:part element="tns:AsNonNillableElementRequest"
+ name="parameters" />
+ </wsdl:message>
+ <wsdl:message name="asNillableElementResponse">
+ <wsdl:part name="asNillableElementResponse"
+ element="tns:asNillableElementResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asNillableElementRequest">
+ <wsdl:part name="asNillableElementRequest"
+ element="tns:asNillableElementRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeResponse">
+ <wsdl:part name="asRequiredAttributeResponse"
+ element="tns:asRequiredAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeRequest">
+ <wsdl:part name="asRequiredAttributeRequest"
+ element="tns:asRequiredAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeResponse">
+ <wsdl:part name="asOptionalAttributeResponse"
+ element="tns:asOptionalAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeRequest">
+ <wsdl:part name="asOptionalAttributeRequest"
+ element="tns:asOptionalAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayResponse">
+ <wsdl:part name="asArrayResponse"
+ element="tns:asArrayResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayRequest">
+ <wsdl:part name="asArrayRequest" element="tns:asArrayRequest"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeResponse">
+ <wsdl:part name="asComplexTypeResponse"
+ element="tns:asComplexTypeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeRequest">
+ <wsdl:part name="asComplexTypeRequest"
+ element="tns:asComplexTypeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="XSD_IDREFPort">
+ <wsdl:operation name="asNonNillableElement">
+ <wsdl:input message="tns:asNonNillableElementRequest"
+ name="asNonNillableElementRequest" />
+ <wsdl:output message="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <wsdl:input message="tns:asNillableElementRequest"
+ name="asNillableElementRequest">
+ </wsdl:input>
+ <wsdl:output message="tns:asNillableElementResponse"
+ name="asNillableElementResponse">
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <wsdl:input message="tns:asRequiredAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asRequiredAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <wsdl:input message="tns:asOptionalAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asOptionalAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <wsdl:input message="tns:asArrayRequest"></wsdl:input>
+ <wsdl:output message="tns:asArrayResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <wsdl:input message="tns:asComplexTypeRequest"></wsdl:input>
+ <wsdl:output message="tns:asComplexTypeResponse"></wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="XSD_IDREFSOAP" type="tns:XSD_IDREFPort">
+ <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="asNonNillableElement">
+ <soap:operation
+ soapAction="XSD_IDREFPort#asNonNillableElement" style="document" />
+ <wsdl:input name="asNonNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNonNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <soap:operation soapAction="XSD_IDREFPort#asNillableElement"
+ style="document" />
+ <wsdl:input name="asNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <soap:operation
+ soapAction="XSD_IDREFPort#asRequiredAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <soap:operation
+ soapAction="XSD_IDREFPort#asOptionalAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <soap:operation soapAction="XSD_IDREFPort#asArray" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <soap:operation soapAction="XSD_IDREFPort#asComplexType"
+ style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="XSD_IDREF">
+ <wsdl:port binding="tns:XSD_IDREFSOAP"
+ name="XSD_IDREFSOAP">
+ <soap:address
+ location="http://localhost:9080/XSD_IDREF/services/XSD_IDREFPort" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/test/resources/wsdl/XSD_IDREFS.wsdl b/test/resources/wsdl/XSD_IDREFS.wsdl
new file mode 100644
index 0000000..cdec7fb
--- /dev/null
+++ b/test/resources/wsdl/XSD_IDREFS.wsdl
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://xsd_IDREFS.test.apache.org"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="XSD_IDREFS"
+ targetNamespace="http://xsd_IDREFS.test.apache.org">
+ <wsdl:types>
+ <xsd:schema
+ targetNamespace="http://xsd_IDREFS.test.apache.org"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="asNonNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:IDREFS" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="AsNonNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:IDREFS" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:IDREFS" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:IDREFS" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="RequiredAttributeElement">
+ <xsd:attribute name="requiredAttribute" type="xsd:IDREFS"
+ use="required" />
+ </xsd:complexType>
+ <xsd:element name="asRequiredAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asRequiredAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="OptionalAttributeElement">
+ <xsd:attribute name="optionalAttribute" type="xsd:IDREFS"
+ use="optional" />
+ </xsd:complexType>
+ <xsd:element name="asOptionalAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asOptionalAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:IDREFS" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:IDREFS" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="SimpleComplexType">
+ <xsd:sequence>
+ <xsd:element name="complexTypeElement"
+ type="xsd:IDREFS" minOccurs="1" maxOccurs="1" nillable="false" />
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="asComplexTypeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asComplexTypeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="asNonNillableElementResponse">
+ <wsdl:part element="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:message>
+ <wsdl:message name="asNonNillableElementRequest">
+ <wsdl:part element="tns:AsNonNillableElementRequest"
+ name="parameters" />
+ </wsdl:message>
+ <wsdl:message name="asNillableElementResponse">
+ <wsdl:part name="asNillableElementResponse"
+ element="tns:asNillableElementResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asNillableElementRequest">
+ <wsdl:part name="asNillableElementRequest"
+ element="tns:asNillableElementRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeResponse">
+ <wsdl:part name="asRequiredAttributeResponse"
+ element="tns:asRequiredAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeRequest">
+ <wsdl:part name="asRequiredAttributeRequest"
+ element="tns:asRequiredAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeResponse">
+ <wsdl:part name="asOptionalAttributeResponse"
+ element="tns:asOptionalAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeRequest">
+ <wsdl:part name="asOptionalAttributeRequest"
+ element="tns:asOptionalAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayResponse">
+ <wsdl:part name="asArrayResponse"
+ element="tns:asArrayResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayRequest">
+ <wsdl:part name="asArrayRequest" element="tns:asArrayRequest"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeResponse">
+ <wsdl:part name="asComplexTypeResponse"
+ element="tns:asComplexTypeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeRequest">
+ <wsdl:part name="asComplexTypeRequest"
+ element="tns:asComplexTypeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="XSD_IDREFSPort">
+ <wsdl:operation name="asNonNillableElement">
+ <wsdl:input message="tns:asNonNillableElementRequest"
+ name="asNonNillableElementRequest" />
+ <wsdl:output message="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <wsdl:input message="tns:asNillableElementRequest"
+ name="asNillableElementRequest">
+ </wsdl:input>
+ <wsdl:output message="tns:asNillableElementResponse"
+ name="asNillableElementResponse">
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <wsdl:input message="tns:asRequiredAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asRequiredAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <wsdl:input message="tns:asOptionalAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asOptionalAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <wsdl:input message="tns:asArrayRequest"></wsdl:input>
+ <wsdl:output message="tns:asArrayResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <wsdl:input message="tns:asComplexTypeRequest"></wsdl:input>
+ <wsdl:output message="tns:asComplexTypeResponse"></wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="XSD_IDREFSSOAP" type="tns:XSD_IDREFSPort">
+ <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="asNonNillableElement">
+ <soap:operation
+ soapAction="XSD_IDREFSPort#asNonNillableElement" style="document" />
+ <wsdl:input name="asNonNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNonNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <soap:operation soapAction="XSD_IDREFSPort#asNillableElement"
+ style="document" />
+ <wsdl:input name="asNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <soap:operation
+ soapAction="XSD_IDREFSPort#asRequiredAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <soap:operation
+ soapAction="XSD_IDREFSPort#asOptionalAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <soap:operation soapAction="XSD_IDREFSPort#asArray" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <soap:operation soapAction="XSD_IDREFSPort#asComplexType"
+ style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="XSD_IDREFS">
+ <wsdl:port binding="tns:XSD_IDREFSSOAP"
+ name="XSD_IDREFSSOAP">
+ <soap:address
+ location="http://localhost:9080/XSD_IDREFS/services/XSD_IDREFSPort" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/test/resources/wsdl/XSD_NCName.wsdl b/test/resources/wsdl/XSD_NCName.wsdl
new file mode 100644
index 0000000..b65e656
--- /dev/null
+++ b/test/resources/wsdl/XSD_NCName.wsdl
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://xsd_NCName.test.apache.org"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="XSD_NCName"
+ targetNamespace="http://xsd_NCName.test.apache.org">
+ <wsdl:types>
+ <xsd:schema
+ targetNamespace="http://xsd_NCName.test.apache.org"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="asNonNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:NCName" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="AsNonNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:NCName" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:NCName" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:NCName" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="RequiredAttributeElement">
+ <xsd:attribute name="requiredAttribute" type="xsd:NCName"
+ use="required" />
+ </xsd:complexType>
+ <xsd:element name="asRequiredAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asRequiredAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="OptionalAttributeElement">
+ <xsd:attribute name="optionalAttribute" type="xsd:NCName"
+ use="optional" />
+ </xsd:complexType>
+ <xsd:element name="asOptionalAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asOptionalAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:NCName" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:NCName" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="SimpleComplexType">
+ <xsd:sequence>
+ <xsd:element name="complexTypeElement"
+ type="xsd:NCName" minOccurs="1" maxOccurs="1" nillable="false" />
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="asComplexTypeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asComplexTypeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="asNonNillableElementResponse">
+ <wsdl:part element="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:message>
+ <wsdl:message name="asNonNillableElementRequest">
+ <wsdl:part element="tns:AsNonNillableElementRequest"
+ name="parameters" />
+ </wsdl:message>
+ <wsdl:message name="asNillableElementResponse">
+ <wsdl:part name="asNillableElementResponse"
+ element="tns:asNillableElementResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asNillableElementRequest">
+ <wsdl:part name="asNillableElementRequest"
+ element="tns:asNillableElementRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeResponse">
+ <wsdl:part name="asRequiredAttributeResponse"
+ element="tns:asRequiredAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeRequest">
+ <wsdl:part name="asRequiredAttributeRequest"
+ element="tns:asRequiredAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeResponse">
+ <wsdl:part name="asOptionalAttributeResponse"
+ element="tns:asOptionalAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeRequest">
+ <wsdl:part name="asOptionalAttributeRequest"
+ element="tns:asOptionalAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayResponse">
+ <wsdl:part name="asArrayResponse"
+ element="tns:asArrayResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayRequest">
+ <wsdl:part name="asArrayRequest" element="tns:asArrayRequest"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeResponse">
+ <wsdl:part name="asComplexTypeResponse"
+ element="tns:asComplexTypeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeRequest">
+ <wsdl:part name="asComplexTypeRequest"
+ element="tns:asComplexTypeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="XSD_NCName">
+ <wsdl:operation name="asNonNillableElement">
+ <wsdl:input message="tns:asNonNillableElementRequest"
+ name="asNonNillableElementRequest" />
+ <wsdl:output message="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <wsdl:input message="tns:asNillableElementRequest"
+ name="asNillableElementRequest">
+ </wsdl:input>
+ <wsdl:output message="tns:asNillableElementResponse"
+ name="asNillableElementResponse">
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <wsdl:input message="tns:asRequiredAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asRequiredAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <wsdl:input message="tns:asOptionalAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asOptionalAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <wsdl:input message="tns:asArrayRequest"></wsdl:input>
+ <wsdl:output message="tns:asArrayResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <wsdl:input message="tns:asComplexTypeRequest"></wsdl:input>
+ <wsdl:output message="tns:asComplexTypeResponse"></wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="XSD_NCNameSOAP" type="tns:XSD_NCName">
+ <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="asNonNillableElement">
+ <soap:operation
+ soapAction="XSD_NCName#asNonNillableElement" style="document" />
+ <wsdl:input name="asNonNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNonNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <soap:operation soapAction="XSD_NCName#asNillableElement"
+ style="document" />
+ <wsdl:input name="asNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <soap:operation
+ soapAction="XSD_NCName#asRequiredAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <soap:operation
+ soapAction="XSD_NCName#asOptionalAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <soap:operation soapAction="XSD_NCName#asArray" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <soap:operation soapAction="XSD_NCName#asComplexType"
+ style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="XSD_NCName">
+ <wsdl:port binding="tns:XSD_NCNameSOAP"
+ name="XSD_NCNameSOAP">
+ <soap:address
+ location="http://localhost:9080/XSD_NCName/services/XSD_NCName" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/test/resources/wsdl/XSD_NMTOKEN.wsdl b/test/resources/wsdl/XSD_NMTOKEN.wsdl
new file mode 100644
index 0000000..184d47c
--- /dev/null
+++ b/test/resources/wsdl/XSD_NMTOKEN.wsdl
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://xsd_NMTOKEN.test.apache.org"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="XSD_NMTOKEN"
+ targetNamespace="http://xsd_NMTOKEN.test.apache.org">
+ <wsdl:types>
+ <xsd:schema
+ targetNamespace="http://xsd_NMTOKEN.test.apache.org"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="asNonNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:NMTOKEN" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="AsNonNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:NMTOKEN" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:NMTOKEN" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:NMTOKEN" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="RequiredAttributeElement">
+ <xsd:attribute name="requiredAttribute" type="xsd:NMTOKEN"
+ use="required" />
+ </xsd:complexType>
+ <xsd:element name="asRequiredAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asRequiredAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="OptionalAttributeElement">
+ <xsd:attribute name="optionalAttribute" type="xsd:NMTOKEN"
+ use="optional" />
+ </xsd:complexType>
+ <xsd:element name="asOptionalAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asOptionalAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:NMTOKEN" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:NMTOKEN" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="SimpleComplexType">
+ <xsd:sequence>
+ <xsd:element name="complexTypeElement"
+ type="xsd:NMTOKEN" minOccurs="1" maxOccurs="1" nillable="false" />
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="asComplexTypeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asComplexTypeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="asNonNillableElementResponse">
+ <wsdl:part element="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:message>
+ <wsdl:message name="asNonNillableElementRequest">
+ <wsdl:part element="tns:AsNonNillableElementRequest"
+ name="parameters" />
+ </wsdl:message>
+ <wsdl:message name="asNillableElementResponse">
+ <wsdl:part name="asNillableElementResponse"
+ element="tns:asNillableElementResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asNillableElementRequest">
+ <wsdl:part name="asNillableElementRequest"
+ element="tns:asNillableElementRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeResponse">
+ <wsdl:part name="asRequiredAttributeResponse"
+ element="tns:asRequiredAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeRequest">
+ <wsdl:part name="asRequiredAttributeRequest"
+ element="tns:asRequiredAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeResponse">
+ <wsdl:part name="asOptionalAttributeResponse"
+ element="tns:asOptionalAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeRequest">
+ <wsdl:part name="asOptionalAttributeRequest"
+ element="tns:asOptionalAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayResponse">
+ <wsdl:part name="asArrayResponse"
+ element="tns:asArrayResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayRequest">
+ <wsdl:part name="asArrayRequest" element="tns:asArrayRequest"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeResponse">
+ <wsdl:part name="asComplexTypeResponse"
+ element="tns:asComplexTypeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeRequest">
+ <wsdl:part name="asComplexTypeRequest"
+ element="tns:asComplexTypeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="XSD_NMTOKENPort">
+ <wsdl:operation name="asNonNillableElement">
+ <wsdl:input message="tns:asNonNillableElementRequest"
+ name="asNonNillableElementRequest" />
+ <wsdl:output message="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <wsdl:input message="tns:asNillableElementRequest"
+ name="asNillableElementRequest">
+ </wsdl:input>
+ <wsdl:output message="tns:asNillableElementResponse"
+ name="asNillableElementResponse">
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <wsdl:input message="tns:asRequiredAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asRequiredAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <wsdl:input message="tns:asOptionalAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asOptionalAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <wsdl:input message="tns:asArrayRequest"></wsdl:input>
+ <wsdl:output message="tns:asArrayResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <wsdl:input message="tns:asComplexTypeRequest"></wsdl:input>
+ <wsdl:output message="tns:asComplexTypeResponse"></wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="XSD_NMTOKENSOAP" type="tns:XSD_NMTOKENPort">
+ <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="asNonNillableElement">
+ <soap:operation
+ soapAction="XSD_NMTOKENPort#asNonNillableElement" style="document" />
+ <wsdl:input name="asNonNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNonNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <soap:operation soapAction="XSD_NMTOKENPort#asNillableElement"
+ style="document" />
+ <wsdl:input name="asNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <soap:operation
+ soapAction="XSD_NMTOKENPort#asRequiredAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <soap:operation
+ soapAction="XSD_NMTOKENPort#asOptionalAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <soap:operation soapAction="XSD_NMTOKENPort#asArray" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <soap:operation soapAction="XSD_NMTOKENPort#asComplexType"
+ style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="XSD_NMTOKEN">
+ <wsdl:port binding="tns:XSD_NMTOKENSOAP"
+ name="XSD_NMTOKENSOAP">
+ <soap:address
+ location="http://localhost:9080/XSD_NMTOKEN/services/XSD_NMTOKENPort" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/test/resources/wsdl/XSD_NMTOKENS.wsdl b/test/resources/wsdl/XSD_NMTOKENS.wsdl
new file mode 100644
index 0000000..6100b1a
--- /dev/null
+++ b/test/resources/wsdl/XSD_NMTOKENS.wsdl
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://xsd_NMTOKENS.test.apache.org"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="XSD_NMTOKENS"
+ targetNamespace="http://xsd_NMTOKENS.test.apache.org">
+ <wsdl:types>
+ <xsd:schema
+ targetNamespace="http://xsd_NMTOKENS.test.apache.org"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="asNonNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:NMTOKENS" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="AsNonNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:NMTOKENS" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:NMTOKENS" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:NMTOKENS" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="RequiredAttributeElement">
+ <xsd:attribute name="requiredAttribute" type="xsd:NMTOKENS"
+ use="required" />
+ </xsd:complexType>
+ <xsd:element name="asRequiredAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asRequiredAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="OptionalAttributeElement">
+ <xsd:attribute name="optionalAttribute" type="xsd:NMTOKENS"
+ use="optional" />
+ </xsd:complexType>
+ <xsd:element name="asOptionalAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asOptionalAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:NMTOKENS" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:NMTOKENS" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="SimpleComplexType">
+ <xsd:sequence>
+ <xsd:element name="complexTypeElement"
+ type="xsd:NMTOKENS" minOccurs="1" maxOccurs="1" nillable="false" />
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="asComplexTypeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asComplexTypeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="asNonNillableElementResponse">
+ <wsdl:part element="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:message>
+ <wsdl:message name="asNonNillableElementRequest">
+ <wsdl:part element="tns:AsNonNillableElementRequest"
+ name="parameters" />
+ </wsdl:message>
+ <wsdl:message name="asNillableElementResponse">
+ <wsdl:part name="asNillableElementResponse"
+ element="tns:asNillableElementResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asNillableElementRequest">
+ <wsdl:part name="asNillableElementRequest"
+ element="tns:asNillableElementRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeResponse">
+ <wsdl:part name="asRequiredAttributeResponse"
+ element="tns:asRequiredAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeRequest">
+ <wsdl:part name="asRequiredAttributeRequest"
+ element="tns:asRequiredAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeResponse">
+ <wsdl:part name="asOptionalAttributeResponse"
+ element="tns:asOptionalAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeRequest">
+ <wsdl:part name="asOptionalAttributeRequest"
+ element="tns:asOptionalAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayResponse">
+ <wsdl:part name="asArrayResponse"
+ element="tns:asArrayResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayRequest">
+ <wsdl:part name="asArrayRequest" element="tns:asArrayRequest"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeResponse">
+ <wsdl:part name="asComplexTypeResponse"
+ element="tns:asComplexTypeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeRequest">
+ <wsdl:part name="asComplexTypeRequest"
+ element="tns:asComplexTypeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="XSD_NMTOKENSPort">
+ <wsdl:operation name="asNonNillableElement">
+ <wsdl:input message="tns:asNonNillableElementRequest"
+ name="asNonNillableElementRequest" />
+ <wsdl:output message="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <wsdl:input message="tns:asNillableElementRequest"
+ name="asNillableElementRequest">
+ </wsdl:input>
+ <wsdl:output message="tns:asNillableElementResponse"
+ name="asNillableElementResponse">
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <wsdl:input message="tns:asRequiredAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asRequiredAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <wsdl:input message="tns:asOptionalAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asOptionalAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <wsdl:input message="tns:asArrayRequest"></wsdl:input>
+ <wsdl:output message="tns:asArrayResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <wsdl:input message="tns:asComplexTypeRequest"></wsdl:input>
+ <wsdl:output message="tns:asComplexTypeResponse"></wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="XSD_NMTOKENSSOAP" type="tns:XSD_NMTOKENSPort">
+ <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="asNonNillableElement">
+ <soap:operation
+ soapAction="XSD_NMTOKENSPort#asNonNillableElement" style="document" />
+ <wsdl:input name="asNonNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNonNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <soap:operation soapAction="XSD_NMTOKENSPort#asNillableElement"
+ style="document" />
+ <wsdl:input name="asNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <soap:operation
+ soapAction="XSD_NMTOKENSPort#asRequiredAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <soap:operation
+ soapAction="XSD_NMTOKENSPort#asOptionalAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <soap:operation soapAction="XSD_NMTOKENSPort#asArray" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <soap:operation soapAction="XSD_NMTOKENSPort#asComplexType"
+ style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="XSD_NMTOKENS">
+ <wsdl:port binding="tns:XSD_NMTOKENSSOAP"
+ name="XSD_NMTOKENSSOAP">
+ <soap:address
+ location="http://localhost:9080/XSD_NMTOKENS/services/XSD_NMTOKENSPort" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/test/resources/wsdl/XSD_NOTATION.wsdl b/test/resources/wsdl/XSD_NOTATION.wsdl
new file mode 100644
index 0000000..30c0fb4
--- /dev/null
+++ b/test/resources/wsdl/XSD_NOTATION.wsdl
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://xsd_NOTATION.test.apache.org"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://xsd_NOTATION.test.apache.org">
+ <wsdl:types>
+ <xsd:schema
+ targetNamespace="http://xsd_NOTATION.test.apache.org"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="asNonNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:notation" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="AsNonNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:notation" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:notation" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:notation" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="RequiredAttributeElement">
+ <xsd:attribute name="requiredAttribute" type="xsd:notation"
+ use="required" />
+ </xsd:complexType>
+ <xsd:element name="asRequiredAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asRequiredAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="OptionalAttributeElement">
+ <xsd:attribute name="optionalAttribute" type="xsd:notation"
+ use="optional" />
+ </xsd:complexType>
+ <xsd:element name="asOptionalAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asOptionalAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:notation" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:notation" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="SimpleComplexType">
+ <xsd:sequence>
+ <xsd:element name="complexTypeElement"
+ type="xsd:notation" minOccurs="1" maxOccurs="1" nillable="false" />
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="asComplexTypeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asComplexTypeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="asNonNillableElementResponse">
+ <wsdl:part element="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:message>
+ <wsdl:message name="asNonNillableElementRequest">
+ <wsdl:part element="tns:AsNonNillableElementRequest"
+ name="parameters" />
+ </wsdl:message>
+ <wsdl:message name="asNillableElementResponse">
+ <wsdl:part name="asNillableElementResponse"
+ element="tns:asNillableElementResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asNillableElementRequest">
+ <wsdl:part name="asNillableElementRequest"
+ element="tns:asNillableElementRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeResponse">
+ <wsdl:part name="asRequiredAttributeResponse"
+ element="tns:asRequiredAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeRequest">
+ <wsdl:part name="asRequiredAttributeRequest"
+ element="tns:asRequiredAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeResponse">
+ <wsdl:part name="asOptionalAttributeResponse"
+ element="tns:asOptionalAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeRequest">
+ <wsdl:part name="asOptionalAttributeRequest"
+ element="tns:asOptionalAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayResponse">
+ <wsdl:part name="asArrayResponse"
+ element="tns:asArrayResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayRequest">
+ <wsdl:part name="asArrayRequest" element="tns:asArrayRequest"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeResponse">
+ <wsdl:part name="asComplexTypeResponse"
+ element="tns:asComplexTypeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeRequest">
+ <wsdl:part name="asComplexTypeRequest"
+ element="tns:asComplexTypeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="XSD_NOTATIONPort">
+ <wsdl:operation name="asNonNillableElement">
+ <wsdl:input message="tns:asNonNillableElementRequest"
+ name="asNonNillableElementRequest" />
+ <wsdl:output message="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <wsdl:input message="tns:asNillableElementRequest"
+ name="asNillableElementRequest">
+ </wsdl:input>
+ <wsdl:output message="tns:asNillableElementResponse"
+ name="asNillableElementResponse">
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <wsdl:input message="tns:asRequiredAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asRequiredAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <wsdl:input message="tns:asOptionalAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asOptionalAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <wsdl:input message="tns:asArrayRequest"></wsdl:input>
+ <wsdl:output message="tns:asArrayResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <wsdl:input message="tns:asComplexTypeRequest"></wsdl:input>
+ <wsdl:output message="tns:asComplexTypeResponse"></wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="XSD_NOTATIONSOAP" type="tns:XSD_NOTATIONPort">
+ <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="asNonNillableElement">
+ <soap:operation
+ soapAction="XSD_NOTATIONPort#asNonNillableElement" style="document" />
+ <wsdl:input name="asNonNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNonNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <soap:operation soapAction="XSD_NOTATIONPort#asNillableElement"
+ style="document" />
+ <wsdl:input name="asNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <soap:operation
+ soapAction="XSD_NOTATIONPort#asRequiredAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <soap:operation
+ soapAction="XSD_NOTATIONPort#asOptionalAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <soap:operation soapAction="XSD_NOTATIONPort#asArray" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <soap:operation soapAction="XSD_NOTATIONPort#asComplexType"
+ style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="XSD_NOTATION">
+ <wsdl:port binding="tns:XSD_NOTATIONSOAP"
+ name="XSD_NOTATIONSOAP">
+ <soap:address
+ location="http://localhost:9080/XSD_NOTATION/services/XSD_NOTATIONPort" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/test/resources/wsdl/XSD_Name.wsdl b/test/resources/wsdl/XSD_Name.wsdl
new file mode 100644
index 0000000..5198b1c
--- /dev/null
+++ b/test/resources/wsdl/XSD_Name.wsdl
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://xsd_Name.test.apache.org"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="XSD_Name"
+ targetNamespace="http://xsd_Name.test.apache.org">
+ <wsdl:types>
+ <xsd:schema
+ targetNamespace="http://xsd_Name.test.apache.org"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="asNonNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:Name" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="AsNonNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:Name" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:Name" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:Name" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="RequiredAttributeElement">
+ <xsd:attribute name="requiredAttribute" type="xsd:Name"
+ use="required" />
+ </xsd:complexType>
+ <xsd:element name="asRequiredAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asRequiredAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="OptionalAttributeElement">
+ <xsd:attribute name="optionalAttribute" type="xsd:Name"
+ use="optional" />
+ </xsd:complexType>
+ <xsd:element name="asOptionalAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asOptionalAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:Name" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:Name" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="SimpleComplexType">
+ <xsd:sequence>
+ <xsd:element name="complexTypeElement"
+ type="xsd:Name" minOccurs="1" maxOccurs="1" nillable="false" />
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="asComplexTypeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asComplexTypeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="asNonNillableElementResponse">
+ <wsdl:part element="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:message>
+ <wsdl:message name="asNonNillableElementRequest">
+ <wsdl:part element="tns:AsNonNillableElementRequest"
+ name="parameters" />
+ </wsdl:message>
+ <wsdl:message name="asNillableElementResponse">
+ <wsdl:part name="asNillableElementResponse"
+ element="tns:asNillableElementResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asNillableElementRequest">
+ <wsdl:part name="asNillableElementRequest"
+ element="tns:asNillableElementRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeResponse">
+ <wsdl:part name="asRequiredAttributeResponse"
+ element="tns:asRequiredAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeRequest">
+ <wsdl:part name="asRequiredAttributeRequest"
+ element="tns:asRequiredAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeResponse">
+ <wsdl:part name="asOptionalAttributeResponse"
+ element="tns:asOptionalAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeRequest">
+ <wsdl:part name="asOptionalAttributeRequest"
+ element="tns:asOptionalAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayResponse">
+ <wsdl:part name="asArrayResponse"
+ element="tns:asArrayResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayRequest">
+ <wsdl:part name="asArrayRequest" element="tns:asArrayRequest"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeResponse">
+ <wsdl:part name="asComplexTypeResponse"
+ element="tns:asComplexTypeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeRequest">
+ <wsdl:part name="asComplexTypeRequest"
+ element="tns:asComplexTypeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="XSD_Name">
+ <wsdl:operation name="asNonNillableElement">
+ <wsdl:input message="tns:asNonNillableElementRequest"
+ name="asNonNillableElementRequest" />
+ <wsdl:output message="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <wsdl:input message="tns:asNillableElementRequest"
+ name="asNillableElementRequest">
+ </wsdl:input>
+ <wsdl:output message="tns:asNillableElementResponse"
+ name="asNillableElementResponse">
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <wsdl:input message="tns:asRequiredAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asRequiredAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <wsdl:input message="tns:asOptionalAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asOptionalAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <wsdl:input message="tns:asArrayRequest"></wsdl:input>
+ <wsdl:output message="tns:asArrayResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <wsdl:input message="tns:asComplexTypeRequest"></wsdl:input>
+ <wsdl:output message="tns:asComplexTypeResponse"></wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="XSD_NameSOAP" type="tns:XSD_Name">
+ <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="asNonNillableElement">
+ <soap:operation
+ soapAction="XSD_Name#asNonNillableElement" style="document" />
+ <wsdl:input name="asNonNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNonNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <soap:operation soapAction="XSD_Name#asNillableElement"
+ style="document" />
+ <wsdl:input name="asNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <soap:operation
+ soapAction="XSD_Name#asRequiredAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <soap:operation
+ soapAction="XSD_Name#asOptionalAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <soap:operation soapAction="XSD_Name#asArray" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <soap:operation soapAction="XSD_Name#asComplexType"
+ style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="XSD_Name">
+ <wsdl:port binding="tns:XSD_NameSOAP"
+ name="XSD_NameSOAP">
+ <soap:address
+ location="http://localhost:9080/XSD_Name/services/XSD_Name" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/test/resources/wsdl/XSD_QName.wsdl b/test/resources/wsdl/XSD_QName.wsdl
new file mode 100644
index 0000000..7fca9ff
--- /dev/null
+++ b/test/resources/wsdl/XSD_QName.wsdl
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://xsd_QName.test.apache.org"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="XSD_QName"
+ targetNamespace="http://xsd_QName.test.apache.org">
+ <wsdl:types>
+ <xsd:schema
+ targetNamespace="http://xsd_QName.test.apache.org"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="asNonNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:QName" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="AsNonNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:QName" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:QName" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:QName" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="RequiredAttributeElement">
+ <xsd:attribute name="requiredAttribute" type="xsd:QName"
+ use="required" />
+ </xsd:complexType>
+ <xsd:element name="asRequiredAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asRequiredAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="OptionalAttributeElement">
+ <xsd:attribute name="optionalAttribute" type="xsd:QName"
+ use="optional" />
+ </xsd:complexType>
+ <xsd:element name="asOptionalAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asOptionalAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:QName" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:QName" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="SimpleComplexType">
+ <xsd:sequence>
+ <xsd:element name="complexTypeElement"
+ type="xsd:QName" minOccurs="1" maxOccurs="1" nillable="false" />
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="asComplexTypeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asComplexTypeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="asNonNillableElementResponse">
+ <wsdl:part element="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:message>
+ <wsdl:message name="asNonNillableElementRequest">
+ <wsdl:part element="tns:AsNonNillableElementRequest"
+ name="parameters" />
+ </wsdl:message>
+ <wsdl:message name="asNillableElementResponse">
+ <wsdl:part name="asNillableElementResponse"
+ element="tns:asNillableElementResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asNillableElementRequest">
+ <wsdl:part name="asNillableElementRequest"
+ element="tns:asNillableElementRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeResponse">
+ <wsdl:part name="asRequiredAttributeResponse"
+ element="tns:asRequiredAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeRequest">
+ <wsdl:part name="asRequiredAttributeRequest"
+ element="tns:asRequiredAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeResponse">
+ <wsdl:part name="asOptionalAttributeResponse"
+ element="tns:asOptionalAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeRequest">
+ <wsdl:part name="asOptionalAttributeRequest"
+ element="tns:asOptionalAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayResponse">
+ <wsdl:part name="asArrayResponse"
+ element="tns:asArrayResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayRequest">
+ <wsdl:part name="asArrayRequest" element="tns:asArrayRequest"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeResponse">
+ <wsdl:part name="asComplexTypeResponse"
+ element="tns:asComplexTypeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeRequest">
+ <wsdl:part name="asComplexTypeRequest"
+ element="tns:asComplexTypeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="XSD_QName">
+ <wsdl:operation name="asNonNillableElement">
+ <wsdl:input message="tns:asNonNillableElementRequest"
+ name="asNonNillableElementRequest" />
+ <wsdl:output message="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <wsdl:input message="tns:asNillableElementRequest"
+ name="asNillableElementRequest">
+ </wsdl:input>
+ <wsdl:output message="tns:asNillableElementResponse"
+ name="asNillableElementResponse">
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <wsdl:input message="tns:asRequiredAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asRequiredAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <wsdl:input message="tns:asOptionalAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asOptionalAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <wsdl:input message="tns:asArrayRequest"></wsdl:input>
+ <wsdl:output message="tns:asArrayResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <wsdl:input message="tns:asComplexTypeRequest"></wsdl:input>
+ <wsdl:output message="tns:asComplexTypeResponse"></wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="XSD_QNameSOAP" type="tns:XSD_QName">
+ <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="asNonNillableElement">
+ <soap:operation
+ soapAction="XSD_QName#asNonNillableElement" style="document" />
+ <wsdl:input name="asNonNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNonNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <soap:operation soapAction="XSD_QName#asNillableElement"
+ style="document" />
+ <wsdl:input name="asNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <soap:operation
+ soapAction="XSD_QName#asRequiredAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <soap:operation
+ soapAction="XSD_QName#asOptionalAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <soap:operation soapAction="XSD_QName#asArray" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <soap:operation soapAction="XSD_QName#asComplexType"
+ style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="XSD_QName">
+ <wsdl:port binding="tns:XSD_QNameSOAP"
+ name="XSD_QNameSOAP">
+ <soap:address
+ location="http://localhost:9080/XSD_QName/services/XSD_QName" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/test/resources/wsdl/XSD_anyURI.wsdl b/test/resources/wsdl/XSD_anyURI.wsdl
new file mode 100644
index 0000000..73410d8
--- /dev/null
+++ b/test/resources/wsdl/XSD_anyURI.wsdl
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://xsd_anyURI.test.apache.org"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="XSD_anyURI"
+ targetNamespace="http://xsd_anyURI.test.apache.org">
+ <wsdl:types>
+ <xsd:schema
+ targetNamespace="http://xsd_anyURI.test.apache.org"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="asNonNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:anyURI" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="AsNonNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:anyURI" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:anyURI" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:anyURI" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="RequiredAttributeElement">
+ <xsd:attribute name="requiredAttribute" type="xsd:anyURI"
+ use="required" />
+ </xsd:complexType>
+ <xsd:element name="asRequiredAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asRequiredAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="OptionalAttributeElement">
+ <xsd:attribute name="optionalAttribute" type="xsd:anyURI"
+ use="optional" />
+ </xsd:complexType>
+ <xsd:element name="asOptionalAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asOptionalAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:anyURI" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:anyURI" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="SimpleComplexType">
+ <xsd:sequence>
+ <xsd:element name="complexTypeElement"
+ type="xsd:anyURI" minOccurs="1" maxOccurs="1" nillable="false" />
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="asComplexTypeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asComplexTypeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="asNonNillableElementResponse">
+ <wsdl:part element="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:message>
+ <wsdl:message name="asNonNillableElementRequest">
+ <wsdl:part element="tns:AsNonNillableElementRequest"
+ name="parameters" />
+ </wsdl:message>
+ <wsdl:message name="asNillableElementResponse">
+ <wsdl:part name="asNillableElementResponse"
+ element="tns:asNillableElementResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asNillableElementRequest">
+ <wsdl:part name="asNillableElementRequest"
+ element="tns:asNillableElementRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeResponse">
+ <wsdl:part name="asRequiredAttributeResponse"
+ element="tns:asRequiredAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeRequest">
+ <wsdl:part name="asRequiredAttributeRequest"
+ element="tns:asRequiredAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeResponse">
+ <wsdl:part name="asOptionalAttributeResponse"
+ element="tns:asOptionalAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeRequest">
+ <wsdl:part name="asOptionalAttributeRequest"
+ element="tns:asOptionalAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayResponse">
+ <wsdl:part name="asArrayResponse"
+ element="tns:asArrayResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayRequest">
+ <wsdl:part name="asArrayRequest" element="tns:asArrayRequest"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeResponse">
+ <wsdl:part name="asComplexTypeResponse"
+ element="tns:asComplexTypeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeRequest">
+ <wsdl:part name="asComplexTypeRequest"
+ element="tns:asComplexTypeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="XSD_anyURI">
+ <wsdl:operation name="asNonNillableElement">
+ <wsdl:input message="tns:asNonNillableElementRequest"
+ name="asNonNillableElementRequest" />
+ <wsdl:output message="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <wsdl:input message="tns:asNillableElementRequest"
+ name="asNillableElementRequest">
+ </wsdl:input>
+ <wsdl:output message="tns:asNillableElementResponse"
+ name="asNillableElementResponse">
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <wsdl:input message="tns:asRequiredAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asRequiredAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <wsdl:input message="tns:asOptionalAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asOptionalAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <wsdl:input message="tns:asArrayRequest"></wsdl:input>
+ <wsdl:output message="tns:asArrayResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <wsdl:input message="tns:asComplexTypeRequest"></wsdl:input>
+ <wsdl:output message="tns:asComplexTypeResponse"></wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="XSD_anyURISOAP" type="tns:XSD_anyURI">
+ <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="asNonNillableElement">
+ <soap:operation
+ soapAction="XSD_anyURI#asNonNillableElement" style="document" />
+ <wsdl:input name="asNonNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNonNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <soap:operation soapAction="XSD_anyURI#asNillableElement"
+ style="document" />
+ <wsdl:input name="asNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <soap:operation
+ soapAction="XSD_anyURI#asRequiredAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <soap:operation
+ soapAction="XSD_anyURI#asOptionalAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <soap:operation soapAction="XSD_anyURI#asArray" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <soap:operation soapAction="XSD_anyURI#asComplexType"
+ style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="XSD_anyURI">
+ <wsdl:port binding="tns:XSD_anyURISOAP"
+ name="XSD_anyURISOAP">
+ <soap:address
+ location="http://localhost:9080/XSD_anyURI/services/XSD_anyURI" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/test/resources/wsdl/XSD_base64Binary.wsdl b/test/resources/wsdl/XSD_base64Binary.wsdl
new file mode 100644
index 0000000..e7b1ae8
--- /dev/null
+++ b/test/resources/wsdl/XSD_base64Binary.wsdl
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://xsd_base64Binary.test.apache.org"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="XSD_base64Binary"
+ targetNamespace="http://xsd_base64Binary.test.apache.org">
+ <wsdl:types>
+ <xsd:schema
+ targetNamespace="http://xsd_base64Binary.test.apache.org"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="asNonNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:base64Binary" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="AsNonNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:base64Binary" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:base64Binary" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:base64Binary" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="RequiredAttributeElement">
+ <xsd:attribute name="requiredAttribute" type="xsd:base64Binary"
+ use="required" />
+ </xsd:complexType>
+ <xsd:element name="asRequiredAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asRequiredAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="OptionalAttributeElement">
+ <xsd:attribute name="optionalAttribute" type="xsd:base64Binary"
+ use="optional" />
+ </xsd:complexType>
+ <xsd:element name="asOptionalAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asOptionalAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:base64Binary" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:base64Binary" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="SimpleComplexType">
+ <xsd:sequence>
+ <xsd:element name="complexTypeElement"
+ type="xsd:base64Binary" minOccurs="1" maxOccurs="1" nillable="false" />
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="asComplexTypeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asComplexTypeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="asNonNillableElementResponse">
+ <wsdl:part element="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:message>
+ <wsdl:message name="asNonNillableElementRequest">
+ <wsdl:part element="tns:AsNonNillableElementRequest"
+ name="parameters" />
+ </wsdl:message>
+ <wsdl:message name="asNillableElementResponse">
+ <wsdl:part name="asNillableElementResponse"
+ element="tns:asNillableElementResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asNillableElementRequest">
+ <wsdl:part name="asNillableElementRequest"
+ element="tns:asNillableElementRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeResponse">
+ <wsdl:part name="asRequiredAttributeResponse"
+ element="tns:asRequiredAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeRequest">
+ <wsdl:part name="asRequiredAttributeRequest"
+ element="tns:asRequiredAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeResponse">
+ <wsdl:part name="asOptionalAttributeResponse"
+ element="tns:asOptionalAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeRequest">
+ <wsdl:part name="asOptionalAttributeRequest"
+ element="tns:asOptionalAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayResponse">
+ <wsdl:part name="asArrayResponse"
+ element="tns:asArrayResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayRequest">
+ <wsdl:part name="asArrayRequest" element="tns:asArrayRequest"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeResponse">
+ <wsdl:part name="asComplexTypeResponse"
+ element="tns:asComplexTypeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeRequest">
+ <wsdl:part name="asComplexTypeRequest"
+ element="tns:asComplexTypeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="XSD_base64Binary">
+ <wsdl:operation name="asNonNillableElement">
+ <wsdl:input message="tns:asNonNillableElementRequest"
+ name="asNonNillableElementRequest" />
+ <wsdl:output message="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <wsdl:input message="tns:asNillableElementRequest"
+ name="asNillableElementRequest">
+ </wsdl:input>
+ <wsdl:output message="tns:asNillableElementResponse"
+ name="asNillableElementResponse">
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <wsdl:input message="tns:asRequiredAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asRequiredAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <wsdl:input message="tns:asOptionalAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asOptionalAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <wsdl:input message="tns:asArrayRequest"></wsdl:input>
+ <wsdl:output message="tns:asArrayResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <wsdl:input message="tns:asComplexTypeRequest"></wsdl:input>
+ <wsdl:output message="tns:asComplexTypeResponse"></wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="XSD_base64BinarySOAP" type="tns:XSD_base64Binary">
+ <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="asNonNillableElement">
+ <soap:operation
+ soapAction="XSD_base64Binary#asNonNillableElement" style="document" />
+ <wsdl:input name="asNonNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNonNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <soap:operation soapAction="XSD_base64Binary#asNillableElement"
+ style="document" />
+ <wsdl:input name="asNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <soap:operation
+ soapAction="XSD_base64Binary#asRequiredAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <soap:operation
+ soapAction="XSD_base64Binary#asOptionalAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <soap:operation soapAction="XSD_base64Binary#asArray" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <soap:operation soapAction="XSD_base64Binary#asComplexType"
+ style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="XSD_base64Binary">
+ <wsdl:port binding="tns:XSD_base64BinarySOAP"
+ name="XSD_base64BinarySOAP">
+ <soap:address
+ location="http://localhost:9080/XSD_base64Binary/services/XSD_base64Binary" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/test/resources/wsdl/XSD_boolean.wsdl b/test/resources/wsdl/XSD_boolean.wsdl
new file mode 100644
index 0000000..906ba02
--- /dev/null
+++ b/test/resources/wsdl/XSD_boolean.wsdl
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://xsd_boolean.test.apache.org"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="XSD_boolean"
+ targetNamespace="http://xsd_boolean.test.apache.org">
+ <wsdl:types>
+ <xsd:schema
+ targetNamespace="http://xsd_boolean.test.apache.org"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="asNonNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:boolean" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="AsNonNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:boolean" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:boolean" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:boolean" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="RequiredAttributeElement">
+ <xsd:attribute name="requiredAttribute" type="xsd:boolean"
+ use="required" />
+ </xsd:complexType>
+ <xsd:element name="asRequiredAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asRequiredAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="OptionalAttributeElement">
+ <xsd:attribute name="optionalAttribute" type="xsd:boolean"
+ use="optional" />
+ </xsd:complexType>
+ <xsd:element name="asOptionalAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asOptionalAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:boolean" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:boolean" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="SimpleComplexType">
+ <xsd:sequence>
+ <xsd:element name="complexTypeElement"
+ type="xsd:boolean" minOccurs="1" maxOccurs="1" nillable="false" />
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="asComplexTypeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asComplexTypeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="asNonNillableElementResponse">
+ <wsdl:part element="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:message>
+ <wsdl:message name="asNonNillableElementRequest">
+ <wsdl:part element="tns:AsNonNillableElementRequest"
+ name="parameters" />
+ </wsdl:message>
+ <wsdl:message name="asNillableElementResponse">
+ <wsdl:part name="asNillableElementResponse"
+ element="tns:asNillableElementResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asNillableElementRequest">
+ <wsdl:part name="asNillableElementRequest"
+ element="tns:asNillableElementRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeResponse">
+ <wsdl:part name="asRequiredAttributeResponse"
+ element="tns:asRequiredAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeRequest">
+ <wsdl:part name="asRequiredAttributeRequest"
+ element="tns:asRequiredAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeResponse">
+ <wsdl:part name="asOptionalAttributeResponse"
+ element="tns:asOptionalAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeRequest">
+ <wsdl:part name="asOptionalAttributeRequest"
+ element="tns:asOptionalAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayResponse">
+ <wsdl:part name="asArrayResponse"
+ element="tns:asArrayResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayRequest">
+ <wsdl:part name="asArrayRequest" element="tns:asArrayRequest"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeResponse">
+ <wsdl:part name="asComplexTypeResponse"
+ element="tns:asComplexTypeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeRequest">
+ <wsdl:part name="asComplexTypeRequest"
+ element="tns:asComplexTypeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="XSD_boolean">
+ <wsdl:operation name="asNonNillableElement">
+ <wsdl:input message="tns:asNonNillableElementRequest"
+ name="asNonNillableElementRequest" />
+ <wsdl:output message="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <wsdl:input message="tns:asNillableElementRequest"
+ name="asNillableElementRequest">
+ </wsdl:input>
+ <wsdl:output message="tns:asNillableElementResponse"
+ name="asNillableElementResponse">
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <wsdl:input message="tns:asRequiredAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asRequiredAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <wsdl:input message="tns:asOptionalAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asOptionalAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <wsdl:input message="tns:asArrayRequest"></wsdl:input>
+ <wsdl:output message="tns:asArrayResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <wsdl:input message="tns:asComplexTypeRequest"></wsdl:input>
+ <wsdl:output message="tns:asComplexTypeResponse"></wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="XSD_booleanSOAP" type="tns:XSD_boolean">
+ <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="asNonNillableElement">
+ <soap:operation
+ soapAction="XSD_boolean#asNonNillableElement" style="document" />
+ <wsdl:input name="asNonNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNonNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <soap:operation soapAction="XSD_boolean#asNillableElement"
+ style="document" />
+ <wsdl:input name="asNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <soap:operation
+ soapAction="XSD_boolean#asRequiredAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <soap:operation
+ soapAction="XSD_boolean#asOptionalAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <soap:operation soapAction="XSD_boolean#asArray" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <soap:operation soapAction="XSD_boolean#asComplexType"
+ style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="XSD_boolean">
+ <wsdl:port binding="tns:XSD_booleanSOAP"
+ name="XSD_booleanSOAP">
+ <soap:address
+ location="http://localhost:9080/XSD_boolean/services/XSD_boolean" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/test/resources/wsdl/XSD_byte.wsdl b/test/resources/wsdl/XSD_byte.wsdl
new file mode 100644
index 0000000..52aa1d3
--- /dev/null
+++ b/test/resources/wsdl/XSD_byte.wsdl
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://xsd_byte.test.apache.org"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="XSD_byte"
+ targetNamespace="http://xsd_byte.test.apache.org">
+ <wsdl:types>
+ <xsd:schema
+ targetNamespace="http://xsd_byte.test.apache.org"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="asNonNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:byte" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="AsNonNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:byte" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:byte" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:byte" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="RequiredAttributeElement">
+ <xsd:attribute name="requiredAttribute" type="xsd:byte"
+ use="required" />
+ </xsd:complexType>
+ <xsd:element name="asRequiredAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asRequiredAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="OptionalAttributeElement">
+ <xsd:attribute name="optionalAttribute" type="xsd:byte"
+ use="optional" />
+ </xsd:complexType>
+ <xsd:element name="asOptionalAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asOptionalAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:byte" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:byte" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="SimpleComplexType">
+ <xsd:sequence>
+ <xsd:element name="complexTypeElement"
+ type="xsd:byte" minOccurs="1" maxOccurs="1" nillable="false" />
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="asComplexTypeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asComplexTypeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="asNonNillableElementResponse">
+ <wsdl:part element="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:message>
+ <wsdl:message name="asNonNillableElementRequest">
+ <wsdl:part element="tns:AsNonNillableElementRequest"
+ name="parameters" />
+ </wsdl:message>
+ <wsdl:message name="asNillableElementResponse">
+ <wsdl:part name="asNillableElementResponse"
+ element="tns:asNillableElementResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asNillableElementRequest">
+ <wsdl:part name="asNillableElementRequest"
+ element="tns:asNillableElementRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeResponse">
+ <wsdl:part name="asRequiredAttributeResponse"
+ element="tns:asRequiredAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeRequest">
+ <wsdl:part name="asRequiredAttributeRequest"
+ element="tns:asRequiredAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeResponse">
+ <wsdl:part name="asOptionalAttributeResponse"
+ element="tns:asOptionalAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeRequest">
+ <wsdl:part name="asOptionalAttributeRequest"
+ element="tns:asOptionalAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayResponse">
+ <wsdl:part name="asArrayResponse"
+ element="tns:asArrayResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayRequest">
+ <wsdl:part name="asArrayRequest" element="tns:asArrayRequest"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeResponse">
+ <wsdl:part name="asComplexTypeResponse"
+ element="tns:asComplexTypeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeRequest">
+ <wsdl:part name="asComplexTypeRequest"
+ element="tns:asComplexTypeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="XSD_byte">
+ <wsdl:operation name="asNonNillableElement">
+ <wsdl:input message="tns:asNonNillableElementRequest"
+ name="asNonNillableElementRequest" />
+ <wsdl:output message="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <wsdl:input message="tns:asNillableElementRequest"
+ name="asNillableElementRequest">
+ </wsdl:input>
+ <wsdl:output message="tns:asNillableElementResponse"
+ name="asNillableElementResponse">
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <wsdl:input message="tns:asRequiredAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asRequiredAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <wsdl:input message="tns:asOptionalAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asOptionalAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <wsdl:input message="tns:asArrayRequest"></wsdl:input>
+ <wsdl:output message="tns:asArrayResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <wsdl:input message="tns:asComplexTypeRequest"></wsdl:input>
+ <wsdl:output message="tns:asComplexTypeResponse"></wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="XSD_byteSOAP" type="tns:XSD_byte">
+ <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="asNonNillableElement">
+ <soap:operation
+ soapAction="XSD_byte#asNonNillableElement" style="document" />
+ <wsdl:input name="asNonNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNonNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <soap:operation soapAction="XSD_byte#asNillableElement"
+ style="document" />
+ <wsdl:input name="asNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <soap:operation
+ soapAction="XSD_byte#asRequiredAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <soap:operation
+ soapAction="XSD_byte#asOptionalAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <soap:operation soapAction="XSD_byte#asArray" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <soap:operation soapAction="XSD_byte#asComplexType"
+ style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="XSD_byte">
+ <wsdl:port binding="tns:XSD_byteSOAP"
+ name="XSD_byteSOAP">
+ <soap:address
+ location="http://localhost:9080/XSD_byte/services/XSD_byte" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/test/resources/wsdl/XSD_date.wsdl b/test/resources/wsdl/XSD_date.wsdl
new file mode 100644
index 0000000..013a3f9
--- /dev/null
+++ b/test/resources/wsdl/XSD_date.wsdl
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://xsd_date.test.apache.org"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="XSD_date"
+ targetNamespace="http://xsd_date.test.apache.org">
+ <wsdl:types>
+ <xsd:schema
+ targetNamespace="http://xsd_date.test.apache.org"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="asNonNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:date" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="AsNonNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:date" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:date" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:date" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="RequiredAttributeElement">
+ <xsd:attribute name="requiredAttribute" type="xsd:date"
+ use="required" />
+ </xsd:complexType>
+ <xsd:element name="asRequiredAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asRequiredAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="OptionalAttributeElement">
+ <xsd:attribute name="optionalAttribute" type="xsd:date"
+ use="optional" />
+ </xsd:complexType>
+ <xsd:element name="asOptionalAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asOptionalAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:date" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:date" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="SimpleComplexType">
+ <xsd:sequence>
+ <xsd:element name="complexTypeElement"
+ type="xsd:date" minOccurs="1" maxOccurs="1" nillable="false" />
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="asComplexTypeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asComplexTypeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="asNonNillableElementResponse">
+ <wsdl:part element="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:message>
+ <wsdl:message name="asNonNillableElementRequest">
+ <wsdl:part element="tns:AsNonNillableElementRequest"
+ name="parameters" />
+ </wsdl:message>
+ <wsdl:message name="asNillableElementResponse">
+ <wsdl:part name="asNillableElementResponse"
+ element="tns:asNillableElementResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asNillableElementRequest">
+ <wsdl:part name="asNillableElementRequest"
+ element="tns:asNillableElementRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeResponse">
+ <wsdl:part name="asRequiredAttributeResponse"
+ element="tns:asRequiredAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeRequest">
+ <wsdl:part name="asRequiredAttributeRequest"
+ element="tns:asRequiredAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeResponse">
+ <wsdl:part name="asOptionalAttributeResponse"
+ element="tns:asOptionalAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeRequest">
+ <wsdl:part name="asOptionalAttributeRequest"
+ element="tns:asOptionalAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayResponse">
+ <wsdl:part name="asArrayResponse"
+ element="tns:asArrayResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayRequest">
+ <wsdl:part name="asArrayRequest" element="tns:asArrayRequest"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeResponse">
+ <wsdl:part name="asComplexTypeResponse"
+ element="tns:asComplexTypeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeRequest">
+ <wsdl:part name="asComplexTypeRequest"
+ element="tns:asComplexTypeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="XSD_date">
+ <wsdl:operation name="asNonNillableElement">
+ <wsdl:input message="tns:asNonNillableElementRequest"
+ name="asNonNillableElementRequest" />
+ <wsdl:output message="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <wsdl:input message="tns:asNillableElementRequest"
+ name="asNillableElementRequest">
+ </wsdl:input>
+ <wsdl:output message="tns:asNillableElementResponse"
+ name="asNillableElementResponse">
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <wsdl:input message="tns:asRequiredAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asRequiredAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <wsdl:input message="tns:asOptionalAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asOptionalAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <wsdl:input message="tns:asArrayRequest"></wsdl:input>
+ <wsdl:output message="tns:asArrayResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <wsdl:input message="tns:asComplexTypeRequest"></wsdl:input>
+ <wsdl:output message="tns:asComplexTypeResponse"></wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="XSD_dateSOAP" type="tns:XSD_date">
+ <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="asNonNillableElement">
+ <soap:operation
+ soapAction="XSD_date#asNonNillableElement" style="document" />
+ <wsdl:input name="asNonNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNonNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <soap:operation soapAction="XSD_date#asNillableElement"
+ style="document" />
+ <wsdl:input name="asNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <soap:operation
+ soapAction="XSD_date#asRequiredAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <soap:operation
+ soapAction="XSD_date#asOptionalAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <soap:operation soapAction="XSD_date#asArray" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <soap:operation soapAction="XSD_date#asComplexType"
+ style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="XSD_date">
+ <wsdl:port binding="tns:XSD_dateSOAP"
+ name="XSD_dateSOAP">
+ <soap:address
+ location="http://localhost:9080/XSD_date/services/XSD_date" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/test/resources/wsdl/XSD_dateTime.wsdl b/test/resources/wsdl/XSD_dateTime.wsdl
new file mode 100644
index 0000000..5031ca6
--- /dev/null
+++ b/test/resources/wsdl/XSD_dateTime.wsdl
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://xsd_dateTime.test.apache.org"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="XSD_dateTime"
+ targetNamespace="http://xsd_dateTime.test.apache.org">
+ <wsdl:types>
+ <xsd:schema
+ targetNamespace="http://xsd_dateTime.test.apache.org"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="asNonNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:dateTime" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="AsNonNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:dateTime" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:dateTime" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:dateTime" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="RequiredAttributeElement">
+ <xsd:attribute name="requiredAttribute" type="xsd:dateTime"
+ use="required" />
+ </xsd:complexType>
+ <xsd:element name="asRequiredAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asRequiredAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="OptionalAttributeElement">
+ <xsd:attribute name="optionalAttribute" type="xsd:dateTime"
+ use="optional" />
+ </xsd:complexType>
+ <xsd:element name="asOptionalAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asOptionalAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:dateTime" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:dateTime" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="SimpleComplexType">
+ <xsd:sequence>
+ <xsd:element name="complexTypeElement"
+ type="xsd:dateTime" minOccurs="1" maxOccurs="1" nillable="false" />
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="asComplexTypeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asComplexTypeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="asNonNillableElementResponse">
+ <wsdl:part element="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:message>
+ <wsdl:message name="asNonNillableElementRequest">
+ <wsdl:part element="tns:AsNonNillableElementRequest"
+ name="parameters" />
+ </wsdl:message>
+ <wsdl:message name="asNillableElementResponse">
+ <wsdl:part name="asNillableElementResponse"
+ element="tns:asNillableElementResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asNillableElementRequest">
+ <wsdl:part name="asNillableElementRequest"
+ element="tns:asNillableElementRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeResponse">
+ <wsdl:part name="asRequiredAttributeResponse"
+ element="tns:asRequiredAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeRequest">
+ <wsdl:part name="asRequiredAttributeRequest"
+ element="tns:asRequiredAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeResponse">
+ <wsdl:part name="asOptionalAttributeResponse"
+ element="tns:asOptionalAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeRequest">
+ <wsdl:part name="asOptionalAttributeRequest"
+ element="tns:asOptionalAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayResponse">
+ <wsdl:part name="asArrayResponse"
+ element="tns:asArrayResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayRequest">
+ <wsdl:part name="asArrayRequest" element="tns:asArrayRequest"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeResponse">
+ <wsdl:part name="asComplexTypeResponse"
+ element="tns:asComplexTypeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeRequest">
+ <wsdl:part name="asComplexTypeRequest"
+ element="tns:asComplexTypeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="XSD_dateTime">
+ <wsdl:operation name="asNonNillableElement">
+ <wsdl:input message="tns:asNonNillableElementRequest"
+ name="asNonNillableElementRequest" />
+ <wsdl:output message="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <wsdl:input message="tns:asNillableElementRequest"
+ name="asNillableElementRequest">
+ </wsdl:input>
+ <wsdl:output message="tns:asNillableElementResponse"
+ name="asNillableElementResponse">
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <wsdl:input message="tns:asRequiredAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asRequiredAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <wsdl:input message="tns:asOptionalAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asOptionalAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <wsdl:input message="tns:asArrayRequest"></wsdl:input>
+ <wsdl:output message="tns:asArrayResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <wsdl:input message="tns:asComplexTypeRequest"></wsdl:input>
+ <wsdl:output message="tns:asComplexTypeResponse"></wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="XSD_dateTimeSOAP" type="tns:XSD_dateTime">
+ <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="asNonNillableElement">
+ <soap:operation
+ soapAction="XSD_dateTime#asNonNillableElement" style="document" />
+ <wsdl:input name="asNonNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNonNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <soap:operation soapAction="XSD_dateTime#asNillableElement"
+ style="document" />
+ <wsdl:input name="asNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <soap:operation
+ soapAction="XSD_dateTime#asRequiredAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <soap:operation
+ soapAction="XSD_dateTime#asOptionalAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <soap:operation soapAction="XSD_dateTime#asArray" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <soap:operation soapAction="XSD_dateTime#asComplexType"
+ style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="XSD_dateTime">
+ <wsdl:port binding="tns:XSD_dateTimeSOAP"
+ name="XSD_dateTimeSOAP">
+ <soap:address
+ location="http://localhost:9080/XSD_dateTime/services/XSD_dateTime" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/test/resources/wsdl/XSD_decimal.wsdl b/test/resources/wsdl/XSD_decimal.wsdl
new file mode 100644
index 0000000..587107a
--- /dev/null
+++ b/test/resources/wsdl/XSD_decimal.wsdl
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://xsd_decimal.test.apache.org"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="XSD_decimal"
+ targetNamespace="http://xsd_decimal.test.apache.org">
+ <wsdl:types>
+ <xsd:schema
+ targetNamespace="http://xsd_decimal.test.apache.org"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="asNonNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:decimal" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="AsNonNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:decimal" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:decimal" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:decimal" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="RequiredAttributeElement">
+ <xsd:attribute name="requiredAttribute" type="xsd:decimal"
+ use="required" />
+ </xsd:complexType>
+ <xsd:element name="asRequiredAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asRequiredAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="OptionalAttributeElement">
+ <xsd:attribute name="optionalAttribute" type="xsd:decimal"
+ use="optional" />
+ </xsd:complexType>
+ <xsd:element name="asOptionalAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asOptionalAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:decimal" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:decimal" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="SimpleComplexType">
+ <xsd:sequence>
+ <xsd:element name="complexTypeElement"
+ type="xsd:decimal" minOccurs="1" maxOccurs="1" nillable="false" />
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="asComplexTypeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asComplexTypeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="asNonNillableElementResponse">
+ <wsdl:part element="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:message>
+ <wsdl:message name="asNonNillableElementRequest">
+ <wsdl:part element="tns:AsNonNillableElementRequest"
+ name="parameters" />
+ </wsdl:message>
+ <wsdl:message name="asNillableElementResponse">
+ <wsdl:part name="asNillableElementResponse"
+ element="tns:asNillableElementResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asNillableElementRequest">
+ <wsdl:part name="asNillableElementRequest"
+ element="tns:asNillableElementRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeResponse">
+ <wsdl:part name="asRequiredAttributeResponse"
+ element="tns:asRequiredAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeRequest">
+ <wsdl:part name="asRequiredAttributeRequest"
+ element="tns:asRequiredAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeResponse">
+ <wsdl:part name="asOptionalAttributeResponse"
+ element="tns:asOptionalAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeRequest">
+ <wsdl:part name="asOptionalAttributeRequest"
+ element="tns:asOptionalAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayResponse">
+ <wsdl:part name="asArrayResponse"
+ element="tns:asArrayResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayRequest">
+ <wsdl:part name="asArrayRequest" element="tns:asArrayRequest"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeResponse">
+ <wsdl:part name="asComplexTypeResponse"
+ element="tns:asComplexTypeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeRequest">
+ <wsdl:part name="asComplexTypeRequest"
+ element="tns:asComplexTypeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="XSD_decimal">
+ <wsdl:operation name="asNonNillableElement">
+ <wsdl:input message="tns:asNonNillableElementRequest"
+ name="asNonNillableElementRequest" />
+ <wsdl:output message="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <wsdl:input message="tns:asNillableElementRequest"
+ name="asNillableElementRequest">
+ </wsdl:input>
+ <wsdl:output message="tns:asNillableElementResponse"
+ name="asNillableElementResponse">
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <wsdl:input message="tns:asRequiredAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asRequiredAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <wsdl:input message="tns:asOptionalAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asOptionalAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <wsdl:input message="tns:asArrayRequest"></wsdl:input>
+ <wsdl:output message="tns:asArrayResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <wsdl:input message="tns:asComplexTypeRequest"></wsdl:input>
+ <wsdl:output message="tns:asComplexTypeResponse"></wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="XSD_decimalSOAP" type="tns:XSD_decimal">
+ <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="asNonNillableElement">
+ <soap:operation
+ soapAction="XSD_decimal#asNonNillableElement" style="document" />
+ <wsdl:input name="asNonNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNonNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <soap:operation soapAction="XSD_decimal#asNillableElement"
+ style="document" />
+ <wsdl:input name="asNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <soap:operation
+ soapAction="XSD_decimal#asRequiredAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <soap:operation
+ soapAction="XSD_decimal#asOptionalAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <soap:operation soapAction="XSD_decimal#asArray" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <soap:operation soapAction="XSD_decimal#asComplexType"
+ style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="XSD_decimal">
+ <wsdl:port binding="tns:XSD_decimalSOAP"
+ name="XSD_decimalSOAP">
+ <soap:address
+ location="http://localhost:9080/XSD_decimal/services/XSD_decimal" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/test/resources/wsdl/XSD_double.wsdl b/test/resources/wsdl/XSD_double.wsdl
new file mode 100644
index 0000000..51eb810
--- /dev/null
+++ b/test/resources/wsdl/XSD_double.wsdl
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://xsd_double.test.apache.org"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="XSD_double"
+ targetNamespace="http://xsd_double.test.apache.org">
+ <wsdl:types>
+ <xsd:schema
+ targetNamespace="http://xsd_double.test.apache.org"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="asNonNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:double" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="AsNonNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:double" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:double" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:double" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="RequiredAttributeElement">
+ <xsd:attribute name="requiredAttribute" type="xsd:double"
+ use="required" />
+ </xsd:complexType>
+ <xsd:element name="asRequiredAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asRequiredAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="OptionalAttributeElement">
+ <xsd:attribute name="optionalAttribute" type="xsd:double"
+ use="optional" />
+ </xsd:complexType>
+ <xsd:element name="asOptionalAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asOptionalAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:double" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:double" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="SimpleComplexType">
+ <xsd:sequence>
+ <xsd:element name="complexTypeElement"
+ type="xsd:double" minOccurs="1" maxOccurs="1" nillable="false" />
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="asComplexTypeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asComplexTypeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="asNonNillableElementResponse">
+ <wsdl:part element="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:message>
+ <wsdl:message name="asNonNillableElementRequest">
+ <wsdl:part element="tns:AsNonNillableElementRequest"
+ name="parameters" />
+ </wsdl:message>
+ <wsdl:message name="asNillableElementResponse">
+ <wsdl:part name="asNillableElementResponse"
+ element="tns:asNillableElementResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asNillableElementRequest">
+ <wsdl:part name="asNillableElementRequest"
+ element="tns:asNillableElementRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeResponse">
+ <wsdl:part name="asRequiredAttributeResponse"
+ element="tns:asRequiredAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeRequest">
+ <wsdl:part name="asRequiredAttributeRequest"
+ element="tns:asRequiredAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeResponse">
+ <wsdl:part name="asOptionalAttributeResponse"
+ element="tns:asOptionalAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeRequest">
+ <wsdl:part name="asOptionalAttributeRequest"
+ element="tns:asOptionalAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayResponse">
+ <wsdl:part name="asArrayResponse"
+ element="tns:asArrayResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayRequest">
+ <wsdl:part name="asArrayRequest" element="tns:asArrayRequest"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeResponse">
+ <wsdl:part name="asComplexTypeResponse"
+ element="tns:asComplexTypeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeRequest">
+ <wsdl:part name="asComplexTypeRequest"
+ element="tns:asComplexTypeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="XSD_double">
+ <wsdl:operation name="asNonNillableElement">
+ <wsdl:input message="tns:asNonNillableElementRequest"
+ name="asNonNillableElementRequest" />
+ <wsdl:output message="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <wsdl:input message="tns:asNillableElementRequest"
+ name="asNillableElementRequest">
+ </wsdl:input>
+ <wsdl:output message="tns:asNillableElementResponse"
+ name="asNillableElementResponse">
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <wsdl:input message="tns:asRequiredAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asRequiredAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <wsdl:input message="tns:asOptionalAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asOptionalAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <wsdl:input message="tns:asArrayRequest"></wsdl:input>
+ <wsdl:output message="tns:asArrayResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <wsdl:input message="tns:asComplexTypeRequest"></wsdl:input>
+ <wsdl:output message="tns:asComplexTypeResponse"></wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="XSD_doubleSOAP" type="tns:XSD_double">
+ <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="asNonNillableElement">
+ <soap:operation
+ soapAction="XSD_double#asNonNillableElement" style="document" />
+ <wsdl:input name="asNonNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNonNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <soap:operation soapAction="XSD_double#asNillableElement"
+ style="document" />
+ <wsdl:input name="asNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <soap:operation
+ soapAction="XSD_double#asRequiredAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <soap:operation
+ soapAction="XSD_double#asOptionalAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <soap:operation soapAction="XSD_double#asArray" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <soap:operation soapAction="XSD_double#asComplexType"
+ style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="XSD_double">
+ <wsdl:port binding="tns:XSD_doubleSOAP"
+ name="XSD_doubleSOAP">
+ <soap:address
+ location="http://localhost:9080/XSD_double/services/XSD_double" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/test/resources/wsdl/XSD_duration.wsdl b/test/resources/wsdl/XSD_duration.wsdl
new file mode 100644
index 0000000..31a8b18
--- /dev/null
+++ b/test/resources/wsdl/XSD_duration.wsdl
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://xsd_duration.test.apache.org"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="XSD_duration"
+ targetNamespace="http://xsd_duration.test.apache.org">
+ <wsdl:types>
+ <xsd:schema
+ targetNamespace="http://xsd_duration.test.apache.org"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="asNonNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:duration" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="AsNonNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:duration" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:duration" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:duration" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="RequiredAttributeElement">
+ <xsd:attribute name="requiredAttribute" type="xsd:duration"
+ use="required" />
+ </xsd:complexType>
+ <xsd:element name="asRequiredAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asRequiredAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="OptionalAttributeElement">
+ <xsd:attribute name="optionalAttribute" type="xsd:duration"
+ use="optional" />
+ </xsd:complexType>
+ <xsd:element name="asOptionalAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asOptionalAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:duration" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:duration" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="SimpleComplexType">
+ <xsd:sequence>
+ <xsd:element name="complexTypeElement"
+ type="xsd:duration" minOccurs="1" maxOccurs="1" nillable="false" />
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="asComplexTypeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asComplexTypeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="asNonNillableElementResponse">
+ <wsdl:part element="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:message>
+ <wsdl:message name="asNonNillableElementRequest">
+ <wsdl:part element="tns:AsNonNillableElementRequest"
+ name="parameters" />
+ </wsdl:message>
+ <wsdl:message name="asNillableElementResponse">
+ <wsdl:part name="asNillableElementResponse"
+ element="tns:asNillableElementResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asNillableElementRequest">
+ <wsdl:part name="asNillableElementRequest"
+ element="tns:asNillableElementRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeResponse">
+ <wsdl:part name="asRequiredAttributeResponse"
+ element="tns:asRequiredAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeRequest">
+ <wsdl:part name="asRequiredAttributeRequest"
+ element="tns:asRequiredAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeResponse">
+ <wsdl:part name="asOptionalAttributeResponse"
+ element="tns:asOptionalAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeRequest">
+ <wsdl:part name="asOptionalAttributeRequest"
+ element="tns:asOptionalAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayResponse">
+ <wsdl:part name="asArrayResponse"
+ element="tns:asArrayResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayRequest">
+ <wsdl:part name="asArrayRequest" element="tns:asArrayRequest"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeResponse">
+ <wsdl:part name="asComplexTypeResponse"
+ element="tns:asComplexTypeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeRequest">
+ <wsdl:part name="asComplexTypeRequest"
+ element="tns:asComplexTypeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="XSD_duration">
+ <wsdl:operation name="asNonNillableElement">
+ <wsdl:input message="tns:asNonNillableElementRequest"
+ name="asNonNillableElementRequest" />
+ <wsdl:output message="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <wsdl:input message="tns:asNillableElementRequest"
+ name="asNillableElementRequest">
+ </wsdl:input>
+ <wsdl:output message="tns:asNillableElementResponse"
+ name="asNillableElementResponse">
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <wsdl:input message="tns:asRequiredAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asRequiredAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <wsdl:input message="tns:asOptionalAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asOptionalAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <wsdl:input message="tns:asArrayRequest"></wsdl:input>
+ <wsdl:output message="tns:asArrayResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <wsdl:input message="tns:asComplexTypeRequest"></wsdl:input>
+ <wsdl:output message="tns:asComplexTypeResponse"></wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="XSD_durationSOAP" type="tns:XSD_duration">
+ <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="asNonNillableElement">
+ <soap:operation
+ soapAction="XSD_duration#asNonNillableElement" style="document" />
+ <wsdl:input name="asNonNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNonNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <soap:operation soapAction="XSD_duration#asNillableElement"
+ style="document" />
+ <wsdl:input name="asNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <soap:operation
+ soapAction="XSD_duration#asRequiredAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <soap:operation
+ soapAction="XSD_duration#asOptionalAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <soap:operation soapAction="XSD_duration#asArray" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <soap:operation soapAction="XSD_duration#asComplexType"
+ style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="XSD_duration">
+ <wsdl:port binding="tns:XSD_durationSOAP"
+ name="XSD_durationSOAP">
+ <soap:address
+ location="http://localhost:9080/XSD_duration/services/XSD_duration" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/test/resources/wsdl/XSD_float.wsdl b/test/resources/wsdl/XSD_float.wsdl
new file mode 100644
index 0000000..dcc7464
--- /dev/null
+++ b/test/resources/wsdl/XSD_float.wsdl
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://xsd_float.test.apache.org"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="XSD_float"
+ targetNamespace="http://xsd_float.test.apache.org">
+ <wsdl:types>
+ <xsd:schema
+ targetNamespace="http://xsd_float.test.apache.org"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="asNonNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:float" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="AsNonNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:float" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:float" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:float" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="RequiredAttributeElement">
+ <xsd:attribute name="requiredAttribute" type="xsd:float"
+ use="required" />
+ </xsd:complexType>
+ <xsd:element name="asRequiredAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asRequiredAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="OptionalAttributeElement">
+ <xsd:attribute name="optionalAttribute" type="xsd:float"
+ use="optional" />
+ </xsd:complexType>
+ <xsd:element name="asOptionalAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asOptionalAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:float" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:float" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="SimpleComplexType">
+ <xsd:sequence>
+ <xsd:element name="complexTypeElement"
+ type="xsd:float" minOccurs="1" maxOccurs="1" nillable="false" />
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="asComplexTypeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asComplexTypeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="asNonNillableElementResponse">
+ <wsdl:part element="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:message>
+ <wsdl:message name="asNonNillableElementRequest">
+ <wsdl:part element="tns:AsNonNillableElementRequest"
+ name="parameters" />
+ </wsdl:message>
+ <wsdl:message name="asNillableElementResponse">
+ <wsdl:part name="asNillableElementResponse"
+ element="tns:asNillableElementResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asNillableElementRequest">
+ <wsdl:part name="asNillableElementRequest"
+ element="tns:asNillableElementRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeResponse">
+ <wsdl:part name="asRequiredAttributeResponse"
+ element="tns:asRequiredAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeRequest">
+ <wsdl:part name="asRequiredAttributeRequest"
+ element="tns:asRequiredAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeResponse">
+ <wsdl:part name="asOptionalAttributeResponse"
+ element="tns:asOptionalAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeRequest">
+ <wsdl:part name="asOptionalAttributeRequest"
+ element="tns:asOptionalAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayResponse">
+ <wsdl:part name="asArrayResponse"
+ element="tns:asArrayResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayRequest">
+ <wsdl:part name="asArrayRequest" element="tns:asArrayRequest"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeResponse">
+ <wsdl:part name="asComplexTypeResponse"
+ element="tns:asComplexTypeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeRequest">
+ <wsdl:part name="asComplexTypeRequest"
+ element="tns:asComplexTypeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="XSD_float">
+ <wsdl:operation name="asNonNillableElement">
+ <wsdl:input message="tns:asNonNillableElementRequest"
+ name="asNonNillableElementRequest" />
+ <wsdl:output message="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <wsdl:input message="tns:asNillableElementRequest"
+ name="asNillableElementRequest">
+ </wsdl:input>
+ <wsdl:output message="tns:asNillableElementResponse"
+ name="asNillableElementResponse">
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <wsdl:input message="tns:asRequiredAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asRequiredAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <wsdl:input message="tns:asOptionalAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asOptionalAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <wsdl:input message="tns:asArrayRequest"></wsdl:input>
+ <wsdl:output message="tns:asArrayResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <wsdl:input message="tns:asComplexTypeRequest"></wsdl:input>
+ <wsdl:output message="tns:asComplexTypeResponse"></wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="XSD_floatSOAP" type="tns:XSD_float">
+ <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="asNonNillableElement">
+ <soap:operation
+ soapAction="XSD_float#asNonNillableElement" style="document" />
+ <wsdl:input name="asNonNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNonNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <soap:operation soapAction="XSD_float#asNillableElement"
+ style="document" />
+ <wsdl:input name="asNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <soap:operation
+ soapAction="XSD_float#asRequiredAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <soap:operation
+ soapAction="XSD_float#asOptionalAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <soap:operation soapAction="XSD_float#asArray" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <soap:operation soapAction="XSD_float#asComplexType"
+ style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="XSD_float">
+ <wsdl:port binding="tns:XSD_floatSOAP"
+ name="XSD_floatSOAP">
+ <soap:address
+ location="http://localhost:9080/XSD_float/services/XSD_float" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/test/resources/wsdl/XSD_gDay.wsdl b/test/resources/wsdl/XSD_gDay.wsdl
new file mode 100644
index 0000000..2508f5d
--- /dev/null
+++ b/test/resources/wsdl/XSD_gDay.wsdl
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://xsd_gDay.test.apache.org"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="XSD_gDay"
+ targetNamespace="http://xsd_gDay.test.apache.org">
+ <wsdl:types>
+ <xsd:schema
+ targetNamespace="http://xsd_gDay.test.apache.org"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="asNonNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:gDay" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="AsNonNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:gDay" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:gDay" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:gDay" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="RequiredAttributeElement">
+ <xsd:attribute name="requiredAttribute" type="xsd:gDay"
+ use="required" />
+ </xsd:complexType>
+ <xsd:element name="asRequiredAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asRequiredAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="OptionalAttributeElement">
+ <xsd:attribute name="optionalAttribute" type="xsd:gDay"
+ use="optional" />
+ </xsd:complexType>
+ <xsd:element name="asOptionalAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asOptionalAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:gDay" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:gDay" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="SimpleComplexType">
+ <xsd:sequence>
+ <xsd:element name="complexTypeElement"
+ type="xsd:gDay" minOccurs="1" maxOccurs="1" nillable="false" />
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="asComplexTypeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asComplexTypeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="asNonNillableElementResponse">
+ <wsdl:part element="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:message>
+ <wsdl:message name="asNonNillableElementRequest">
+ <wsdl:part element="tns:AsNonNillableElementRequest"
+ name="parameters" />
+ </wsdl:message>
+ <wsdl:message name="asNillableElementResponse">
+ <wsdl:part name="asNillableElementResponse"
+ element="tns:asNillableElementResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asNillableElementRequest">
+ <wsdl:part name="asNillableElementRequest"
+ element="tns:asNillableElementRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeResponse">
+ <wsdl:part name="asRequiredAttributeResponse"
+ element="tns:asRequiredAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeRequest">
+ <wsdl:part name="asRequiredAttributeRequest"
+ element="tns:asRequiredAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeResponse">
+ <wsdl:part name="asOptionalAttributeResponse"
+ element="tns:asOptionalAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeRequest">
+ <wsdl:part name="asOptionalAttributeRequest"
+ element="tns:asOptionalAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayResponse">
+ <wsdl:part name="asArrayResponse"
+ element="tns:asArrayResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayRequest">
+ <wsdl:part name="asArrayRequest" element="tns:asArrayRequest"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeResponse">
+ <wsdl:part name="asComplexTypeResponse"
+ element="tns:asComplexTypeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeRequest">
+ <wsdl:part name="asComplexTypeRequest"
+ element="tns:asComplexTypeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="XSD_gDay">
+ <wsdl:operation name="asNonNillableElement">
+ <wsdl:input message="tns:asNonNillableElementRequest"
+ name="asNonNillableElementRequest" />
+ <wsdl:output message="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <wsdl:input message="tns:asNillableElementRequest"
+ name="asNillableElementRequest">
+ </wsdl:input>
+ <wsdl:output message="tns:asNillableElementResponse"
+ name="asNillableElementResponse">
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <wsdl:input message="tns:asRequiredAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asRequiredAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <wsdl:input message="tns:asOptionalAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asOptionalAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <wsdl:input message="tns:asArrayRequest"></wsdl:input>
+ <wsdl:output message="tns:asArrayResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <wsdl:input message="tns:asComplexTypeRequest"></wsdl:input>
+ <wsdl:output message="tns:asComplexTypeResponse"></wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="XSD_gDaySOAP" type="tns:XSD_gDay">
+ <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="asNonNillableElement">
+ <soap:operation
+ soapAction="XSD_gDay#asNonNillableElement" style="document" />
+ <wsdl:input name="asNonNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNonNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <soap:operation soapAction="XSD_gDay#asNillableElement"
+ style="document" />
+ <wsdl:input name="asNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <soap:operation
+ soapAction="XSD_gDay#asRequiredAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <soap:operation
+ soapAction="XSD_gDay#asOptionalAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <soap:operation soapAction="XSD_gDay#asArray" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <soap:operation soapAction="XSD_gDay#asComplexType"
+ style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="XSD_gDay">
+ <wsdl:port binding="tns:XSD_gDaySOAP"
+ name="XSD_gDaySOAP">
+ <soap:address
+ location="http://localhost:9080/XSD_gDay/services/XSD_gDay" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/test/resources/wsdl/XSD_gMonth.wsdl b/test/resources/wsdl/XSD_gMonth.wsdl
new file mode 100644
index 0000000..1d05d42
--- /dev/null
+++ b/test/resources/wsdl/XSD_gMonth.wsdl
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://xsd_gMonth.test.apache.org"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="XSD_gMonth"
+ targetNamespace="http://xsd_gMonth.test.apache.org">
+ <wsdl:types>
+ <xsd:schema
+ targetNamespace="http://xsd_gMonth.test.apache.org"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="asNonNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:gMonth" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="AsNonNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:gMonth" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:gMonth" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:gMonth" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="RequiredAttributeElement">
+ <xsd:attribute name="requiredAttribute" type="xsd:gMonth"
+ use="required" />
+ </xsd:complexType>
+ <xsd:element name="asRequiredAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asRequiredAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="OptionalAttributeElement">
+ <xsd:attribute name="optionalAttribute" type="xsd:gMonth"
+ use="optional" />
+ </xsd:complexType>
+ <xsd:element name="asOptionalAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asOptionalAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:gMonth" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:gMonth" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="SimpleComplexType">
+ <xsd:sequence>
+ <xsd:element name="complexTypeElement"
+ type="xsd:gMonth" minOccurs="1" maxOccurs="1" nillable="false" />
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="asComplexTypeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asComplexTypeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="asNonNillableElementResponse">
+ <wsdl:part element="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:message>
+ <wsdl:message name="asNonNillableElementRequest">
+ <wsdl:part element="tns:AsNonNillableElementRequest"
+ name="parameters" />
+ </wsdl:message>
+ <wsdl:message name="asNillableElementResponse">
+ <wsdl:part name="asNillableElementResponse"
+ element="tns:asNillableElementResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asNillableElementRequest">
+ <wsdl:part name="asNillableElementRequest"
+ element="tns:asNillableElementRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeResponse">
+ <wsdl:part name="asRequiredAttributeResponse"
+ element="tns:asRequiredAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeRequest">
+ <wsdl:part name="asRequiredAttributeRequest"
+ element="tns:asRequiredAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeResponse">
+ <wsdl:part name="asOptionalAttributeResponse"
+ element="tns:asOptionalAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeRequest">
+ <wsdl:part name="asOptionalAttributeRequest"
+ element="tns:asOptionalAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayResponse">
+ <wsdl:part name="asArrayResponse"
+ element="tns:asArrayResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayRequest">
+ <wsdl:part name="asArrayRequest" element="tns:asArrayRequest"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeResponse">
+ <wsdl:part name="asComplexTypeResponse"
+ element="tns:asComplexTypeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeRequest">
+ <wsdl:part name="asComplexTypeRequest"
+ element="tns:asComplexTypeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="XSD_gMonth">
+ <wsdl:operation name="asNonNillableElement">
+ <wsdl:input message="tns:asNonNillableElementRequest"
+ name="asNonNillableElementRequest" />
+ <wsdl:output message="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <wsdl:input message="tns:asNillableElementRequest"
+ name="asNillableElementRequest">
+ </wsdl:input>
+ <wsdl:output message="tns:asNillableElementResponse"
+ name="asNillableElementResponse">
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <wsdl:input message="tns:asRequiredAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asRequiredAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <wsdl:input message="tns:asOptionalAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asOptionalAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <wsdl:input message="tns:asArrayRequest"></wsdl:input>
+ <wsdl:output message="tns:asArrayResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <wsdl:input message="tns:asComplexTypeRequest"></wsdl:input>
+ <wsdl:output message="tns:asComplexTypeResponse"></wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="XSD_gMonthSOAP" type="tns:XSD_gMonth">
+ <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="asNonNillableElement">
+ <soap:operation
+ soapAction="XSD_gMonth#asNonNillableElement" style="document" />
+ <wsdl:input name="asNonNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNonNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <soap:operation soapAction="XSD_gMonth#asNillableElement"
+ style="document" />
+ <wsdl:input name="asNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <soap:operation
+ soapAction="XSD_gMonth#asRequiredAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <soap:operation
+ soapAction="XSD_gMonth#asOptionalAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <soap:operation soapAction="XSD_gMonth#asArray" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <soap:operation soapAction="XSD_gMonth#asComplexType"
+ style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="XSD_gMonth">
+ <wsdl:port binding="tns:XSD_gMonthSOAP"
+ name="XSD_gMonthSOAP">
+ <soap:address
+ location="http://localhost:9080/XSD_gMonth/services/XSD_gMonth" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/test/resources/wsdl/XSD_gMonthDay.wsdl b/test/resources/wsdl/XSD_gMonthDay.wsdl
new file mode 100644
index 0000000..6d06f45
--- /dev/null
+++ b/test/resources/wsdl/XSD_gMonthDay.wsdl
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://xsd_gMonthDay.test.apache.org"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="XSD_gMonthDay"
+ targetNamespace="http://xsd_gMonthDay.test.apache.org">
+ <wsdl:types>
+ <xsd:schema
+ targetNamespace="http://xsd_gMonthDay.test.apache.org"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="asNonNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:gMonthDay" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="AsNonNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:gMonthDay" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:gMonthDay" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:gMonthDay" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="RequiredAttributeElement">
+ <xsd:attribute name="requiredAttribute" type="xsd:gMonthDay"
+ use="required" />
+ </xsd:complexType>
+ <xsd:element name="asRequiredAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asRequiredAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="OptionalAttributeElement">
+ <xsd:attribute name="optionalAttribute" type="xsd:gMonthDay"
+ use="optional" />
+ </xsd:complexType>
+ <xsd:element name="asOptionalAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asOptionalAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:gMonthDay" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:gMonthDay" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="SimpleComplexType">
+ <xsd:sequence>
+ <xsd:element name="complexTypeElement"
+ type="xsd:gMonthDay" minOccurs="1" maxOccurs="1" nillable="false" />
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="asComplexTypeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asComplexTypeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="asNonNillableElementResponse">
+ <wsdl:part element="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:message>
+ <wsdl:message name="asNonNillableElementRequest">
+ <wsdl:part element="tns:AsNonNillableElementRequest"
+ name="parameters" />
+ </wsdl:message>
+ <wsdl:message name="asNillableElementResponse">
+ <wsdl:part name="asNillableElementResponse"
+ element="tns:asNillableElementResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asNillableElementRequest">
+ <wsdl:part name="asNillableElementRequest"
+ element="tns:asNillableElementRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeResponse">
+ <wsdl:part name="asRequiredAttributeResponse"
+ element="tns:asRequiredAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeRequest">
+ <wsdl:part name="asRequiredAttributeRequest"
+ element="tns:asRequiredAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeResponse">
+ <wsdl:part name="asOptionalAttributeResponse"
+ element="tns:asOptionalAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeRequest">
+ <wsdl:part name="asOptionalAttributeRequest"
+ element="tns:asOptionalAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayResponse">
+ <wsdl:part name="asArrayResponse"
+ element="tns:asArrayResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayRequest">
+ <wsdl:part name="asArrayRequest" element="tns:asArrayRequest"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeResponse">
+ <wsdl:part name="asComplexTypeResponse"
+ element="tns:asComplexTypeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeRequest">
+ <wsdl:part name="asComplexTypeRequest"
+ element="tns:asComplexTypeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="XSD_gMonthDay">
+ <wsdl:operation name="asNonNillableElement">
+ <wsdl:input message="tns:asNonNillableElementRequest"
+ name="asNonNillableElementRequest" />
+ <wsdl:output message="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <wsdl:input message="tns:asNillableElementRequest"
+ name="asNillableElementRequest">
+ </wsdl:input>
+ <wsdl:output message="tns:asNillableElementResponse"
+ name="asNillableElementResponse">
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <wsdl:input message="tns:asRequiredAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asRequiredAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <wsdl:input message="tns:asOptionalAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asOptionalAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <wsdl:input message="tns:asArrayRequest"></wsdl:input>
+ <wsdl:output message="tns:asArrayResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <wsdl:input message="tns:asComplexTypeRequest"></wsdl:input>
+ <wsdl:output message="tns:asComplexTypeResponse"></wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="XSD_gMonthDaySOAP" type="tns:XSD_gMonthDay">
+ <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="asNonNillableElement">
+ <soap:operation
+ soapAction="XSD_gMonthDay#asNonNillableElement" style="document" />
+ <wsdl:input name="asNonNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNonNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <soap:operation soapAction="XSD_gMonthDay#asNillableElement"
+ style="document" />
+ <wsdl:input name="asNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <soap:operation
+ soapAction="XSD_gMonthDay#asRequiredAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <soap:operation
+ soapAction="XSD_gMonthDay#asOptionalAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <soap:operation soapAction="XSD_gMonthDay#asArray" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <soap:operation soapAction="XSD_gMonthDay#asComplexType"
+ style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="XSD_gMonthDay">
+ <wsdl:port binding="tns:XSD_gMonthDaySOAP"
+ name="XSD_gMonthDaySOAP">
+ <soap:address
+ location="http://localhost:9080/XSD_gMonthDay/services/XSD_gMonthDay" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/test/resources/wsdl/XSD_gYear.wsdl b/test/resources/wsdl/XSD_gYear.wsdl
new file mode 100644
index 0000000..0135260
--- /dev/null
+++ b/test/resources/wsdl/XSD_gYear.wsdl
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://xsd_gYear.test.apache.org"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="XSD_gYear"
+ targetNamespace="http://xsd_gYear.test.apache.org">
+ <wsdl:types>
+ <xsd:schema
+ targetNamespace="http://xsd_gYear.test.apache.org"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="asNonNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:gYear" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="AsNonNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:gYear" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:gYear" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:gYear" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="RequiredAttributeElement">
+ <xsd:attribute name="requiredAttribute" type="xsd:gYear"
+ use="required" />
+ </xsd:complexType>
+ <xsd:element name="asRequiredAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asRequiredAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="OptionalAttributeElement">
+ <xsd:attribute name="optionalAttribute" type="xsd:gYear"
+ use="optional" />
+ </xsd:complexType>
+ <xsd:element name="asOptionalAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asOptionalAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:gYear" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:gYear" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="SimpleComplexType">
+ <xsd:sequence>
+ <xsd:element name="complexTypeElement"
+ type="xsd:gYear" minOccurs="1" maxOccurs="1" nillable="false" />
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="asComplexTypeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asComplexTypeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="asNonNillableElementResponse">
+ <wsdl:part element="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:message>
+ <wsdl:message name="asNonNillableElementRequest">
+ <wsdl:part element="tns:AsNonNillableElementRequest"
+ name="parameters" />
+ </wsdl:message>
+ <wsdl:message name="asNillableElementResponse">
+ <wsdl:part name="asNillableElementResponse"
+ element="tns:asNillableElementResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asNillableElementRequest">
+ <wsdl:part name="asNillableElementRequest"
+ element="tns:asNillableElementRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeResponse">
+ <wsdl:part name="asRequiredAttributeResponse"
+ element="tns:asRequiredAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeRequest">
+ <wsdl:part name="asRequiredAttributeRequest"
+ element="tns:asRequiredAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeResponse">
+ <wsdl:part name="asOptionalAttributeResponse"
+ element="tns:asOptionalAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeRequest">
+ <wsdl:part name="asOptionalAttributeRequest"
+ element="tns:asOptionalAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayResponse">
+ <wsdl:part name="asArrayResponse"
+ element="tns:asArrayResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayRequest">
+ <wsdl:part name="asArrayRequest" element="tns:asArrayRequest"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeResponse">
+ <wsdl:part name="asComplexTypeResponse"
+ element="tns:asComplexTypeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeRequest">
+ <wsdl:part name="asComplexTypeRequest"
+ element="tns:asComplexTypeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="XSD_gYear">
+ <wsdl:operation name="asNonNillableElement">
+ <wsdl:input message="tns:asNonNillableElementRequest"
+ name="asNonNillableElementRequest" />
+ <wsdl:output message="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <wsdl:input message="tns:asNillableElementRequest"
+ name="asNillableElementRequest">
+ </wsdl:input>
+ <wsdl:output message="tns:asNillableElementResponse"
+ name="asNillableElementResponse">
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <wsdl:input message="tns:asRequiredAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asRequiredAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <wsdl:input message="tns:asOptionalAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asOptionalAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <wsdl:input message="tns:asArrayRequest"></wsdl:input>
+ <wsdl:output message="tns:asArrayResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <wsdl:input message="tns:asComplexTypeRequest"></wsdl:input>
+ <wsdl:output message="tns:asComplexTypeResponse"></wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="XSD_gYearSOAP" type="tns:XSD_gYear">
+ <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="asNonNillableElement">
+ <soap:operation
+ soapAction="XSD_gYear#asNonNillableElement" style="document" />
+ <wsdl:input name="asNonNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNonNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <soap:operation soapAction="XSD_gYear#asNillableElement"
+ style="document" />
+ <wsdl:input name="asNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <soap:operation
+ soapAction="XSD_gYear#asRequiredAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <soap:operation
+ soapAction="XSD_gYear#asOptionalAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <soap:operation soapAction="XSD_gYear#asArray" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <soap:operation soapAction="XSD_gYear#asComplexType"
+ style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="XSD_gYear">
+ <wsdl:port binding="tns:XSD_gYearSOAP"
+ name="XSD_gYearSOAP">
+ <soap:address
+ location="http://localhost:9080/XSD_gYear/services/XSD_gYear" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/test/resources/wsdl/XSD_gYearMonth.wsdl b/test/resources/wsdl/XSD_gYearMonth.wsdl
new file mode 100644
index 0000000..d0bd3f1
--- /dev/null
+++ b/test/resources/wsdl/XSD_gYearMonth.wsdl
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://xsd_gYearMonth.test.apache.org"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="XSD_gYearMonth"
+ targetNamespace="http://xsd_gYearMonth.test.apache.org">
+ <wsdl:types>
+ <xsd:schema
+ targetNamespace="http://xsd_gYearMonth.test.apache.org"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="asNonNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:gYearMonth" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="AsNonNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:gYearMonth" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:gYearMonth" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:gYearMonth" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="RequiredAttributeElement">
+ <xsd:attribute name="requiredAttribute" type="xsd:gYearMonth"
+ use="required" />
+ </xsd:complexType>
+ <xsd:element name="asRequiredAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asRequiredAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="OptionalAttributeElement">
+ <xsd:attribute name="optionalAttribute" type="xsd:gYearMonth"
+ use="optional" />
+ </xsd:complexType>
+ <xsd:element name="asOptionalAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asOptionalAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:gYearMonth" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:gYearMonth" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="SimpleComplexType">
+ <xsd:sequence>
+ <xsd:element name="complexTypeElement"
+ type="xsd:gYearMonth" minOccurs="1" maxOccurs="1" nillable="false" />
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="asComplexTypeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asComplexTypeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="asNonNillableElementResponse">
+ <wsdl:part element="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:message>
+ <wsdl:message name="asNonNillableElementRequest">
+ <wsdl:part element="tns:AsNonNillableElementRequest"
+ name="parameters" />
+ </wsdl:message>
+ <wsdl:message name="asNillableElementResponse">
+ <wsdl:part name="asNillableElementResponse"
+ element="tns:asNillableElementResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asNillableElementRequest">
+ <wsdl:part name="asNillableElementRequest"
+ element="tns:asNillableElementRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeResponse">
+ <wsdl:part name="asRequiredAttributeResponse"
+ element="tns:asRequiredAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeRequest">
+ <wsdl:part name="asRequiredAttributeRequest"
+ element="tns:asRequiredAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeResponse">
+ <wsdl:part name="asOptionalAttributeResponse"
+ element="tns:asOptionalAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeRequest">
+ <wsdl:part name="asOptionalAttributeRequest"
+ element="tns:asOptionalAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayResponse">
+ <wsdl:part name="asArrayResponse"
+ element="tns:asArrayResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayRequest">
+ <wsdl:part name="asArrayRequest" element="tns:asArrayRequest"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeResponse">
+ <wsdl:part name="asComplexTypeResponse"
+ element="tns:asComplexTypeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeRequest">
+ <wsdl:part name="asComplexTypeRequest"
+ element="tns:asComplexTypeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="XSD_gYearMonth">
+ <wsdl:operation name="asNonNillableElement">
+ <wsdl:input message="tns:asNonNillableElementRequest"
+ name="asNonNillableElementRequest" />
+ <wsdl:output message="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <wsdl:input message="tns:asNillableElementRequest"
+ name="asNillableElementRequest">
+ </wsdl:input>
+ <wsdl:output message="tns:asNillableElementResponse"
+ name="asNillableElementResponse">
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <wsdl:input message="tns:asRequiredAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asRequiredAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <wsdl:input message="tns:asOptionalAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asOptionalAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <wsdl:input message="tns:asArrayRequest"></wsdl:input>
+ <wsdl:output message="tns:asArrayResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <wsdl:input message="tns:asComplexTypeRequest"></wsdl:input>
+ <wsdl:output message="tns:asComplexTypeResponse"></wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="XSD_gYearMonthSOAP" type="tns:XSD_gYearMonth">
+ <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="asNonNillableElement">
+ <soap:operation
+ soapAction="XSD_gYearMonth#asNonNillableElement" style="document" />
+ <wsdl:input name="asNonNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNonNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <soap:operation soapAction="XSD_gYearMonth#asNillableElement"
+ style="document" />
+ <wsdl:input name="asNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <soap:operation
+ soapAction="XSD_gYearMonth#asRequiredAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <soap:operation
+ soapAction="XSD_gYearMonth#asOptionalAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <soap:operation soapAction="XSD_gYearMonth#asArray" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <soap:operation soapAction="XSD_gYearMonth#asComplexType"
+ style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="XSD_gYearMonth">
+ <wsdl:port binding="tns:XSD_gYearMonthSOAP"
+ name="XSD_gYearMonthSOAP">
+ <soap:address
+ location="http://localhost:9080/XSD_gYearMonth/services/XSD_gYearMonth" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/test/resources/wsdl/XSD_hexBinary.wsdl b/test/resources/wsdl/XSD_hexBinary.wsdl
new file mode 100644
index 0000000..1ace268
--- /dev/null
+++ b/test/resources/wsdl/XSD_hexBinary.wsdl
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://xsd_hexBinary.test.apache.org"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="XSD_hexBinary"
+ targetNamespace="http://xsd_hexBinary.test.apache.org">
+ <wsdl:types>
+ <xsd:schema
+ targetNamespace="http://xsd_hexBinary.test.apache.org"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="asNonNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:hexBinary" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="AsNonNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:hexBinary" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:hexBinary" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:hexBinary" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="RequiredAttributeElement">
+ <xsd:attribute name="requiredAttribute" type="xsd:hexBinary"
+ use="required" />
+ </xsd:complexType>
+ <xsd:element name="asRequiredAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asRequiredAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="OptionalAttributeElement">
+ <xsd:attribute name="optionalAttribute" type="xsd:hexBinary"
+ use="optional" />
+ </xsd:complexType>
+ <xsd:element name="asOptionalAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asOptionalAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:hexBinary" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:hexBinary" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="SimpleComplexType">
+ <xsd:sequence>
+ <xsd:element name="complexTypeElement"
+ type="xsd:hexBinary" minOccurs="1" maxOccurs="1" nillable="false" />
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="asComplexTypeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asComplexTypeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="asNonNillableElementResponse">
+ <wsdl:part element="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:message>
+ <wsdl:message name="asNonNillableElementRequest">
+ <wsdl:part element="tns:AsNonNillableElementRequest"
+ name="parameters" />
+ </wsdl:message>
+ <wsdl:message name="asNillableElementResponse">
+ <wsdl:part name="asNillableElementResponse"
+ element="tns:asNillableElementResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asNillableElementRequest">
+ <wsdl:part name="asNillableElementRequest"
+ element="tns:asNillableElementRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeResponse">
+ <wsdl:part name="asRequiredAttributeResponse"
+ element="tns:asRequiredAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeRequest">
+ <wsdl:part name="asRequiredAttributeRequest"
+ element="tns:asRequiredAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeResponse">
+ <wsdl:part name="asOptionalAttributeResponse"
+ element="tns:asOptionalAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeRequest">
+ <wsdl:part name="asOptionalAttributeRequest"
+ element="tns:asOptionalAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayResponse">
+ <wsdl:part name="asArrayResponse"
+ element="tns:asArrayResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayRequest">
+ <wsdl:part name="asArrayRequest" element="tns:asArrayRequest"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeResponse">
+ <wsdl:part name="asComplexTypeResponse"
+ element="tns:asComplexTypeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeRequest">
+ <wsdl:part name="asComplexTypeRequest"
+ element="tns:asComplexTypeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="XSD_hexBinary">
+ <wsdl:operation name="asNonNillableElement">
+ <wsdl:input message="tns:asNonNillableElementRequest"
+ name="asNonNillableElementRequest" />
+ <wsdl:output message="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <wsdl:input message="tns:asNillableElementRequest"
+ name="asNillableElementRequest">
+ </wsdl:input>
+ <wsdl:output message="tns:asNillableElementResponse"
+ name="asNillableElementResponse">
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <wsdl:input message="tns:asRequiredAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asRequiredAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <wsdl:input message="tns:asOptionalAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asOptionalAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <wsdl:input message="tns:asArrayRequest"></wsdl:input>
+ <wsdl:output message="tns:asArrayResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <wsdl:input message="tns:asComplexTypeRequest"></wsdl:input>
+ <wsdl:output message="tns:asComplexTypeResponse"></wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="XSD_hexBinarySOAP" type="tns:XSD_hexBinary">
+ <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="asNonNillableElement">
+ <soap:operation
+ soapAction="XSD_hexBinary#asNonNillableElement" style="document" />
+ <wsdl:input name="asNonNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNonNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <soap:operation soapAction="XSD_hexBinary#asNillableElement"
+ style="document" />
+ <wsdl:input name="asNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <soap:operation
+ soapAction="XSD_hexBinary#asRequiredAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <soap:operation
+ soapAction="XSD_hexBinary#asOptionalAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <soap:operation soapAction="XSD_hexBinary#asArray" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <soap:operation soapAction="XSD_hexBinary#asComplexType"
+ style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="XSD_hexBinary">
+ <wsdl:port binding="tns:XSD_hexBinarySOAP"
+ name="XSD_hexBinarySOAP">
+ <soap:address
+ location="http://localhost:9080/XSD_hexBinary/services/XSD_hexBinary" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/test/resources/wsdl/XSD_int.wsdl b/test/resources/wsdl/XSD_int.wsdl
new file mode 100644
index 0000000..897ba94
--- /dev/null
+++ b/test/resources/wsdl/XSD_int.wsdl
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://xsd_int.test.apache.org"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="XSD_int"
+ targetNamespace="http://xsd_int.test.apache.org">
+ <wsdl:types>
+ <xsd:schema
+ targetNamespace="http://xsd_int.test.apache.org"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="asNonNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:int" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="AsNonNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:int" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:int" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:int" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="RequiredAttributeElement">
+ <xsd:attribute name="requiredAttribute" type="xsd:int"
+ use="required" />
+ </xsd:complexType>
+ <xsd:element name="asRequiredAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asRequiredAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="OptionalAttributeElement">
+ <xsd:attribute name="optionalAttribute" type="xsd:int"
+ use="optional" />
+ </xsd:complexType>
+ <xsd:element name="asOptionalAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asOptionalAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:int" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:int" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="SimpleComplexType">
+ <xsd:sequence>
+ <xsd:element name="complexTypeElement"
+ type="xsd:int" minOccurs="1" maxOccurs="1" nillable="false" />
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="asComplexTypeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asComplexTypeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="asNonNillableElementResponse">
+ <wsdl:part element="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:message>
+ <wsdl:message name="asNonNillableElementRequest">
+ <wsdl:part element="tns:AsNonNillableElementRequest"
+ name="parameters" />
+ </wsdl:message>
+ <wsdl:message name="asNillableElementResponse">
+ <wsdl:part name="asNillableElementResponse"
+ element="tns:asNillableElementResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asNillableElementRequest">
+ <wsdl:part name="asNillableElementRequest"
+ element="tns:asNillableElementRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeResponse">
+ <wsdl:part name="asRequiredAttributeResponse"
+ element="tns:asRequiredAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeRequest">
+ <wsdl:part name="asRequiredAttributeRequest"
+ element="tns:asRequiredAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeResponse">
+ <wsdl:part name="asOptionalAttributeResponse"
+ element="tns:asOptionalAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeRequest">
+ <wsdl:part name="asOptionalAttributeRequest"
+ element="tns:asOptionalAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayResponse">
+ <wsdl:part name="asArrayResponse"
+ element="tns:asArrayResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayRequest">
+ <wsdl:part name="asArrayRequest" element="tns:asArrayRequest"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeResponse">
+ <wsdl:part name="asComplexTypeResponse"
+ element="tns:asComplexTypeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeRequest">
+ <wsdl:part name="asComplexTypeRequest"
+ element="tns:asComplexTypeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="XSD_int">
+ <wsdl:operation name="asNonNillableElement">
+ <wsdl:input message="tns:asNonNillableElementRequest"
+ name="asNonNillableElementRequest" />
+ <wsdl:output message="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <wsdl:input message="tns:asNillableElementRequest"
+ name="asNillableElementRequest">
+ </wsdl:input>
+ <wsdl:output message="tns:asNillableElementResponse"
+ name="asNillableElementResponse">
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <wsdl:input message="tns:asRequiredAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asRequiredAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <wsdl:input message="tns:asOptionalAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asOptionalAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <wsdl:input message="tns:asArrayRequest"></wsdl:input>
+ <wsdl:output message="tns:asArrayResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <wsdl:input message="tns:asComplexTypeRequest"></wsdl:input>
+ <wsdl:output message="tns:asComplexTypeResponse"></wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="XSD_intSOAP" type="tns:XSD_int">
+ <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="asNonNillableElement">
+ <soap:operation
+ soapAction="XSD_int#asNonNillableElement" style="document" />
+ <wsdl:input name="asNonNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNonNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <soap:operation soapAction="XSD_int#asNillableElement"
+ style="document" />
+ <wsdl:input name="asNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <soap:operation
+ soapAction="XSD_int#asRequiredAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <soap:operation
+ soapAction="XSD_int#asOptionalAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <soap:operation soapAction="XSD_int#asArray" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <soap:operation soapAction="XSD_int#asComplexType"
+ style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="XSD_int">
+ <wsdl:port binding="tns:XSD_intSOAP"
+ name="XSD_intSOAP">
+ <soap:address
+ location="http://localhost:9080/XSD_int/services/XSD_int" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/test/resources/wsdl/XSD_integer.wsdl b/test/resources/wsdl/XSD_integer.wsdl
new file mode 100644
index 0000000..162cc94
--- /dev/null
+++ b/test/resources/wsdl/XSD_integer.wsdl
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://xsd_integer.test.apache.org"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="XSD_integer"
+ targetNamespace="http://xsd_integer.test.apache.org">
+ <wsdl:types>
+ <xsd:schema
+ targetNamespace="http://xsd_integer.test.apache.org"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="asNonNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:integer" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="AsNonNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:integer" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:integer" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:integer" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="RequiredAttributeElement">
+ <xsd:attribute name="requiredAttribute" type="xsd:integer"
+ use="required" />
+ </xsd:complexType>
+ <xsd:element name="asRequiredAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asRequiredAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="OptionalAttributeElement">
+ <xsd:attribute name="optionalAttribute" type="xsd:integer"
+ use="optional" />
+ </xsd:complexType>
+ <xsd:element name="asOptionalAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asOptionalAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:integer" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:integer" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="SimpleComplexType">
+ <xsd:sequence>
+ <xsd:element name="complexTypeElement"
+ type="xsd:integer" minOccurs="1" maxOccurs="1" nillable="false" />
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="asComplexTypeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asComplexTypeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="asNonNillableElementResponse">
+ <wsdl:part element="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:message>
+ <wsdl:message name="asNonNillableElementRequest">
+ <wsdl:part element="tns:AsNonNillableElementRequest"
+ name="parameters" />
+ </wsdl:message>
+ <wsdl:message name="asNillableElementResponse">
+ <wsdl:part name="asNillableElementResponse"
+ element="tns:asNillableElementResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asNillableElementRequest">
+ <wsdl:part name="asNillableElementRequest"
+ element="tns:asNillableElementRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeResponse">
+ <wsdl:part name="asRequiredAttributeResponse"
+ element="tns:asRequiredAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeRequest">
+ <wsdl:part name="asRequiredAttributeRequest"
+ element="tns:asRequiredAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeResponse">
+ <wsdl:part name="asOptionalAttributeResponse"
+ element="tns:asOptionalAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeRequest">
+ <wsdl:part name="asOptionalAttributeRequest"
+ element="tns:asOptionalAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayResponse">
+ <wsdl:part name="asArrayResponse"
+ element="tns:asArrayResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayRequest">
+ <wsdl:part name="asArrayRequest" element="tns:asArrayRequest"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeResponse">
+ <wsdl:part name="asComplexTypeResponse"
+ element="tns:asComplexTypeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeRequest">
+ <wsdl:part name="asComplexTypeRequest"
+ element="tns:asComplexTypeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="XSD_integer">
+ <wsdl:operation name="asNonNillableElement">
+ <wsdl:input message="tns:asNonNillableElementRequest"
+ name="asNonNillableElementRequest" />
+ <wsdl:output message="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <wsdl:input message="tns:asNillableElementRequest"
+ name="asNillableElementRequest">
+ </wsdl:input>
+ <wsdl:output message="tns:asNillableElementResponse"
+ name="asNillableElementResponse">
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <wsdl:input message="tns:asRequiredAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asRequiredAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <wsdl:input message="tns:asOptionalAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asOptionalAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <wsdl:input message="tns:asArrayRequest"></wsdl:input>
+ <wsdl:output message="tns:asArrayResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <wsdl:input message="tns:asComplexTypeRequest"></wsdl:input>
+ <wsdl:output message="tns:asComplexTypeResponse"></wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="XSD_integerSOAP" type="tns:XSD_integer">
+ <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="asNonNillableElement">
+ <soap:operation
+ soapAction="XSD_integer#asNonNillableElement" style="document" />
+ <wsdl:input name="asNonNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNonNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <soap:operation soapAction="XSD_integer#asNillableElement"
+ style="document" />
+ <wsdl:input name="asNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <soap:operation
+ soapAction="XSD_integer#asRequiredAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <soap:operation
+ soapAction="XSD_integer#asOptionalAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <soap:operation soapAction="XSD_integer#asArray" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <soap:operation soapAction="XSD_integer#asComplexType"
+ style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="XSD_integer">
+ <wsdl:port binding="tns:XSD_integerSOAP"
+ name="XSD_integerSOAP">
+ <soap:address
+ location="http://localhost:9080/XSD_integer/services/XSD_integer" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/test/resources/wsdl/XSD_language.wsdl b/test/resources/wsdl/XSD_language.wsdl
new file mode 100644
index 0000000..e69a08a
--- /dev/null
+++ b/test/resources/wsdl/XSD_language.wsdl
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://xsd_language.test.apache.org"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="XSD_language"
+ targetNamespace="http://xsd_language.test.apache.org">
+ <wsdl:types>
+ <xsd:schema
+ targetNamespace="http://xsd_language.test.apache.org"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="asNonNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:language" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="AsNonNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:language" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:language" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:language" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="RequiredAttributeElement">
+ <xsd:attribute name="requiredAttribute" type="xsd:language"
+ use="required" />
+ </xsd:complexType>
+ <xsd:element name="asRequiredAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asRequiredAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="OptionalAttributeElement">
+ <xsd:attribute name="optionalAttribute" type="xsd:language"
+ use="optional" />
+ </xsd:complexType>
+ <xsd:element name="asOptionalAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asOptionalAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:language" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:language" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="SimpleComplexType">
+ <xsd:sequence>
+ <xsd:element name="complexTypeElement"
+ type="xsd:language" minOccurs="1" maxOccurs="1" nillable="false" />
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="asComplexTypeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asComplexTypeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="asNonNillableElementResponse">
+ <wsdl:part element="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:message>
+ <wsdl:message name="asNonNillableElementRequest">
+ <wsdl:part element="tns:AsNonNillableElementRequest"
+ name="parameters" />
+ </wsdl:message>
+ <wsdl:message name="asNillableElementResponse">
+ <wsdl:part name="asNillableElementResponse"
+ element="tns:asNillableElementResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asNillableElementRequest">
+ <wsdl:part name="asNillableElementRequest"
+ element="tns:asNillableElementRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeResponse">
+ <wsdl:part name="asRequiredAttributeResponse"
+ element="tns:asRequiredAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeRequest">
+ <wsdl:part name="asRequiredAttributeRequest"
+ element="tns:asRequiredAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeResponse">
+ <wsdl:part name="asOptionalAttributeResponse"
+ element="tns:asOptionalAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeRequest">
+ <wsdl:part name="asOptionalAttributeRequest"
+ element="tns:asOptionalAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayResponse">
+ <wsdl:part name="asArrayResponse"
+ element="tns:asArrayResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayRequest">
+ <wsdl:part name="asArrayRequest" element="tns:asArrayRequest"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeResponse">
+ <wsdl:part name="asComplexTypeResponse"
+ element="tns:asComplexTypeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeRequest">
+ <wsdl:part name="asComplexTypeRequest"
+ element="tns:asComplexTypeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="XSD_language">
+ <wsdl:operation name="asNonNillableElement">
+ <wsdl:input message="tns:asNonNillableElementRequest"
+ name="asNonNillableElementRequest" />
+ <wsdl:output message="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <wsdl:input message="tns:asNillableElementRequest"
+ name="asNillableElementRequest">
+ </wsdl:input>
+ <wsdl:output message="tns:asNillableElementResponse"
+ name="asNillableElementResponse">
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <wsdl:input message="tns:asRequiredAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asRequiredAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <wsdl:input message="tns:asOptionalAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asOptionalAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <wsdl:input message="tns:asArrayRequest"></wsdl:input>
+ <wsdl:output message="tns:asArrayResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <wsdl:input message="tns:asComplexTypeRequest"></wsdl:input>
+ <wsdl:output message="tns:asComplexTypeResponse"></wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="XSD_languageSOAP" type="tns:XSD_language">
+ <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="asNonNillableElement">
+ <soap:operation
+ soapAction="XSD_language#asNonNillableElement" style="document" />
+ <wsdl:input name="asNonNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNonNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <soap:operation soapAction="XSD_language#asNillableElement"
+ style="document" />
+ <wsdl:input name="asNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <soap:operation
+ soapAction="XSD_language#asRequiredAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <soap:operation
+ soapAction="XSD_language#asOptionalAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <soap:operation soapAction="XSD_language#asArray" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <soap:operation soapAction="XSD_language#asComplexType"
+ style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="XSD_language">
+ <wsdl:port binding="tns:XSD_languageSOAP"
+ name="XSD_languageSOAP">
+ <soap:address
+ location="http://localhost:9080/XSD_language/services/XSD_language" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/test/resources/wsdl/XSD_long.wsdl b/test/resources/wsdl/XSD_long.wsdl
new file mode 100644
index 0000000..8d9b562
--- /dev/null
+++ b/test/resources/wsdl/XSD_long.wsdl
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://xsd_long.test.apache.org"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="XSD_long"
+ targetNamespace="http://xsd_long.test.apache.org">
+ <wsdl:types>
+ <xsd:schema
+ targetNamespace="http://xsd_long.test.apache.org"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="asNonNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:long" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="AsNonNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:long" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:long" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:long" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="RequiredAttributeElement">
+ <xsd:attribute name="requiredAttribute" type="xsd:long"
+ use="required" />
+ </xsd:complexType>
+ <xsd:element name="asRequiredAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asRequiredAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="OptionalAttributeElement">
+ <xsd:attribute name="optionalAttribute" type="xsd:long"
+ use="optional" />
+ </xsd:complexType>
+ <xsd:element name="asOptionalAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asOptionalAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:long" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:long" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="SimpleComplexType">
+ <xsd:sequence>
+ <xsd:element name="complexTypeElement"
+ type="xsd:long" minOccurs="1" maxOccurs="1" nillable="false" />
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="asComplexTypeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asComplexTypeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="asNonNillableElementResponse">
+ <wsdl:part element="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:message>
+ <wsdl:message name="asNonNillableElementRequest">
+ <wsdl:part element="tns:AsNonNillableElementRequest"
+ name="parameters" />
+ </wsdl:message>
+ <wsdl:message name="asNillableElementResponse">
+ <wsdl:part name="asNillableElementResponse"
+ element="tns:asNillableElementResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asNillableElementRequest">
+ <wsdl:part name="asNillableElementRequest"
+ element="tns:asNillableElementRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeResponse">
+ <wsdl:part name="asRequiredAttributeResponse"
+ element="tns:asRequiredAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeRequest">
+ <wsdl:part name="asRequiredAttributeRequest"
+ element="tns:asRequiredAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeResponse">
+ <wsdl:part name="asOptionalAttributeResponse"
+ element="tns:asOptionalAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeRequest">
+ <wsdl:part name="asOptionalAttributeRequest"
+ element="tns:asOptionalAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayResponse">
+ <wsdl:part name="asArrayResponse"
+ element="tns:asArrayResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayRequest">
+ <wsdl:part name="asArrayRequest" element="tns:asArrayRequest"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeResponse">
+ <wsdl:part name="asComplexTypeResponse"
+ element="tns:asComplexTypeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeRequest">
+ <wsdl:part name="asComplexTypeRequest"
+ element="tns:asComplexTypeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="XSD_long">
+ <wsdl:operation name="asNonNillableElement">
+ <wsdl:input message="tns:asNonNillableElementRequest"
+ name="asNonNillableElementRequest" />
+ <wsdl:output message="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <wsdl:input message="tns:asNillableElementRequest"
+ name="asNillableElementRequest">
+ </wsdl:input>
+ <wsdl:output message="tns:asNillableElementResponse"
+ name="asNillableElementResponse">
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <wsdl:input message="tns:asRequiredAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asRequiredAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <wsdl:input message="tns:asOptionalAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asOptionalAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <wsdl:input message="tns:asArrayRequest"></wsdl:input>
+ <wsdl:output message="tns:asArrayResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <wsdl:input message="tns:asComplexTypeRequest"></wsdl:input>
+ <wsdl:output message="tns:asComplexTypeResponse"></wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="XSD_longSOAP" type="tns:XSD_long">
+ <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="asNonNillableElement">
+ <soap:operation
+ soapAction="XSD_long#asNonNillableElement" style="document" />
+ <wsdl:input name="asNonNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNonNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <soap:operation soapAction="XSD_long#asNillableElement"
+ style="document" />
+ <wsdl:input name="asNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <soap:operation
+ soapAction="XSD_long#asRequiredAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <soap:operation
+ soapAction="XSD_long#asOptionalAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <soap:operation soapAction="XSD_long#asArray" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <soap:operation soapAction="XSD_long#asComplexType"
+ style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="XSD_long">
+ <wsdl:port binding="tns:XSD_longSOAP"
+ name="XSD_longSOAP">
+ <soap:address
+ location="http://localhost:9080/XSD_long/services/XSD_long" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/test/resources/wsdl/XSD_negativeInteger.wsdl b/test/resources/wsdl/XSD_negativeInteger.wsdl
new file mode 100644
index 0000000..70abcda
--- /dev/null
+++ b/test/resources/wsdl/XSD_negativeInteger.wsdl
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://xsd_negativeInteger.test.apache.org"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="XSD_negativeInteger"
+ targetNamespace="http://xsd_negativeInteger.test.apache.org">
+ <wsdl:types>
+ <xsd:schema
+ targetNamespace="http://xsd_negativeInteger.test.apache.org"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="asNonNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:negativeInteger" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="AsNonNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:negativeInteger" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:negativeInteger" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:negativeInteger" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="RequiredAttributeElement">
+ <xsd:attribute name="requiredAttribute" type="xsd:negativeInteger"
+ use="required" />
+ </xsd:complexType>
+ <xsd:element name="asRequiredAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asRequiredAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="OptionalAttributeElement">
+ <xsd:attribute name="optionalAttribute" type="xsd:negativeInteger"
+ use="optional" />
+ </xsd:complexType>
+ <xsd:element name="asOptionalAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asOptionalAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:negativeInteger" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:negativeInteger" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="SimpleComplexType">
+ <xsd:sequence>
+ <xsd:element name="complexTypeElement"
+ type="xsd:negativeInteger" minOccurs="1" maxOccurs="1" nillable="false" />
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="asComplexTypeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asComplexTypeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="asNonNillableElementResponse">
+ <wsdl:part element="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:message>
+ <wsdl:message name="asNonNillableElementRequest">
+ <wsdl:part element="tns:AsNonNillableElementRequest"
+ name="parameters" />
+ </wsdl:message>
+ <wsdl:message name="asNillableElementResponse">
+ <wsdl:part name="asNillableElementResponse"
+ element="tns:asNillableElementResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asNillableElementRequest">
+ <wsdl:part name="asNillableElementRequest"
+ element="tns:asNillableElementRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeResponse">
+ <wsdl:part name="asRequiredAttributeResponse"
+ element="tns:asRequiredAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeRequest">
+ <wsdl:part name="asRequiredAttributeRequest"
+ element="tns:asRequiredAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeResponse">
+ <wsdl:part name="asOptionalAttributeResponse"
+ element="tns:asOptionalAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeRequest">
+ <wsdl:part name="asOptionalAttributeRequest"
+ element="tns:asOptionalAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayResponse">
+ <wsdl:part name="asArrayResponse"
+ element="tns:asArrayResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayRequest">
+ <wsdl:part name="asArrayRequest" element="tns:asArrayRequest"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeResponse">
+ <wsdl:part name="asComplexTypeResponse"
+ element="tns:asComplexTypeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeRequest">
+ <wsdl:part name="asComplexTypeRequest"
+ element="tns:asComplexTypeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="XSD_negativeInteger">
+ <wsdl:operation name="asNonNillableElement">
+ <wsdl:input message="tns:asNonNillableElementRequest"
+ name="asNonNillableElementRequest" />
+ <wsdl:output message="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <wsdl:input message="tns:asNillableElementRequest"
+ name="asNillableElementRequest">
+ </wsdl:input>
+ <wsdl:output message="tns:asNillableElementResponse"
+ name="asNillableElementResponse">
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <wsdl:input message="tns:asRequiredAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asRequiredAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <wsdl:input message="tns:asOptionalAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asOptionalAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <wsdl:input message="tns:asArrayRequest"></wsdl:input>
+ <wsdl:output message="tns:asArrayResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <wsdl:input message="tns:asComplexTypeRequest"></wsdl:input>
+ <wsdl:output message="tns:asComplexTypeResponse"></wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="XSD_negativeIntegerSOAP" type="tns:XSD_negativeInteger">
+ <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="asNonNillableElement">
+ <soap:operation
+ soapAction="XSD_negativeInteger#asNonNillableElement" style="document" />
+ <wsdl:input name="asNonNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNonNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <soap:operation soapAction="XSD_negativeInteger#asNillableElement"
+ style="document" />
+ <wsdl:input name="asNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <soap:operation
+ soapAction="XSD_negativeInteger#asRequiredAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <soap:operation
+ soapAction="XSD_negativeInteger#asOptionalAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <soap:operation soapAction="XSD_negativeInteger#asArray" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <soap:operation soapAction="XSD_negativeInteger#asComplexType"
+ style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="XSD_negativeInteger">
+ <wsdl:port binding="tns:XSD_negativeIntegerSOAP"
+ name="XSD_negativeIntegerSOAP">
+ <soap:address
+ location="http://localhost:9080/XSD_negativeInteger/services/XSD_negativeInteger" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/test/resources/wsdl/XSD_nonNegativeInteger.wsdl b/test/resources/wsdl/XSD_nonNegativeInteger.wsdl
new file mode 100644
index 0000000..b3baf36
--- /dev/null
+++ b/test/resources/wsdl/XSD_nonNegativeInteger.wsdl
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://xsd_nonNegativeInteger.test.apache.org"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="XSD_nonNegativeInteger"
+ targetNamespace="http://xsd_nonNegativeInteger.test.apache.org">
+ <wsdl:types>
+ <xsd:schema
+ targetNamespace="http://xsd_nonNegativeInteger.test.apache.org"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="asNonNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:nonNegativeInteger" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="AsNonNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:nonNegativeInteger" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:nonNegativeInteger" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:nonNegativeInteger" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="RequiredAttributeElement">
+ <xsd:attribute name="requiredAttribute" type="xsd:nonNegativeInteger"
+ use="required" />
+ </xsd:complexType>
+ <xsd:element name="asRequiredAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asRequiredAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="OptionalAttributeElement">
+ <xsd:attribute name="optionalAttribute" type="xsd:nonNegativeInteger"
+ use="optional" />
+ </xsd:complexType>
+ <xsd:element name="asOptionalAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asOptionalAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:nonNegativeInteger" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:nonNegativeInteger" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="SimpleComplexType">
+ <xsd:sequence>
+ <xsd:element name="complexTypeElement"
+ type="xsd:nonNegativeInteger" minOccurs="1" maxOccurs="1" nillable="false" />
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="asComplexTypeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asComplexTypeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="asNonNillableElementResponse">
+ <wsdl:part element="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:message>
+ <wsdl:message name="asNonNillableElementRequest">
+ <wsdl:part element="tns:AsNonNillableElementRequest"
+ name="parameters" />
+ </wsdl:message>
+ <wsdl:message name="asNillableElementResponse">
+ <wsdl:part name="asNillableElementResponse"
+ element="tns:asNillableElementResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asNillableElementRequest">
+ <wsdl:part name="asNillableElementRequest"
+ element="tns:asNillableElementRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeResponse">
+ <wsdl:part name="asRequiredAttributeResponse"
+ element="tns:asRequiredAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeRequest">
+ <wsdl:part name="asRequiredAttributeRequest"
+ element="tns:asRequiredAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeResponse">
+ <wsdl:part name="asOptionalAttributeResponse"
+ element="tns:asOptionalAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeRequest">
+ <wsdl:part name="asOptionalAttributeRequest"
+ element="tns:asOptionalAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayResponse">
+ <wsdl:part name="asArrayResponse"
+ element="tns:asArrayResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayRequest">
+ <wsdl:part name="asArrayRequest" element="tns:asArrayRequest"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeResponse">
+ <wsdl:part name="asComplexTypeResponse"
+ element="tns:asComplexTypeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeRequest">
+ <wsdl:part name="asComplexTypeRequest"
+ element="tns:asComplexTypeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="XSD_nonNegativeInteger">
+ <wsdl:operation name="asNonNillableElement">
+ <wsdl:input message="tns:asNonNillableElementRequest"
+ name="asNonNillableElementRequest" />
+ <wsdl:output message="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <wsdl:input message="tns:asNillableElementRequest"
+ name="asNillableElementRequest">
+ </wsdl:input>
+ <wsdl:output message="tns:asNillableElementResponse"
+ name="asNillableElementResponse">
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <wsdl:input message="tns:asRequiredAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asRequiredAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <wsdl:input message="tns:asOptionalAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asOptionalAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <wsdl:input message="tns:asArrayRequest"></wsdl:input>
+ <wsdl:output message="tns:asArrayResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <wsdl:input message="tns:asComplexTypeRequest"></wsdl:input>
+ <wsdl:output message="tns:asComplexTypeResponse"></wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="XSD_nonNegativeIntegerSOAP" type="tns:XSD_nonNegativeInteger">
+ <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="asNonNillableElement">
+ <soap:operation
+ soapAction="XSD_nonNegativeInteger#asNonNillableElement" style="document" />
+ <wsdl:input name="asNonNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNonNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <soap:operation soapAction="XSD_nonNegativeInteger#asNillableElement"
+ style="document" />
+ <wsdl:input name="asNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <soap:operation
+ soapAction="XSD_nonNegativeInteger#asRequiredAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <soap:operation
+ soapAction="XSD_nonNegativeInteger#asOptionalAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <soap:operation soapAction="XSD_nonNegativeInteger#asArray" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <soap:operation soapAction="XSD_nonNegativeInteger#asComplexType"
+ style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="XSD_nonNegativeInteger">
+ <wsdl:port binding="tns:XSD_nonNegativeIntegerSOAP"
+ name="XSD_nonNegativeIntegerSOAP">
+ <soap:address
+ location="http://localhost:9080/XSD_nonNegativeInteger/services/XSD_nonNegativeInteger" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/test/resources/wsdl/XSD_nonPositiveInteger.wsdl b/test/resources/wsdl/XSD_nonPositiveInteger.wsdl
new file mode 100644
index 0000000..ab95c37
--- /dev/null
+++ b/test/resources/wsdl/XSD_nonPositiveInteger.wsdl
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://xsd_nonPositiveInteger.test.apache.org"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="XSD_nonPositiveInteger"
+ targetNamespace="http://xsd_nonPositiveInteger.test.apache.org">
+ <wsdl:types>
+ <xsd:schema
+ targetNamespace="http://xsd_nonPositiveInteger.test.apache.org"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="asNonNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:nonPositiveInteger" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="AsNonNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:nonPositiveInteger" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:nonPositiveInteger" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:nonPositiveInteger" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="RequiredAttributeElement">
+ <xsd:attribute name="requiredAttribute" type="xsd:nonPositiveInteger"
+ use="required" />
+ </xsd:complexType>
+ <xsd:element name="asRequiredAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asRequiredAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="OptionalAttributeElement">
+ <xsd:attribute name="optionalAttribute" type="xsd:nonPositiveInteger"
+ use="optional" />
+ </xsd:complexType>
+ <xsd:element name="asOptionalAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asOptionalAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:nonPositiveInteger" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:nonPositiveInteger" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="SimpleComplexType">
+ <xsd:sequence>
+ <xsd:element name="complexTypeElement"
+ type="xsd:nonPositiveInteger" minOccurs="1" maxOccurs="1" nillable="false" />
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="asComplexTypeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asComplexTypeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="asNonNillableElementResponse">
+ <wsdl:part element="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:message>
+ <wsdl:message name="asNonNillableElementRequest">
+ <wsdl:part element="tns:AsNonNillableElementRequest"
+ name="parameters" />
+ </wsdl:message>
+ <wsdl:message name="asNillableElementResponse">
+ <wsdl:part name="asNillableElementResponse"
+ element="tns:asNillableElementResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asNillableElementRequest">
+ <wsdl:part name="asNillableElementRequest"
+ element="tns:asNillableElementRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeResponse">
+ <wsdl:part name="asRequiredAttributeResponse"
+ element="tns:asRequiredAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeRequest">
+ <wsdl:part name="asRequiredAttributeRequest"
+ element="tns:asRequiredAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeResponse">
+ <wsdl:part name="asOptionalAttributeResponse"
+ element="tns:asOptionalAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeRequest">
+ <wsdl:part name="asOptionalAttributeRequest"
+ element="tns:asOptionalAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayResponse">
+ <wsdl:part name="asArrayResponse"
+ element="tns:asArrayResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayRequest">
+ <wsdl:part name="asArrayRequest" element="tns:asArrayRequest"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeResponse">
+ <wsdl:part name="asComplexTypeResponse"
+ element="tns:asComplexTypeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeRequest">
+ <wsdl:part name="asComplexTypeRequest"
+ element="tns:asComplexTypeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="XSD_nonPositiveInteger">
+ <wsdl:operation name="asNonNillableElement">
+ <wsdl:input message="tns:asNonNillableElementRequest"
+ name="asNonNillableElementRequest" />
+ <wsdl:output message="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <wsdl:input message="tns:asNillableElementRequest"
+ name="asNillableElementRequest">
+ </wsdl:input>
+ <wsdl:output message="tns:asNillableElementResponse"
+ name="asNillableElementResponse">
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <wsdl:input message="tns:asRequiredAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asRequiredAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <wsdl:input message="tns:asOptionalAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asOptionalAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <wsdl:input message="tns:asArrayRequest"></wsdl:input>
+ <wsdl:output message="tns:asArrayResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <wsdl:input message="tns:asComplexTypeRequest"></wsdl:input>
+ <wsdl:output message="tns:asComplexTypeResponse"></wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="XSD_nonPositiveIntegerSOAP" type="tns:XSD_nonPositiveInteger">
+ <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="asNonNillableElement">
+ <soap:operation
+ soapAction="XSD_nonPositiveInteger#asNonNillableElement" style="document" />
+ <wsdl:input name="asNonNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNonNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <soap:operation soapAction="XSD_nonPositiveInteger#asNillableElement"
+ style="document" />
+ <wsdl:input name="asNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <soap:operation
+ soapAction="XSD_nonPositiveInteger#asRequiredAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <soap:operation
+ soapAction="XSD_nonPositiveInteger#asOptionalAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <soap:operation soapAction="XSD_nonPositiveInteger#asArray" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <soap:operation soapAction="XSD_nonPositiveInteger#asComplexType"
+ style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="XSD_nonPositiveInteger">
+ <wsdl:port binding="tns:XSD_nonPositiveIntegerSOAP"
+ name="XSD_nonPositiveIntegerSOAP">
+ <soap:address
+ location="http://localhost:9080/XSD_nonPositiveInteger/services/XSD_nonPositiveInteger" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/test/resources/wsdl/XSD_normalizedString.wsdl b/test/resources/wsdl/XSD_normalizedString.wsdl
new file mode 100644
index 0000000..4e44c2e
--- /dev/null
+++ b/test/resources/wsdl/XSD_normalizedString.wsdl
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://xsd_normalizedString.test.apache.org"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="XSD_normalizedString"
+ targetNamespace="http://xsd_normalizedString.test.apache.org">
+ <wsdl:types>
+ <xsd:schema
+ targetNamespace="http://xsd_normalizedString.test.apache.org"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="asNonNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:normalizedString" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="AsNonNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:normalizedString" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:normalizedString" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:normalizedString" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="RequiredAttributeElement">
+ <xsd:attribute name="requiredAttribute" type="xsd:normalizedString"
+ use="required" />
+ </xsd:complexType>
+ <xsd:element name="asRequiredAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asRequiredAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="OptionalAttributeElement">
+ <xsd:attribute name="optionalAttribute" type="xsd:normalizedString"
+ use="optional" />
+ </xsd:complexType>
+ <xsd:element name="asOptionalAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asOptionalAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:normalizedString" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:normalizedString" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="SimpleComplexType">
+ <xsd:sequence>
+ <xsd:element name="complexTypeElement"
+ type="xsd:normalizedString" minOccurs="1" maxOccurs="1" nillable="false" />
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="asComplexTypeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asComplexTypeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="asNonNillableElementResponse">
+ <wsdl:part element="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:message>
+ <wsdl:message name="asNonNillableElementRequest">
+ <wsdl:part element="tns:AsNonNillableElementRequest"
+ name="parameters" />
+ </wsdl:message>
+ <wsdl:message name="asNillableElementResponse">
+ <wsdl:part name="asNillableElementResponse"
+ element="tns:asNillableElementResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asNillableElementRequest">
+ <wsdl:part name="asNillableElementRequest"
+ element="tns:asNillableElementRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeResponse">
+ <wsdl:part name="asRequiredAttributeResponse"
+ element="tns:asRequiredAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeRequest">
+ <wsdl:part name="asRequiredAttributeRequest"
+ element="tns:asRequiredAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeResponse">
+ <wsdl:part name="asOptionalAttributeResponse"
+ element="tns:asOptionalAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeRequest">
+ <wsdl:part name="asOptionalAttributeRequest"
+ element="tns:asOptionalAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayResponse">
+ <wsdl:part name="asArrayResponse"
+ element="tns:asArrayResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayRequest">
+ <wsdl:part name="asArrayRequest" element="tns:asArrayRequest"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeResponse">
+ <wsdl:part name="asComplexTypeResponse"
+ element="tns:asComplexTypeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeRequest">
+ <wsdl:part name="asComplexTypeRequest"
+ element="tns:asComplexTypeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="XSD_normalizedString">
+ <wsdl:operation name="asNonNillableElement">
+ <wsdl:input message="tns:asNonNillableElementRequest"
+ name="asNonNillableElementRequest" />
+ <wsdl:output message="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <wsdl:input message="tns:asNillableElementRequest"
+ name="asNillableElementRequest">
+ </wsdl:input>
+ <wsdl:output message="tns:asNillableElementResponse"
+ name="asNillableElementResponse">
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <wsdl:input message="tns:asRequiredAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asRequiredAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <wsdl:input message="tns:asOptionalAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asOptionalAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <wsdl:input message="tns:asArrayRequest"></wsdl:input>
+ <wsdl:output message="tns:asArrayResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <wsdl:input message="tns:asComplexTypeRequest"></wsdl:input>
+ <wsdl:output message="tns:asComplexTypeResponse"></wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="XSD_normalizedStringSOAP" type="tns:XSD_normalizedString">
+ <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="asNonNillableElement">
+ <soap:operation
+ soapAction="XSD_normalizedString#asNonNillableElement" style="document" />
+ <wsdl:input name="asNonNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNonNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <soap:operation soapAction="XSD_normalizedString#asNillableElement"
+ style="document" />
+ <wsdl:input name="asNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <soap:operation
+ soapAction="XSD_normalizedString#asRequiredAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <soap:operation
+ soapAction="XSD_normalizedString#asOptionalAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <soap:operation soapAction="XSD_normalizedString#asArray" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <soap:operation soapAction="XSD_normalizedString#asComplexType"
+ style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="XSD_normalizedString">
+ <wsdl:port binding="tns:XSD_normalizedStringSOAP"
+ name="XSD_normalizedStringSOAP">
+ <soap:address
+ location="http://localhost:9080/XSD_normalizedString/services/XSD_normalizedString" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/test/resources/wsdl/XSD_positiveInteger.wsdl b/test/resources/wsdl/XSD_positiveInteger.wsdl
new file mode 100644
index 0000000..ce5c1bb
--- /dev/null
+++ b/test/resources/wsdl/XSD_positiveInteger.wsdl
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://xsd_positiveInteger.test.apache.org"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="XSD_positiveInteger"
+ targetNamespace="http://xsd_positiveInteger.test.apache.org">
+ <wsdl:types>
+ <xsd:schema
+ targetNamespace="http://xsd_positiveInteger.test.apache.org"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="asNonNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:positiveInteger" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="AsNonNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:positiveInteger" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:positiveInteger" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:positiveInteger" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="RequiredAttributeElement">
+ <xsd:attribute name="requiredAttribute" type="xsd:positiveInteger"
+ use="required" />
+ </xsd:complexType>
+ <xsd:element name="asRequiredAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asRequiredAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="OptionalAttributeElement">
+ <xsd:attribute name="optionalAttribute" type="xsd:positiveInteger"
+ use="optional" />
+ </xsd:complexType>
+ <xsd:element name="asOptionalAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asOptionalAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:positiveInteger" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:positiveInteger" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="SimpleComplexType">
+ <xsd:sequence>
+ <xsd:element name="complexTypeElement"
+ type="xsd:positiveInteger" minOccurs="1" maxOccurs="1" nillable="false" />
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="asComplexTypeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asComplexTypeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="asNonNillableElementResponse">
+ <wsdl:part element="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:message>
+ <wsdl:message name="asNonNillableElementRequest">
+ <wsdl:part element="tns:AsNonNillableElementRequest"
+ name="parameters" />
+ </wsdl:message>
+ <wsdl:message name="asNillableElementResponse">
+ <wsdl:part name="asNillableElementResponse"
+ element="tns:asNillableElementResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asNillableElementRequest">
+ <wsdl:part name="asNillableElementRequest"
+ element="tns:asNillableElementRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeResponse">
+ <wsdl:part name="asRequiredAttributeResponse"
+ element="tns:asRequiredAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeRequest">
+ <wsdl:part name="asRequiredAttributeRequest"
+ element="tns:asRequiredAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeResponse">
+ <wsdl:part name="asOptionalAttributeResponse"
+ element="tns:asOptionalAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeRequest">
+ <wsdl:part name="asOptionalAttributeRequest"
+ element="tns:asOptionalAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayResponse">
+ <wsdl:part name="asArrayResponse"
+ element="tns:asArrayResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayRequest">
+ <wsdl:part name="asArrayRequest" element="tns:asArrayRequest"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeResponse">
+ <wsdl:part name="asComplexTypeResponse"
+ element="tns:asComplexTypeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeRequest">
+ <wsdl:part name="asComplexTypeRequest"
+ element="tns:asComplexTypeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="XSD_positiveInteger">
+ <wsdl:operation name="asNonNillableElement">
+ <wsdl:input message="tns:asNonNillableElementRequest"
+ name="asNonNillableElementRequest" />
+ <wsdl:output message="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <wsdl:input message="tns:asNillableElementRequest"
+ name="asNillableElementRequest">
+ </wsdl:input>
+ <wsdl:output message="tns:asNillableElementResponse"
+ name="asNillableElementResponse">
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <wsdl:input message="tns:asRequiredAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asRequiredAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <wsdl:input message="tns:asOptionalAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asOptionalAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <wsdl:input message="tns:asArrayRequest"></wsdl:input>
+ <wsdl:output message="tns:asArrayResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <wsdl:input message="tns:asComplexTypeRequest"></wsdl:input>
+ <wsdl:output message="tns:asComplexTypeResponse"></wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="XSD_positiveIntegerSOAP" type="tns:XSD_positiveInteger">
+ <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="asNonNillableElement">
+ <soap:operation
+ soapAction="XSD_positiveInteger#asNonNillableElement" style="document" />
+ <wsdl:input name="asNonNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNonNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <soap:operation soapAction="XSD_positiveInteger#asNillableElement"
+ style="document" />
+ <wsdl:input name="asNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <soap:operation
+ soapAction="XSD_positiveInteger#asRequiredAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <soap:operation
+ soapAction="XSD_positiveInteger#asOptionalAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <soap:operation soapAction="XSD_positiveInteger#asArray" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <soap:operation soapAction="XSD_positiveInteger#asComplexType"
+ style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="XSD_positiveInteger">
+ <wsdl:port binding="tns:XSD_positiveIntegerSOAP"
+ name="XSD_positiveIntegerSOAP">
+ <soap:address
+ location="http://localhost:9080/XSD_positiveInteger/services/XSD_positiveInteger" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/test/resources/wsdl/XSD_short.wsdl b/test/resources/wsdl/XSD_short.wsdl
new file mode 100644
index 0000000..f707d77
--- /dev/null
+++ b/test/resources/wsdl/XSD_short.wsdl
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://xsd_short.test.apache.org"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="XSD_short"
+ targetNamespace="http://xsd_short.test.apache.org">
+ <wsdl:types>
+ <xsd:schema
+ targetNamespace="http://xsd_short.test.apache.org"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="asNonNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:short" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="AsNonNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:short" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:short" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:short" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="RequiredAttributeElement">
+ <xsd:attribute name="requiredAttribute" type="xsd:short"
+ use="required" />
+ </xsd:complexType>
+ <xsd:element name="asRequiredAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asRequiredAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="OptionalAttributeElement">
+ <xsd:attribute name="optionalAttribute" type="xsd:short"
+ use="optional" />
+ </xsd:complexType>
+ <xsd:element name="asOptionalAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asOptionalAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:short" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:short" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="SimpleComplexType">
+ <xsd:sequence>
+ <xsd:element name="complexTypeElement"
+ type="xsd:short" minOccurs="1" maxOccurs="1" nillable="false" />
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="asComplexTypeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asComplexTypeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="asNonNillableElementResponse">
+ <wsdl:part element="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:message>
+ <wsdl:message name="asNonNillableElementRequest">
+ <wsdl:part element="tns:AsNonNillableElementRequest"
+ name="parameters" />
+ </wsdl:message>
+ <wsdl:message name="asNillableElementResponse">
+ <wsdl:part name="asNillableElementResponse"
+ element="tns:asNillableElementResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asNillableElementRequest">
+ <wsdl:part name="asNillableElementRequest"
+ element="tns:asNillableElementRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeResponse">
+ <wsdl:part name="asRequiredAttributeResponse"
+ element="tns:asRequiredAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeRequest">
+ <wsdl:part name="asRequiredAttributeRequest"
+ element="tns:asRequiredAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeResponse">
+ <wsdl:part name="asOptionalAttributeResponse"
+ element="tns:asOptionalAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeRequest">
+ <wsdl:part name="asOptionalAttributeRequest"
+ element="tns:asOptionalAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayResponse">
+ <wsdl:part name="asArrayResponse"
+ element="tns:asArrayResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayRequest">
+ <wsdl:part name="asArrayRequest" element="tns:asArrayRequest"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeResponse">
+ <wsdl:part name="asComplexTypeResponse"
+ element="tns:asComplexTypeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeRequest">
+ <wsdl:part name="asComplexTypeRequest"
+ element="tns:asComplexTypeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="XSD_short">
+ <wsdl:operation name="asNonNillableElement">
+ <wsdl:input message="tns:asNonNillableElementRequest"
+ name="asNonNillableElementRequest" />
+ <wsdl:output message="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <wsdl:input message="tns:asNillableElementRequest"
+ name="asNillableElementRequest">
+ </wsdl:input>
+ <wsdl:output message="tns:asNillableElementResponse"
+ name="asNillableElementResponse">
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <wsdl:input message="tns:asRequiredAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asRequiredAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <wsdl:input message="tns:asOptionalAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asOptionalAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <wsdl:input message="tns:asArrayRequest"></wsdl:input>
+ <wsdl:output message="tns:asArrayResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <wsdl:input message="tns:asComplexTypeRequest"></wsdl:input>
+ <wsdl:output message="tns:asComplexTypeResponse"></wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="XSD_shortSOAP" type="tns:XSD_short">
+ <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="asNonNillableElement">
+ <soap:operation
+ soapAction="XSD_short#asNonNillableElement" style="document" />
+ <wsdl:input name="asNonNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNonNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <soap:operation soapAction="XSD_short#asNillableElement"
+ style="document" />
+ <wsdl:input name="asNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <soap:operation
+ soapAction="XSD_short#asRequiredAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <soap:operation
+ soapAction="XSD_short#asOptionalAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <soap:operation soapAction="XSD_short#asArray" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <soap:operation soapAction="XSD_short#asComplexType"
+ style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="XSD_short">
+ <wsdl:port binding="tns:XSD_shortSOAP"
+ name="XSD_shortSOAP">
+ <soap:address
+ location="http://localhost:9080/XSD_short/services/XSD_short" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/test/resources/wsdl/XSD_string.wsdl b/test/resources/wsdl/XSD_string.wsdl
new file mode 100644
index 0000000..f325e17
--- /dev/null
+++ b/test/resources/wsdl/XSD_string.wsdl
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://xsd_string.test.apache.org"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="XSD_string"
+ targetNamespace="http://xsd_string.test.apache.org">
+ <wsdl:types>
+ <xsd:schema
+ targetNamespace="http://xsd_string.test.apache.org"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="asNonNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:string" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="AsNonNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:string" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:string" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:string" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="RequiredAttributeElement">
+ <xsd:attribute name="requiredAttribute" type="xsd:string"
+ use="required" />
+ </xsd:complexType>
+ <xsd:element name="asRequiredAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asRequiredAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="OptionalAttributeElement">
+ <xsd:attribute name="optionalAttribute" type="xsd:string"
+ use="optional" />
+ </xsd:complexType>
+ <xsd:element name="asOptionalAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asOptionalAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:string" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:string" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="SimpleComplexType">
+ <xsd:sequence>
+ <xsd:element name="complexTypeElement"
+ type="xsd:string" minOccurs="1" maxOccurs="1" nillable="false" />
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="asComplexTypeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asComplexTypeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="asNonNillableElementResponse">
+ <wsdl:part element="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:message>
+ <wsdl:message name="asNonNillableElementRequest">
+ <wsdl:part element="tns:AsNonNillableElementRequest"
+ name="parameters" />
+ </wsdl:message>
+ <wsdl:message name="asNillableElementResponse">
+ <wsdl:part name="asNillableElementResponse"
+ element="tns:asNillableElementResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asNillableElementRequest">
+ <wsdl:part name="asNillableElementRequest"
+ element="tns:asNillableElementRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeResponse">
+ <wsdl:part name="asRequiredAttributeResponse"
+ element="tns:asRequiredAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeRequest">
+ <wsdl:part name="asRequiredAttributeRequest"
+ element="tns:asRequiredAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeResponse">
+ <wsdl:part name="asOptionalAttributeResponse"
+ element="tns:asOptionalAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeRequest">
+ <wsdl:part name="asOptionalAttributeRequest"
+ element="tns:asOptionalAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayResponse">
+ <wsdl:part name="asArrayResponse"
+ element="tns:asArrayResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayRequest">
+ <wsdl:part name="asArrayRequest" element="tns:asArrayRequest"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeResponse">
+ <wsdl:part name="asComplexTypeResponse"
+ element="tns:asComplexTypeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeRequest">
+ <wsdl:part name="asComplexTypeRequest"
+ element="tns:asComplexTypeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="XSD_string">
+ <wsdl:operation name="asNonNillableElement">
+ <wsdl:input message="tns:asNonNillableElementRequest"
+ name="asNonNillableElementRequest" />
+ <wsdl:output message="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <wsdl:input message="tns:asNillableElementRequest"
+ name="asNillableElementRequest">
+ </wsdl:input>
+ <wsdl:output message="tns:asNillableElementResponse"
+ name="asNillableElementResponse">
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <wsdl:input message="tns:asRequiredAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asRequiredAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <wsdl:input message="tns:asOptionalAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asOptionalAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <wsdl:input message="tns:asArrayRequest"></wsdl:input>
+ <wsdl:output message="tns:asArrayResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <wsdl:input message="tns:asComplexTypeRequest"></wsdl:input>
+ <wsdl:output message="tns:asComplexTypeResponse"></wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="XSD_stringSOAP" type="tns:XSD_string">
+ <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="asNonNillableElement">
+ <soap:operation
+ soapAction="XSD_string#asNonNillableElement" style="document" />
+ <wsdl:input name="asNonNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNonNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <soap:operation soapAction="XSD_string#asNillableElement"
+ style="document" />
+ <wsdl:input name="asNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <soap:operation
+ soapAction="XSD_string#asRequiredAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <soap:operation
+ soapAction="XSD_string#asOptionalAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <soap:operation soapAction="XSD_string#asArray" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <soap:operation soapAction="XSD_string#asComplexType"
+ style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="XSD_string">
+ <wsdl:port binding="tns:XSD_stringSOAP"
+ name="XSD_stringSOAP">
+ <soap:address
+ location="http://localhost:9080/XSD_string/services/XSD_string" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/test/resources/wsdl/XSD_time.wsdl b/test/resources/wsdl/XSD_time.wsdl
new file mode 100644
index 0000000..fc47d5a
--- /dev/null
+++ b/test/resources/wsdl/XSD_time.wsdl
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://xsd_time.test.apache.org"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="XSD_time"
+ targetNamespace="http://xsd_time.test.apache.org">
+ <wsdl:types>
+ <xsd:schema
+ targetNamespace="http://xsd_time.test.apache.org"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="asNonNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:time" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="AsNonNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:time" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:time" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:time" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="RequiredAttributeElement">
+ <xsd:attribute name="requiredAttribute" type="xsd:time"
+ use="required" />
+ </xsd:complexType>
+ <xsd:element name="asRequiredAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asRequiredAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="OptionalAttributeElement">
+ <xsd:attribute name="optionalAttribute" type="xsd:time"
+ use="optional" />
+ </xsd:complexType>
+ <xsd:element name="asOptionalAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asOptionalAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:time" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:time" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="SimpleComplexType">
+ <xsd:sequence>
+ <xsd:element name="complexTypeElement"
+ type="xsd:time" minOccurs="1" maxOccurs="1" nillable="false" />
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="asComplexTypeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asComplexTypeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="asNonNillableElementResponse">
+ <wsdl:part element="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:message>
+ <wsdl:message name="asNonNillableElementRequest">
+ <wsdl:part element="tns:AsNonNillableElementRequest"
+ name="parameters" />
+ </wsdl:message>
+ <wsdl:message name="asNillableElementResponse">
+ <wsdl:part name="asNillableElementResponse"
+ element="tns:asNillableElementResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asNillableElementRequest">
+ <wsdl:part name="asNillableElementRequest"
+ element="tns:asNillableElementRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeResponse">
+ <wsdl:part name="asRequiredAttributeResponse"
+ element="tns:asRequiredAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeRequest">
+ <wsdl:part name="asRequiredAttributeRequest"
+ element="tns:asRequiredAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeResponse">
+ <wsdl:part name="asOptionalAttributeResponse"
+ element="tns:asOptionalAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeRequest">
+ <wsdl:part name="asOptionalAttributeRequest"
+ element="tns:asOptionalAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayResponse">
+ <wsdl:part name="asArrayResponse"
+ element="tns:asArrayResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayRequest">
+ <wsdl:part name="asArrayRequest" element="tns:asArrayRequest"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeResponse">
+ <wsdl:part name="asComplexTypeResponse"
+ element="tns:asComplexTypeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeRequest">
+ <wsdl:part name="asComplexTypeRequest"
+ element="tns:asComplexTypeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="XSD_time">
+ <wsdl:operation name="asNonNillableElement">
+ <wsdl:input message="tns:asNonNillableElementRequest"
+ name="asNonNillableElementRequest" />
+ <wsdl:output message="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <wsdl:input message="tns:asNillableElementRequest"
+ name="asNillableElementRequest">
+ </wsdl:input>
+ <wsdl:output message="tns:asNillableElementResponse"
+ name="asNillableElementResponse">
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <wsdl:input message="tns:asRequiredAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asRequiredAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <wsdl:input message="tns:asOptionalAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asOptionalAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <wsdl:input message="tns:asArrayRequest"></wsdl:input>
+ <wsdl:output message="tns:asArrayResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <wsdl:input message="tns:asComplexTypeRequest"></wsdl:input>
+ <wsdl:output message="tns:asComplexTypeResponse"></wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="XSD_timeSOAP" type="tns:XSD_time">
+ <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="asNonNillableElement">
+ <soap:operation
+ soapAction="XSD_time#asNonNillableElement" style="document" />
+ <wsdl:input name="asNonNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNonNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <soap:operation soapAction="XSD_time#asNillableElement"
+ style="document" />
+ <wsdl:input name="asNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <soap:operation
+ soapAction="XSD_time#asRequiredAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <soap:operation
+ soapAction="XSD_time#asOptionalAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <soap:operation soapAction="XSD_time#asArray" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <soap:operation soapAction="XSD_time#asComplexType"
+ style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="XSD_time">
+ <wsdl:port binding="tns:XSD_timeSOAP"
+ name="XSD_timeSOAP">
+ <soap:address
+ location="http://localhost:9080/XSD_time/services/XSD_time" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/test/resources/wsdl/XSD_token.wsdl b/test/resources/wsdl/XSD_token.wsdl
new file mode 100644
index 0000000..6ff5990
--- /dev/null
+++ b/test/resources/wsdl/XSD_token.wsdl
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://xsd_token.test.apache.org"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="XSD_token"
+ targetNamespace="http://xsd_token.test.apache.org">
+ <wsdl:types>
+ <xsd:schema
+ targetNamespace="http://xsd_token.test.apache.org"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="asNonNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:token" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="AsNonNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:token" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:token" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:token" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="RequiredAttributeElement">
+ <xsd:attribute name="requiredAttribute" type="xsd:token"
+ use="required" />
+ </xsd:complexType>
+ <xsd:element name="asRequiredAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asRequiredAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="OptionalAttributeElement">
+ <xsd:attribute name="optionalAttribute" type="xsd:token"
+ use="optional" />
+ </xsd:complexType>
+ <xsd:element name="asOptionalAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asOptionalAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:token" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:token" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="SimpleComplexType">
+ <xsd:sequence>
+ <xsd:element name="complexTypeElement"
+ type="xsd:token" minOccurs="1" maxOccurs="1" nillable="false" />
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="asComplexTypeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asComplexTypeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="asNonNillableElementResponse">
+ <wsdl:part element="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:message>
+ <wsdl:message name="asNonNillableElementRequest">
+ <wsdl:part element="tns:AsNonNillableElementRequest"
+ name="parameters" />
+ </wsdl:message>
+ <wsdl:message name="asNillableElementResponse">
+ <wsdl:part name="asNillableElementResponse"
+ element="tns:asNillableElementResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asNillableElementRequest">
+ <wsdl:part name="asNillableElementRequest"
+ element="tns:asNillableElementRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeResponse">
+ <wsdl:part name="asRequiredAttributeResponse"
+ element="tns:asRequiredAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeRequest">
+ <wsdl:part name="asRequiredAttributeRequest"
+ element="tns:asRequiredAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeResponse">
+ <wsdl:part name="asOptionalAttributeResponse"
+ element="tns:asOptionalAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeRequest">
+ <wsdl:part name="asOptionalAttributeRequest"
+ element="tns:asOptionalAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayResponse">
+ <wsdl:part name="asArrayResponse"
+ element="tns:asArrayResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayRequest">
+ <wsdl:part name="asArrayRequest" element="tns:asArrayRequest"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeResponse">
+ <wsdl:part name="asComplexTypeResponse"
+ element="tns:asComplexTypeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeRequest">
+ <wsdl:part name="asComplexTypeRequest"
+ element="tns:asComplexTypeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="XSD_token">
+ <wsdl:operation name="asNonNillableElement">
+ <wsdl:input message="tns:asNonNillableElementRequest"
+ name="asNonNillableElementRequest" />
+ <wsdl:output message="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <wsdl:input message="tns:asNillableElementRequest"
+ name="asNillableElementRequest">
+ </wsdl:input>
+ <wsdl:output message="tns:asNillableElementResponse"
+ name="asNillableElementResponse">
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <wsdl:input message="tns:asRequiredAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asRequiredAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <wsdl:input message="tns:asOptionalAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asOptionalAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <wsdl:input message="tns:asArrayRequest"></wsdl:input>
+ <wsdl:output message="tns:asArrayResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <wsdl:input message="tns:asComplexTypeRequest"></wsdl:input>
+ <wsdl:output message="tns:asComplexTypeResponse"></wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="XSD_tokenSOAP" type="tns:XSD_token">
+ <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="asNonNillableElement">
+ <soap:operation
+ soapAction="XSD_token#asNonNillableElement" style="document" />
+ <wsdl:input name="asNonNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNonNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <soap:operation soapAction="XSD_token#asNillableElement"
+ style="document" />
+ <wsdl:input name="asNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <soap:operation
+ soapAction="XSD_token#asRequiredAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <soap:operation
+ soapAction="XSD_token#asOptionalAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <soap:operation soapAction="XSD_token#asArray" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <soap:operation soapAction="XSD_token#asComplexType"
+ style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="XSD_token">
+ <wsdl:port binding="tns:XSD_tokenSOAP"
+ name="XSD_tokenSOAP">
+ <soap:address
+ location="http://localhost:9080/XSD_token/services/XSD_token" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/test/resources/wsdl/XSD_unsignedByte.wsdl b/test/resources/wsdl/XSD_unsignedByte.wsdl
new file mode 100644
index 0000000..4b13551
--- /dev/null
+++ b/test/resources/wsdl/XSD_unsignedByte.wsdl
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://xsd_unsignedByte.test.apache.org"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="XSD_unsignedByte"
+ targetNamespace="http://xsd_unsignedByte.test.apache.org">
+ <wsdl:types>
+ <xsd:schema
+ targetNamespace="http://xsd_unsignedByte.test.apache.org"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="asNonNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:unsignedByte" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="AsNonNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:unsignedByte" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:unsignedByte" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:unsignedByte" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="RequiredAttributeElement">
+ <xsd:attribute name="requiredAttribute" type="xsd:unsignedByte"
+ use="required" />
+ </xsd:complexType>
+ <xsd:element name="asRequiredAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asRequiredAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="OptionalAttributeElement">
+ <xsd:attribute name="optionalAttribute" type="xsd:unsignedByte"
+ use="optional" />
+ </xsd:complexType>
+ <xsd:element name="asOptionalAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asOptionalAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:unsignedByte" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:unsignedByte" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="SimpleComplexType">
+ <xsd:sequence>
+ <xsd:element name="complexTypeElement"
+ type="xsd:unsignedByte" minOccurs="1" maxOccurs="1" nillable="false" />
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="asComplexTypeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asComplexTypeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="asNonNillableElementResponse">
+ <wsdl:part element="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:message>
+ <wsdl:message name="asNonNillableElementRequest">
+ <wsdl:part element="tns:AsNonNillableElementRequest"
+ name="parameters" />
+ </wsdl:message>
+ <wsdl:message name="asNillableElementResponse">
+ <wsdl:part name="asNillableElementResponse"
+ element="tns:asNillableElementResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asNillableElementRequest">
+ <wsdl:part name="asNillableElementRequest"
+ element="tns:asNillableElementRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeResponse">
+ <wsdl:part name="asRequiredAttributeResponse"
+ element="tns:asRequiredAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeRequest">
+ <wsdl:part name="asRequiredAttributeRequest"
+ element="tns:asRequiredAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeResponse">
+ <wsdl:part name="asOptionalAttributeResponse"
+ element="tns:asOptionalAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeRequest">
+ <wsdl:part name="asOptionalAttributeRequest"
+ element="tns:asOptionalAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayResponse">
+ <wsdl:part name="asArrayResponse"
+ element="tns:asArrayResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayRequest">
+ <wsdl:part name="asArrayRequest" element="tns:asArrayRequest"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeResponse">
+ <wsdl:part name="asComplexTypeResponse"
+ element="tns:asComplexTypeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeRequest">
+ <wsdl:part name="asComplexTypeRequest"
+ element="tns:asComplexTypeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="XSD_unsignedByte">
+ <wsdl:operation name="asNonNillableElement">
+ <wsdl:input message="tns:asNonNillableElementRequest"
+ name="asNonNillableElementRequest" />
+ <wsdl:output message="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <wsdl:input message="tns:asNillableElementRequest"
+ name="asNillableElementRequest">
+ </wsdl:input>
+ <wsdl:output message="tns:asNillableElementResponse"
+ name="asNillableElementResponse">
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <wsdl:input message="tns:asRequiredAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asRequiredAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <wsdl:input message="tns:asOptionalAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asOptionalAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <wsdl:input message="tns:asArrayRequest"></wsdl:input>
+ <wsdl:output message="tns:asArrayResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <wsdl:input message="tns:asComplexTypeRequest"></wsdl:input>
+ <wsdl:output message="tns:asComplexTypeResponse"></wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="XSD_unsignedByteSOAP" type="tns:XSD_unsignedByte">
+ <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="asNonNillableElement">
+ <soap:operation
+ soapAction="XSD_unsignedByte#asNonNillableElement" style="document" />
+ <wsdl:input name="asNonNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNonNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <soap:operation soapAction="XSD_unsignedByte#asNillableElement"
+ style="document" />
+ <wsdl:input name="asNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <soap:operation
+ soapAction="XSD_unsignedByte#asRequiredAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <soap:operation
+ soapAction="XSD_unsignedByte#asOptionalAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <soap:operation soapAction="XSD_unsignedByte#asArray" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <soap:operation soapAction="XSD_unsignedByte#asComplexType"
+ style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="XSD_unsignedByte">
+ <wsdl:port binding="tns:XSD_unsignedByteSOAP"
+ name="XSD_unsignedByteSOAP">
+ <soap:address
+ location="http://localhost:9080/XSD_unsignedByte/services/XSD_unsignedByte" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/test/resources/wsdl/XSD_unsignedInt.wsdl b/test/resources/wsdl/XSD_unsignedInt.wsdl
new file mode 100644
index 0000000..2c60e37
--- /dev/null
+++ b/test/resources/wsdl/XSD_unsignedInt.wsdl
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://xsd_unsignedInt.test.apache.org"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="XSD_unsignedInt"
+ targetNamespace="http://xsd_unsignedInt.test.apache.org">
+ <wsdl:types>
+ <xsd:schema
+ targetNamespace="http://xsd_unsignedInt.test.apache.org"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="asNonNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:unsignedInt" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="AsNonNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:unsignedInt" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:unsignedInt" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:unsignedInt" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="RequiredAttributeElement">
+ <xsd:attribute name="requiredAttribute" type="xsd:unsignedInt"
+ use="required" />
+ </xsd:complexType>
+ <xsd:element name="asRequiredAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asRequiredAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="OptionalAttributeElement">
+ <xsd:attribute name="optionalAttribute" type="xsd:unsignedInt"
+ use="optional" />
+ </xsd:complexType>
+ <xsd:element name="asOptionalAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asOptionalAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:unsignedInt" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:unsignedInt" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="SimpleComplexType">
+ <xsd:sequence>
+ <xsd:element name="complexTypeElement"
+ type="xsd:unsignedInt" minOccurs="1" maxOccurs="1" nillable="false" />
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="asComplexTypeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asComplexTypeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="asNonNillableElementResponse">
+ <wsdl:part element="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:message>
+ <wsdl:message name="asNonNillableElementRequest">
+ <wsdl:part element="tns:AsNonNillableElementRequest"
+ name="parameters" />
+ </wsdl:message>
+ <wsdl:message name="asNillableElementResponse">
+ <wsdl:part name="asNillableElementResponse"
+ element="tns:asNillableElementResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asNillableElementRequest">
+ <wsdl:part name="asNillableElementRequest"
+ element="tns:asNillableElementRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeResponse">
+ <wsdl:part name="asRequiredAttributeResponse"
+ element="tns:asRequiredAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeRequest">
+ <wsdl:part name="asRequiredAttributeRequest"
+ element="tns:asRequiredAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeResponse">
+ <wsdl:part name="asOptionalAttributeResponse"
+ element="tns:asOptionalAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeRequest">
+ <wsdl:part name="asOptionalAttributeRequest"
+ element="tns:asOptionalAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayResponse">
+ <wsdl:part name="asArrayResponse"
+ element="tns:asArrayResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayRequest">
+ <wsdl:part name="asArrayRequest" element="tns:asArrayRequest"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeResponse">
+ <wsdl:part name="asComplexTypeResponse"
+ element="tns:asComplexTypeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeRequest">
+ <wsdl:part name="asComplexTypeRequest"
+ element="tns:asComplexTypeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="XSD_unsignedInt">
+ <wsdl:operation name="asNonNillableElement">
+ <wsdl:input message="tns:asNonNillableElementRequest"
+ name="asNonNillableElementRequest" />
+ <wsdl:output message="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <wsdl:input message="tns:asNillableElementRequest"
+ name="asNillableElementRequest">
+ </wsdl:input>
+ <wsdl:output message="tns:asNillableElementResponse"
+ name="asNillableElementResponse">
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <wsdl:input message="tns:asRequiredAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asRequiredAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <wsdl:input message="tns:asOptionalAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asOptionalAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <wsdl:input message="tns:asArrayRequest"></wsdl:input>
+ <wsdl:output message="tns:asArrayResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <wsdl:input message="tns:asComplexTypeRequest"></wsdl:input>
+ <wsdl:output message="tns:asComplexTypeResponse"></wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="XSD_unsignedIntSOAP" type="tns:XSD_unsignedInt">
+ <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="asNonNillableElement">
+ <soap:operation
+ soapAction="XSD_unsignedInt#asNonNillableElement" style="document" />
+ <wsdl:input name="asNonNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNonNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <soap:operation soapAction="XSD_unsignedInt#asNillableElement"
+ style="document" />
+ <wsdl:input name="asNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <soap:operation
+ soapAction="XSD_unsignedInt#asRequiredAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <soap:operation
+ soapAction="XSD_unsignedInt#asOptionalAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <soap:operation soapAction="XSD_unsignedInt#asArray" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <soap:operation soapAction="XSD_unsignedInt#asComplexType"
+ style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="XSD_unsignedInt">
+ <wsdl:port binding="tns:XSD_unsignedIntSOAP"
+ name="XSD_unsignedIntSOAP">
+ <soap:address
+ location="http://localhost:9080/XSD_unsignedInt/services/XSD_unsignedInt" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/test/resources/wsdl/XSD_unsignedLong.wsdl b/test/resources/wsdl/XSD_unsignedLong.wsdl
new file mode 100644
index 0000000..04de8dd
--- /dev/null
+++ b/test/resources/wsdl/XSD_unsignedLong.wsdl
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://xsd_unsignedLong.test.apache.org"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="XSD_unsignedLong"
+ targetNamespace="http://xsd_unsignedLong.test.apache.org">
+ <wsdl:types>
+ <xsd:schema
+ targetNamespace="http://xsd_unsignedLong.test.apache.org"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="asNonNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:unsignedLong" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="AsNonNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:unsignedLong" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:unsignedLong" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:unsignedLong" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="RequiredAttributeElement">
+ <xsd:attribute name="requiredAttribute" type="xsd:unsignedLong"
+ use="required" />
+ </xsd:complexType>
+ <xsd:element name="asRequiredAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asRequiredAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="OptionalAttributeElement">
+ <xsd:attribute name="optionalAttribute" type="xsd:unsignedLong"
+ use="optional" />
+ </xsd:complexType>
+ <xsd:element name="asOptionalAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asOptionalAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:unsignedLong" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:unsignedLong" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="SimpleComplexType">
+ <xsd:sequence>
+ <xsd:element name="complexTypeElement"
+ type="xsd:unsignedLong" minOccurs="1" maxOccurs="1" nillable="false" />
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="asComplexTypeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asComplexTypeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="asNonNillableElementResponse">
+ <wsdl:part element="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:message>
+ <wsdl:message name="asNonNillableElementRequest">
+ <wsdl:part element="tns:AsNonNillableElementRequest"
+ name="parameters" />
+ </wsdl:message>
+ <wsdl:message name="asNillableElementResponse">
+ <wsdl:part name="asNillableElementResponse"
+ element="tns:asNillableElementResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asNillableElementRequest">
+ <wsdl:part name="asNillableElementRequest"
+ element="tns:asNillableElementRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeResponse">
+ <wsdl:part name="asRequiredAttributeResponse"
+ element="tns:asRequiredAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeRequest">
+ <wsdl:part name="asRequiredAttributeRequest"
+ element="tns:asRequiredAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeResponse">
+ <wsdl:part name="asOptionalAttributeResponse"
+ element="tns:asOptionalAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeRequest">
+ <wsdl:part name="asOptionalAttributeRequest"
+ element="tns:asOptionalAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayResponse">
+ <wsdl:part name="asArrayResponse"
+ element="tns:asArrayResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayRequest">
+ <wsdl:part name="asArrayRequest" element="tns:asArrayRequest"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeResponse">
+ <wsdl:part name="asComplexTypeResponse"
+ element="tns:asComplexTypeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeRequest">
+ <wsdl:part name="asComplexTypeRequest"
+ element="tns:asComplexTypeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="XSD_unsignedLong">
+ <wsdl:operation name="asNonNillableElement">
+ <wsdl:input message="tns:asNonNillableElementRequest"
+ name="asNonNillableElementRequest" />
+ <wsdl:output message="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <wsdl:input message="tns:asNillableElementRequest"
+ name="asNillableElementRequest">
+ </wsdl:input>
+ <wsdl:output message="tns:asNillableElementResponse"
+ name="asNillableElementResponse">
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <wsdl:input message="tns:asRequiredAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asRequiredAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <wsdl:input message="tns:asOptionalAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asOptionalAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <wsdl:input message="tns:asArrayRequest"></wsdl:input>
+ <wsdl:output message="tns:asArrayResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <wsdl:input message="tns:asComplexTypeRequest"></wsdl:input>
+ <wsdl:output message="tns:asComplexTypeResponse"></wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="XSD_unsignedLongSOAP" type="tns:XSD_unsignedLong">
+ <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="asNonNillableElement">
+ <soap:operation
+ soapAction="XSD_unsignedLong#asNonNillableElement" style="document" />
+ <wsdl:input name="asNonNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNonNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <soap:operation soapAction="XSD_unsignedLong#asNillableElement"
+ style="document" />
+ <wsdl:input name="asNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <soap:operation
+ soapAction="XSD_unsignedLong#asRequiredAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <soap:operation
+ soapAction="XSD_unsignedLong#asOptionalAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <soap:operation soapAction="XSD_unsignedLong#asArray" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <soap:operation soapAction="XSD_unsignedLong#asComplexType"
+ style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="XSD_unsignedLong">
+ <wsdl:port binding="tns:XSD_unsignedLongSOAP"
+ name="XSD_unsignedLongSOAP">
+ <soap:address
+ location="http://localhost:9080/XSD_unsignedLong/services/XSD_unsignedLong" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/test/resources/wsdl/XSD_unsignedShort.wsdl b/test/resources/wsdl/XSD_unsignedShort.wsdl
new file mode 100644
index 0000000..9338c34
--- /dev/null
+++ b/test/resources/wsdl/XSD_unsignedShort.wsdl
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://xsd_unsignedShort.test.apache.org"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="XSD_unsignedShort"
+ targetNamespace="http://xsd_unsignedShort.test.apache.org">
+ <wsdl:types>
+ <xsd:schema
+ targetNamespace="http://xsd_unsignedShort.test.apache.org"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="asNonNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:unsignedShort" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="AsNonNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nonNillableElement"
+ type="xsd:unsignedShort" nillable="false" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:unsignedShort" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asNillableElementRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="nillableElement"
+ type="xsd:unsignedShort" nillable="true" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="RequiredAttributeElement">
+ <xsd:attribute name="requiredAttribute" type="xsd:unsignedShort"
+ use="required" />
+ </xsd:complexType>
+ <xsd:element name="asRequiredAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asRequiredAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="RequiredAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:RequiredAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="OptionalAttributeElement">
+ <xsd:attribute name="optionalAttribute" type="xsd:unsignedShort"
+ use="optional" />
+ </xsd:complexType>
+ <xsd:element name="asOptionalAttributeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asOptionalAttributeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="OptionalAttributeElement"
+ maxOccurs="1" minOccurs="1" type="tns:OptionalAttributeElement" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:unsignedShort" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asArrayRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="arrayElement"
+ type="xsd:unsignedShort" nillable="false" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="SimpleComplexType">
+ <xsd:sequence>
+ <xsd:element name="complexTypeElement"
+ type="xsd:unsignedShort" minOccurs="1" maxOccurs="1" nillable="false" />
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="asComplexTypeResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="asComplexTypeRequest">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="SimpleComplexType"
+ type="tns:SimpleComplexType" nillable="false" minOccurs="1"
+ maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="asNonNillableElementResponse">
+ <wsdl:part element="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:message>
+ <wsdl:message name="asNonNillableElementRequest">
+ <wsdl:part element="tns:AsNonNillableElementRequest"
+ name="parameters" />
+ </wsdl:message>
+ <wsdl:message name="asNillableElementResponse">
+ <wsdl:part name="asNillableElementResponse"
+ element="tns:asNillableElementResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asNillableElementRequest">
+ <wsdl:part name="asNillableElementRequest"
+ element="tns:asNillableElementRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeResponse">
+ <wsdl:part name="asRequiredAttributeResponse"
+ element="tns:asRequiredAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asRequiredAttributeRequest">
+ <wsdl:part name="asRequiredAttributeRequest"
+ element="tns:asRequiredAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeResponse">
+ <wsdl:part name="asOptionalAttributeResponse"
+ element="tns:asOptionalAttributeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asOptionalAttributeRequest">
+ <wsdl:part name="asOptionalAttributeRequest"
+ element="tns:asOptionalAttributeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayResponse">
+ <wsdl:part name="asArrayResponse"
+ element="tns:asArrayResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asArrayRequest">
+ <wsdl:part name="asArrayRequest" element="tns:asArrayRequest"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeResponse">
+ <wsdl:part name="asComplexTypeResponse"
+ element="tns:asComplexTypeResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="asComplexTypeRequest">
+ <wsdl:part name="asComplexTypeRequest"
+ element="tns:asComplexTypeRequest">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="XSD_unsignedShort">
+ <wsdl:operation name="asNonNillableElement">
+ <wsdl:input message="tns:asNonNillableElementRequest"
+ name="asNonNillableElementRequest" />
+ <wsdl:output message="tns:asNonNillableElementResponse"
+ name="asNonNillableElementResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <wsdl:input message="tns:asNillableElementRequest"
+ name="asNillableElementRequest">
+ </wsdl:input>
+ <wsdl:output message="tns:asNillableElementResponse"
+ name="asNillableElementResponse">
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <wsdl:input message="tns:asRequiredAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asRequiredAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <wsdl:input message="tns:asOptionalAttributeRequest"></wsdl:input>
+ <wsdl:output message="tns:asOptionalAttributeResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <wsdl:input message="tns:asArrayRequest"></wsdl:input>
+ <wsdl:output message="tns:asArrayResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <wsdl:input message="tns:asComplexTypeRequest"></wsdl:input>
+ <wsdl:output message="tns:asComplexTypeResponse"></wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="XSD_unsignedShortSOAP" type="tns:XSD_unsignedShort">
+ <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="asNonNillableElement">
+ <soap:operation
+ soapAction="XSD_unsignedShort#asNonNillableElement" style="document" />
+ <wsdl:input name="asNonNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNonNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asNillableElement">
+ <soap:operation soapAction="XSD_unsignedShort#asNillableElement"
+ style="document" />
+ <wsdl:input name="asNillableElementRequest">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="asNillableElementResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asRequiredAttribute">
+ <soap:operation
+ soapAction="XSD_unsignedShort#asRequiredAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asOptionalAttribute">
+ <soap:operation
+ soapAction="XSD_unsignedShort#asOptionalAttribute" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asArray">
+ <soap:operation soapAction="XSD_unsignedShort#asArray" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="asComplexType">
+ <soap:operation soapAction="XSD_unsignedShort#asComplexType"
+ style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="XSD_unsignedShort">
+ <wsdl:port binding="tns:XSD_unsignedShortSOAP"
+ name="XSD_unsignedShortSOAP">
+ <soap:address
+ location="http://localhost:9080/XSD_unsignedShort/services/XSD_unsignedShort" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/test/resources/wsdl/inquire_v2.wsdl b/test/resources/wsdl/inquire_v2.wsdl
new file mode 100644
index 0000000..44cf70c
--- /dev/null
+++ b/test/resources/wsdl/inquire_v2.wsdl
@@ -0,0 +1,273 @@
+<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="urn:uddi-org:inquiry_v2" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:uddi="urn:uddi-org:api_v2" targetNamespace="urn:uddi-org:inquiry_v2" name="UDDI_Inquiry_API_V2">
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- -->
+<!-- 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. -->
+
+ <documentation>
+ Copyright (c) 2000 - 2002 by Accenture, Ariba, Inc., Commerce One, Inc.
+ Fujitsu Limited, Hewlett-Packard Company, i2 Technologies, Inc.,
+ Intel Corporation, International Business Machines Corporation,
+ Microsoft Corporation, Oracle Corporation, SAP AG, Sun Microsystems, Inc.,
+ and VeriSign, Inc. All Rights Reserved.
+
+ WSDL Service Interface for UDDI Inquiry API V2.0
+
+ This WSDL document defines the inquiry API calls for interacting with
+ the UDDI registry. The complete UDDI API specification is available
+ at http://www.uddi.org/specification.html.
+ </documentation>
+ <types>
+ <xsd:schema targetNamespace="urn:uddi-org:inquiry_v2" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:import namespace="urn:uddi-org:api_v2" schemaLocation="http://www.uddi.org/schema/uddi_v2.xsd"/>
+ </xsd:schema>
+ </types>
+ <message name="bindingDetail">
+ <part name="body" element="uddi:bindingDetail"/>
+ </message>
+ <message name="businessDetail">
+ <part name="body" element="uddi:businessDetail"/>
+ </message>
+ <message name="businessDetailExt">
+ <part name="body" element="uddi:businessDetailExt"/>
+ </message>
+ <message name="businessList">
+ <part name="body" element="uddi:businessList"/>
+ </message>
+ <message name="dispositionReport">
+ <part name="body" element="uddi:dispositionReport"/>
+ </message>
+ <message name="find_binding">
+ <part name="body" element="uddi:find_binding"/>
+ </message>
+ <message name="find_business">
+ <part name="body" element="uddi:find_business"/>
+ </message>
+ <message name="find_relatedBusinesses">
+ <part name="body" element="uddi:find_relatedBusinesses"/>
+ </message>
+ <message name="find_service">
+ <part name="body" element="uddi:find_service"/>
+ </message>
+ <message name="find_tModel">
+ <part name="body" element="uddi:find_tModel"/>
+ </message>
+ <message name="get_bindingDetail">
+ <part name="body" element="uddi:get_bindingDetail"/>
+ </message>
+ <message name="get_businessDetail">
+ <part name="body" element="uddi:get_businessDetail"/>
+ </message>
+ <message name="get_businessDetailExt">
+ <part name="body" element="uddi:get_businessDetailExt"/>
+ </message>
+ <message name="get_serviceDetail">
+ <part name="body" element="uddi:get_serviceDetail"/>
+ </message>
+ <message name="get_tModelDetail">
+ <part name="body" element="uddi:get_tModelDetail"/>
+ </message>
+ <message name="relatedBusinessesList">
+ <part name="body" element="uddi:relatedBusinessesList"/>
+ </message>
+ <message name="serviceDetail">
+ <part name="body" element="uddi:serviceDetail"/>
+ </message>
+ <message name="serviceList">
+ <part name="body" element="uddi:serviceList"/>
+ </message>
+ <message name="tModelDetail">
+ <part name="body" element="uddi:tModelDetail"/>
+ </message>
+ <message name="tModelList">
+ <part name="body" element="uddi:tModelList"/>
+ </message>
+ <portType name="Inquire">
+ <documentation>
+ This portType defines all of the UDDI inquiry operations.
+ </documentation>
+ <operation name="find_binding">
+ <input message="tns:find_binding"/>
+ <output message="tns:bindingDetail"/>
+ <fault name="error" message="tns:dispositionReport"/>
+ </operation>
+ <operation name="find_business">
+ <input message="tns:find_business"/>
+ <output message="tns:businessList"/>
+ <fault name="error" message="tns:dispositionReport"/>
+ </operation>
+ <operation name="find_relatedBusinesses">
+ <input message="tns:find_relatedBusinesses"/>
+ <output message="tns:relatedBusinessesList"/>
+ <fault name="error" message="tns:dispositionReport"/>
+ </operation>
+ <operation name="find_service">
+ <input message="tns:find_service"/>
+ <output message="tns:serviceList"/>
+ <fault name="error" message="tns:dispositionReport"/>
+ </operation>
+ <operation name="find_tModel">
+ <input message="tns:find_tModel"/>
+ <output message="tns:tModelList"/>
+ <fault name="error" message="tns:dispositionReport"/>
+ </operation>
+ <operation name="get_bindingDetail">
+ <input message="tns:get_bindingDetail"/>
+ <output message="tns:bindingDetail"/>
+ <fault name="error" message="tns:dispositionReport"/>
+ </operation>
+ <operation name="get_businessDetail">
+ <input message="tns:get_businessDetail"/>
+ <output message="tns:businessDetail"/>
+ <fault name="error" message="tns:dispositionReport"/>
+ </operation>
+ <operation name="get_businessDetailExt">
+ <input message="tns:get_businessDetailExt"/>
+ <output message="tns:businessDetailExt"/>
+ <fault name="error" message="tns:dispositionReport"/>
+ </operation>
+ <operation name="get_serviceDetail">
+ <input message="tns:get_serviceDetail"/>
+ <output message="tns:serviceDetail"/>
+ <fault name="error" message="tns:dispositionReport"/>
+ </operation>
+ <operation name="get_tModelDetail">
+ <input message="tns:get_tModelDetail"/>
+ <output message="tns:tModelDetail"/>
+ <fault name="error" message="tns:dispositionReport"/>
+ </operation>
+ </portType>
+ <binding name="InquireSoap" type="tns:Inquire">
+ <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+
+ <operation name="find_binding">
+ <soap:operation soapAction="find_binding" style="document"/>
+ <input>
+ <soap:body parts="body" use="literal" namespace="urn:uddi-org:api_v2"/>
+ </input>
+ <output>
+ <soap:body parts="body" use="literal" namespace="urn:uddi-org:api_v2"/>
+ </output>
+ <fault name="error">
+ <soap:fault name="error" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="find_business">
+ <soap:operation soapAction="find_business" style="document"/>
+ <input>
+ <soap:body parts="body" use="literal" namespace="urn:uddi-org:api_v2"/>
+ </input>
+ <output>
+ <soap:body parts="body" use="literal" namespace="urn:uddi-org:api_v2"/>
+ </output>
+ <fault name="error">
+ <soap:fault name="error" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="find_relatedBusinesses">
+ <soap:operation soapAction="find_relatedBusinesses" style="document"/>
+ <input>
+ <soap:body parts="body" use="literal" namespace="urn:uddi-org:api_v2"/>
+ </input>
+ <output>
+ <soap:body parts="body" use="literal" namespace="urn:uddi-org:api_v2"/>
+ </output>
+ <fault name="error">
+ <soap:fault name="error" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="find_service">
+ <soap:operation soapAction="find_service" style="document"/>
+ <input>
+ <soap:body parts="body" use="literal" namespace="urn:uddi-org:api_v2"/>
+ </input>
+ <output>
+ <soap:body parts="body" use="literal" namespace="urn:uddi-org:api_v2"/>
+ </output>
+ <fault name="error">
+ <soap:fault name="error" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="find_tModel">
+ <soap:operation soapAction="find_tModel" style="document"/>
+ <input>
+ <soap:body parts="body" use="literal" namespace="urn:uddi-org:api_v2"/>
+ </input>
+ <output>
+ <soap:body parts="body" use="literal" namespace="urn:uddi-org:api_v2"/>
+ </output>
+ <fault name="error">
+ <soap:fault name="error" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="get_bindingDetail">
+ <soap:operation soapAction="get_bindingDetail" style="document"/>
+ <input>
+ <soap:body parts="body" use="literal" namespace="urn:uddi-org:api_v2"/>
+ </input>
+ <output>
+ <soap:body parts="body" use="literal" namespace="urn:uddi-org:api_v2"/>
+ </output>
+ <fault name="error">
+ <soap:fault name="error" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="get_businessDetail">
+ <soap:operation soapAction="get_businessDetail" style="document"/>
+ <input>
+ <soap:body parts="body" use="literal" namespace="urn:uddi-org:api_v2"/>
+ </input>
+ <output>
+ <soap:body parts="body" use="literal" namespace="urn:uddi-org:api_v2"/>
+ </output>
+ <fault name="error">
+ <soap:fault name="error" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="get_businessDetailExt">
+ <soap:operation soapAction="get_businessDetailExt" style="document"/>
+ <input>
+ <soap:body parts="body" use="literal" namespace="urn:uddi-org:api_v2"/>
+ </input>
+ <output>
+ <soap:body parts="body" use="literal" namespace="urn:uddi-org:api_v2"/>
+ </output>
+ <fault name="error">
+ <soap:fault name="error" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="get_serviceDetail">
+ <soap:operation soapAction="get_serviceDetail" style="document"/>
+ <input>
+ <soap:body parts="body" use="literal" namespace="urn:uddi-org:api_v2"/>
+ </input>
+ <output>
+ <soap:body parts="body" use="literal" namespace="urn:uddi-org:api_v2"/>
+ </output>
+ <fault name="error">
+ <soap:fault name="error" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="get_tModelDetail">
+ <soap:operation soapAction="get_tModelDetail" style="document"/>
+ <input>
+ <soap:body parts="body" use="literal" namespace="urn:uddi-org:api_v2"/>
+ </input>
+ <output>
+ <soap:body parts="body" use="literal" namespace="urn:uddi-org:api_v2"/>
+ </output>
+ <fault name="error">
+ <soap:fault name="error" use="literal"/>
+ </fault>
+ </operation>
+ </binding>
+</definitions>
diff --git a/test/resources/wsdl/interoptestdoclitparameters.wsdl b/test/resources/wsdl/interoptestdoclitparameters.wsdl
new file mode 100644
index 0000000..7cf3fa4
--- /dev/null
+++ b/test/resources/wsdl/interoptestdoclitparameters.wsdl
@@ -0,0 +1,175 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<definitions name="WSDLInteropTestDocLitService"
+ targetNamespace="http://soapinterop.org/WSDLInteropTestDocLit"
+ xmlns="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://soapinterop.org/WSDLInteropTestDocLit"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsd1="http://soapinterop.org/xsd"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <types>
+ <schema targetNamespace="http://soapinterop.org/xsd"
+ xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+ <complexType name="ArrayOfstring_literal">
+ <sequence>
+ <element maxOccurs="unbounded" minOccurs="1" name="string" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ <complexType name="SOAPStruct">
+ <all>
+ <element name="varFloat" type="xsd:float"/>
+ <element name="varInt" type="xsd:int"/>
+ <element name="varString" type="xsd:string"/>
+ </all>
+ </complexType>
+
+ <element name="echoString">
+ <complexType>
+ <sequence>
+ <element name="param0" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoStringResponse">
+ <complexType>
+ <sequence>
+ <element name="return" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoStringArray">
+ <complexType>
+ <sequence>
+ <element name="param0" type="xsd1:ArrayOfstring_literal"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoStringArrayResponse">
+ <complexType>
+ <sequence>
+ <element name="return" type="xsd1:ArrayOfstring_literal"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoStruct">
+ <complexType>
+ <sequence>
+ <element name="param0" type="xsd1:SOAPStruct"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoStructResponse">
+ <complexType>
+ <sequence>
+ <element name="return" type="xsd1:SOAPStruct"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoVoid">
+ <complexType/>
+ </element>
+ <element name="echoVoidResponse">
+ <complexType/>
+ </element>
+ </schema>
+ </types>
+ <message name="echoString">
+ <part element="xsd1:echoString" name="parameters"/>
+ </message>
+ <message name="echoStringResponse">
+ <part element="xsd1:echoStringResponse" name="parameters"/>
+ </message>
+ <message name="echoStringArray">
+ <part element="xsd1:echoStringArray" name="parameters"/>
+ </message>
+ <message name="echoStringArrayResponse">
+ <part element="xsd1:echoStringArrayResponse" name="parameters"/>
+ </message>
+ <message name="echoStruct">
+ <part element="xsd1:echoStruct" name="parameters"/>
+ </message>
+ <message name="echoStructResponse">
+ <part element="xsd1:echoStructResponse" name="parameters"/>
+ </message>
+ <message name="echoVoid">
+ <part element="xsd1:echoVoid" name="parameters"/>
+ </message>
+ <message name="echoVoidResponse">
+ <part element="xsd1:echoVoidResponse" name="parameters"/>
+ </message>
+ <portType name="WSDLInteropTestDocLitPortType">
+ <operation name="echoString">
+ <input message="tns:echoString" name="echoString"/>
+ <output message="tns:echoStringResponse" name="echoStringResponse"/>
+ </operation>
+ <operation name="echoStringArray">
+ <input message="tns:echoStringArray" name="echoStringArray"/>
+ <output message="tns:echoStringArrayResponse" name="echoStringArrayResponse"/>
+ </operation>
+ <operation name="echoStruct">
+ <input message="tns:echoStruct" name="echoStruct"/>
+ <output message="tns:echoStructResponse" name="echoStructResponse"/>
+ </operation>
+ <operation name="echoVoid">
+ <input message="tns:echoVoid" name="echoVoid"/>
+ <output message="tns:echoVoidResponse" name="echoVoidResponse"/>
+ </operation>
+ </portType>
+ <binding name="WSDLInteropTestDocLitPortBinding"
+ type="tns:WSDLInteropTestDocLitPortType">
+ <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="echoString">
+ <soap:operation soapAction="http://soapinterop.org/echoString" style="document"/>
+ <input name="echoString">
+ <soap:body namespace="http://soapinterop.org/WSDLInteropTestDocLit"
+ use="literal"/>
+ </input>
+ <output name="echoStringResponse">
+ <soap:body namespace="http://soapinterop.org/WSDLInteropTestDocLit"
+ use="literal"/>
+ </output>
+ </operation>
+ <operation name="echoStringArray">
+ <soap:operation soapAction="http://soapinterop.org/echoStringArray" style="document"/>
+ <input name="echoStringArray">
+ <soap:body namespace="http://soapinterop.org/WSDLInteropTestDocLit"
+ use="literal"/>
+ </input>
+ <output name="echoStringArrayResponse">
+ <soap:body namespace="http://soapinterop.org/WSDLInteropTestDocLit"
+ use="literal"/>
+ </output>
+ </operation>
+ <operation name="echoStruct">
+ <soap:operation soapAction="http://soapinterop.org/echoStruct" style="document"/>
+ <input name="echoStruct">
+ <soap:body namespace="http://soapinterop.org/WSDLInteropTestDocLit"
+ use="literal"/>
+ </input>
+ <output name="echoStructResponse">
+ <soap:body namespace="http://soapinterop.org/WSDLInteropTestDocLit"
+ use="literal"/>
+ </output>
+ </operation>
+ <operation name="echoVoid">
+ <soap:operation soapAction="http://soapinterop.org/echoVoid" style="document"/>
+ <input name="echoVoid">
+ <soap:body namespace="http://soapinterop.org/WSDLInteropTestDocLit"
+ use="literal"/>
+ </input>
+ <output name="echoVoidResponse">
+ <soap:body namespace="http://soapinterop.org/WSDLInteropTestDocLit"
+ use="literal"/>
+ </output>
+ </operation>
+ </binding>
+ <service name="WSDLInteropTestDocLitService">
+ <port binding="tns:WSDLInteropTestDocLitPortBinding"
+ name="WSDLInteropTestDocLitParamPort">
+ <soap:address
+ location="http://www.whitemesa.net/interop/r3/doclitparam"/>
+ </port>
+ </service>
+</definitions>
diff --git a/test/resources/wsdl/nillableComplexType.wsdl b/test/resources/wsdl/nillableComplexType.wsdl
new file mode 100644
index 0000000..ea224c2
--- /dev/null
+++ b/test/resources/wsdl/nillableComplexType.wsdl
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright 2003-2004 The Apache Software Foundation. -->
+<!-- -->
+<!-- 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 targetNamespace="http://localhost/axis/nillableComplexType"
+xmlns="http://schemas.xmlsoap.org/wsdl/"
+xmlns:apachesoap="http://xml.apache.org/xml-soap"
+xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
+xmlns:impl="http://localhost/axis/nillableComplexType"
+xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
+xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+xmlns:xs="nillableComplexType">
+ <wsdl:types>
+ <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:import namespace="nillableComplexType" schemaLocation="nillableComplexType.xsd">
+ </xsd:import>
+ </xsd:schema>
+ <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://localhost/axis/nillableComplexType">
+ <xsd:element name="ReportReturn">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="ReportReturn"
+ type="xsd:string">
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </wsdl:types>
+
+ <wsdl:message name="ReportRequest">
+ <wsdl:part name="myClass" type="xs:MyClass"/>
+ </wsdl:message>
+
+ <wsdl:message name="ReportResponse">
+ <wsdl:part name="ReportReturn" element="impl:ReportReturn"/>
+ </wsdl:message>
+
+ <wsdl:portType name="nillableComplexType">
+ <wsdl:operation name="Report">
+ <wsdl:input message="impl:ReportRequest" name="ReportRequest"/>
+ <wsdl:output message="impl:ReportResponse" name="ReportResponse"/>
+ </wsdl:operation>
+ </wsdl:portType>
+
+ <wsdl:binding name="nillableComplexTypeSoapBinding" type="impl:nillableComplexType">
+ <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <wsdl:operation name="Report">
+ <wsdlsoap:operation soapAction="nillableComplexType#Report" style="document"/>
+ <wsdl:input name="ReportRequest">
+ <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ namespace="http://localhost/axis/nillableComplexType"
+ use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="ReportResponse">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+
+ <wsdl:service name="nillableComplexType">
+ <wsdl:port binding="impl:nillableComplexTypeSoapBinding" name="nillableComplexType">
+ <wsdlsoap:address location="http://localhost/axis/nillableComplexType"/>
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/test/resources/wsdl/nillableComplexType.xsd b/test/resources/wsdl/nillableComplexType.xsd
new file mode 100644
index 0000000..765be56
--- /dev/null
+++ b/test/resources/wsdl/nillableComplexType.xsd
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:tns="nillableComplexType"
+ targetNamespace="nillableComplexType">
+
+<xs:complexType name="MyClass" mixed="true">
+ <xs:sequence>
+ <xs:element name="Name" form="unqualified" nillable="true" minOccurs="0">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:maxLength value="20"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element name="Values" form="unqualified" nillable="true" minOccurs="0">
+ <xs:simpleType>
+ <xs:restriction base="xs:base64Binary">
+ <xs:maxLength value="3"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ </xs:sequence>
+ <xs:attribute name="id" type="xs:NMTOKEN" use="optional" form="unqualified"/>
+</xs:complexType>
+
+</xs:schema>
diff --git a/test/resources/xml/om/axis.xml b/test/resources/xml/om/axis.xml
new file mode 100644
index 0000000..bc996c5
--- /dev/null
+++ b/test/resources/xml/om/axis.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+
+<root>
+
+ <a>
+ <a.1/>
+ <a.2/>
+ <a.3/>
+ <a.4/>
+ <a.5/>
+ </a>
+
+ <b>
+ <b.1/>
+ <b.2/>
+ <b.3/>
+ <b.4/>
+ <b.5/>
+ <b.6/>
+ <b.7/>
+ <b.8/>
+ <b.9/>
+ </b>
+
+</root>
diff --git a/test/resources/xml/om/basic.xml b/test/resources/xml/om/basic.xml
new file mode 100644
index 0000000..88385fb
--- /dev/null
+++ b/test/resources/xml/om/basic.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<foo>
+ <bar>
+ <baz/>
+ <cheese/>
+ <baz/>
+ <cheese/>
+ <baz/>
+ </bar>
+</foo>
diff --git a/test/resources/xml/om/basicupdate.xml b/test/resources/xml/om/basicupdate.xml
new file mode 100644
index 0000000..57d458c
--- /dev/null
+++ b/test/resources/xml/om/basicupdate.xml
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<xu:modifications xmlns:xu="http://www.xmldb.org/xupdate">
+
+ <xu:append select="/foo/bar/cheese[1]">
+ Goudse kaas
+ <edam type="jong belegen">Rond</edam>
+ </xu:append>
+
+ <xu:remove select="/foo/bar/baz[2]"/>
+
+ <xu:if test="/foo">
+ <xu:insert-before select="/foo/bar/baz[2]">
+ <cheese>More cheese!</cheese>
+ </xu:insert-before>
+ </xu:if>
+
+ <xu:insert-before select="/foo/bar/baz[2]">
+ <cheese>Even more cheese!</cheese>
+ </xu:insert-before>
+
+ <xu:if test="/bar">
+ <xu:insert-before select="/foo/bar/baz[2]">
+ <sausages>No sausages today</sausages>
+ </xu:insert-before>
+ </xu:if>
+
+ <xu:variable
+ xmlns:private="http://www.jaxen.org/private"
+ name="private:twice">
+ <cracker/>
+ <!-- champagne -->
+ <?oisters with a bit of lemon?>
+ </xu:variable>
+
+ <xu:variable name="twice" select="'Twice'"/>
+
+ <xu:insert-after
+ select="/foo/bar"
+ xmlns:private="http://www.jaxen.org/private"
+ >
+ <xu:value-of select="$private:twice"/>
+ <xu:value-of select="$private:twice"/>
+ <xu:value-of select="$twice"/>
+ </xu:insert-after>
+
+</xu:modifications>
diff --git a/test/resources/xml/om/contents.xml b/test/resources/xml/om/contents.xml
new file mode 100644
index 0000000..35e3ac7
--- /dev/null
+++ b/test/resources/xml/om/contents.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0"?>
+
+<?xml-stylesheet href="XSL\JavaXML.html.xsl" type="text/xsl"?>
+<?xml-stylesheet href="XSL\JavaXML.wml.xsl" type="text/xsl"
+ media="wap"?>
+<?cocoon-process type="xslt"?>
+
+<!-- Java and XML -->
+<JavaXML:Book xmlns:JavaXML="http://www.oreilly.com/catalog/javaxml/"
+ xmlns:ora="http://www.oreilly.com"
+ xmlns:unused="http://www.unused.com"
+ ora:category="Java"
+>
+ <!-- comment one -->
+ <!-- comment two -->
+
+ <JavaXML:Title>Java and XML</JavaXML:Title>
+ <JavaXML:Contents xmlns:topic="http://www.oreilly.com/topics">
+ <JavaXML:Chapter topic:focus="XML">
+ <JavaXML:Heading>Introduction</JavaXML:Heading>
+ <JavaXML:Topic subSections="7">
+ What Is It?
+ </JavaXML:Topic>
+ <JavaXML:Topic subSections="3">
+ How Do I Use It?
+ </JavaXML:Topic>
+ <JavaXML:Topic subSections="4">
+ Why Should I Use It?
+ </JavaXML:Topic>
+ <JavaXML:Topic subSections="0">
+ What's Next?
+ </JavaXML:Topic>
+ </JavaXML:Chapter>
+
+ <JavaXML:Chapter topic:focus="XML">
+ <JavaXML:Heading>Creating XML</JavaXML:Heading>
+ <JavaXML:Topic subSections="0">An XML Document</JavaXML:Topic>
+ <JavaXML:Topic subSections="2">The Header</JavaXML:Topic>
+ <JavaXML:Topic subSections="6">The Content</JavaXML:Topic>
+ <JavaXML:Topic subSections="1">What's Next?</JavaXML:Topic>
+ </JavaXML:Chapter>
+
+ <JavaXML:Chapter topic:focus="Java">
+ <JavaXML:Heading>Parsing XML</JavaXML:Heading>
+ <JavaXML:Topic subSections="3">Getting Prepared</JavaXML:Topic>
+ <JavaXML:Topic subSections="3">SAX Readers</JavaXML:Topic>
+ <JavaXML:Topic subSections="9">Content Handlers</JavaXML:Topic>
+ <JavaXML:Topic subSections="4">Error Handlers</JavaXML:Topic>
+ <JavaXML:Topic subSections="0">
+ A Better Way to Load a Parser
+ </JavaXML:Topic>
+ <JavaXML:Topic subSections="4">"Gotcha!"</JavaXML:Topic>
+ <JavaXML:Topic subSections="0">What's Next?</JavaXML:Topic>
+ </JavaXML:Chapter>
+
+ <JavaXML:SectionBreak/>
+
+ <JavaXML:Chapter topic:focus="Java">
+ <JavaXML:Heading>Web Publishing Frameworks</JavaXML:Heading>
+ <JavaXML:Topic subSections="4">Selecting a Framework</JavaXML:Topic>
+ <JavaXML:Topic subSections="4">Installation</JavaXML:Topic>
+ <JavaXML:Topic subSections="3">
+ Using a Publishing Framework
+ </JavaXML:Topic>
+ <JavaXML:Topic subSections="2">XSP</JavaXML:Topic>
+ <JavaXML:Topic subSections="3">Cocoon 2.0 and Beyond</JavaXML:Topic>
+ <JavaXML:Topic subSections="0">What's Next?</JavaXML:Topic>
+ </JavaXML:Chapter>
+ </JavaXML:Contents>
+</JavaXML:Book>
diff --git a/test/resources/xml/om/defaultNamespace.xml b/test/resources/xml/om/defaultNamespace.xml
new file mode 100644
index 0000000..1e32981
--- /dev/null
+++ b/test/resources/xml/om/defaultNamespace.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<a xmlns="http://dummyNamespace/">
+ <b>
+ <c>Hello</c>
+ </b>
+</a>
diff --git a/test/resources/xml/om/evaluate.xml b/test/resources/xml/om/evaluate.xml
new file mode 100644
index 0000000..90d06bd
--- /dev/null
+++ b/test/resources/xml/om/evaluate.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<evaluate>
+ <data>
+ <jumps>
+ <subject>
+ <the/>
+ <fox color="brown"/>
+ <speed category="quick"/>
+ </subject>
+ <over/>
+ <object>
+ <the/>
+ <dog color="unspecified"/>
+ <speed category="lazy"/>
+ </object>
+ </jumps>
+ </data>
+
+ <!-- there is one element with attribute color="brown" should this
+ meta-test should succeed -->
+
+ <metatest select="//@color">brown</metatest>
+
+ <!-- there is no element with attribute category="moderate" -->
+ <metatest select="//speed/@category">moderate</metatest>
+
+</evaluate>
diff --git a/test/resources/xml/om/fibo.xml b/test/resources/xml/om/fibo.xml
new file mode 100644
index 0000000..9b5d0ec
--- /dev/null
+++ b/test/resources/xml/om/fibo.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Fibonacci_Numbers>
+ <fibonacci index="0">0</fibonacci>
+ <fibonacci index="1">1</fibonacci>
+ <fibonacci index="2">1</fibonacci>
+ <fibonacci index="3">2</fibonacci>
+ <fibonacci index="4">3</fibonacci>
+ <fibonacci index="5">5</fibonacci>
+ <fibonacci index="6">8</fibonacci>
+ <fibonacci index="7">13</fibonacci>
+ <fibonacci index="8">21</fibonacci>
+ <fibonacci index="9">34</fibonacci>
+ <fibonacci index="10">55</fibonacci>
+ <fibonacci index="11">89</fibonacci>
+ <fibonacci index="12">144</fibonacci>
+ <fibonacci index="13">233</fibonacci>
+ <fibonacci index="14">377</fibonacci>
+ <fibonacci index="15">610</fibonacci>
+ <fibonacci index="16">987</fibonacci>
+ <fibonacci index="17">1597</fibonacci>
+ <fibonacci index="18">2584</fibonacci>
+ <fibonacci index="19">4181</fibonacci>
+ <fibonacci index="20">6765</fibonacci>
+ <fibonacci index="21">10946</fibonacci>
+ <fibonacci index="22">17711</fibonacci>
+ <fibonacci index="23">28657</fibonacci>
+ <fibonacci index="24">46368</fibonacci>
+ <fibonacci index="25">75025</fibonacci>
+</Fibonacci_Numbers>
diff --git a/test/resources/xml/om/id.xml b/test/resources/xml/om/id.xml
new file mode 100644
index 0000000..749ab20
--- /dev/null
+++ b/test/resources/xml/om/id.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0"?>
+
+<!DOCTYPE foo [
+
+<!ELEMENT foo (bar)>
+<!ATTLIST foo id CDATA #IMPLIED>
+<!ELEMENT bar (#PCDATA|cheese)*>
+<!ATTLIST bar id ID #REQUIRED>
+<!ELEMENT cheese (#PCDATA)>
+<!ATTLIST cheese kind ID #IMPLIED>
+]>
+
+<foo id="foobar">
+ <bar id="fb1">
+ baz
+ <cheese kind="edam">gouda</cheese>
+ baz
+ <cheese kind="gouda">cheddar</cheese>
+ baz
+ </bar>
+</foo>
diff --git a/test/resources/xml/om/jaxen24.xml b/test/resources/xml/om/jaxen24.xml
new file mode 100644
index 0000000..9b81996
--- /dev/null
+++ b/test/resources/xml/om/jaxen24.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<body><p><span></span></p><div></div></body>
diff --git a/test/resources/xml/om/jaxen3.xml b/test/resources/xml/om/jaxen3.xml
new file mode 100644
index 0000000..a87723a
--- /dev/null
+++ b/test/resources/xml/om/jaxen3.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Configuration>
+ <hostname>
+ <val>2</val>
+ <attrlist>
+ <hostname>CE-A</hostname>
+ </attrlist>
+ </hostname>
+ <hostname>
+ <val>1</val>
+ <attrlist>
+ <hostname>CE-B</hostname>
+ </attrlist>
+ </hostname>
+</Configuration>
diff --git a/test/resources/xml/om/lang.xml b/test/resources/xml/om/lang.xml
new file mode 100644
index 0000000..49b45db
--- /dev/null
+++ b/test/resources/xml/om/lang.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<e1 xml:lang="hr">
+ <e2 xml:lang="en-US">
+ <e3/>
+ </e2>
+ <e2 xml:lang="hu">
+ <e3/>
+ <e3/>
+ <e3 xml:lang="es"/>
+ </e2>
+</e1> \ No newline at end of file
diff --git a/test/resources/xml/om/message.xml b/test/resources/xml/om/message.xml
new file mode 100644
index 0000000..3b81df2
--- /dev/null
+++ b/test/resources/xml/om/message.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<message>
+ <header>
+ <service>lookupformservice</service>
+ <connectionid>9</connectionid>
+ <appid>stammdaten</appid>
+ <action>new</action>
+ </header>
+ <body>
+ <data>
+ <items>
+ <item>
+ <name>iteminfo</name>
+ <value>ELE</value>
+ </item>
+ <item>
+ <name>parentinfo</name>
+ <value>Pruefgebiete</value>
+ </item>
+ <item>
+ <name>id</name>
+ <value>1</value>
+ </item>
+ </items>
+ </data>
+ </body>
+</message>
diff --git a/test/resources/xml/om/moreover.xml b/test/resources/xml/om/moreover.xml
new file mode 100644
index 0000000..38d4c4f
--- /dev/null
+++ b/test/resources/xml/om/moreover.xml
@@ -0,0 +1,244 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+ <moreovernews>
+ <article code="13563275">
+ <url>http://c.moreover.com/click/here.pl?x13563273</url>
+ <headline_text>e-Commerce Operators Present Version 1.0 of the XML Standard</headline_text>
+ <source>StockAccess</source>
+ <media_type>text</media_type>
+ <cluster>moreover...</cluster>
+ <tagline> </tagline>
+ <document_url>http://www.stockaccess.com/index.html</document_url>
+ <harvest_time>Dec 24 2000 6:28AM</harvest_time>
+ <access_registration> </access_registration>
+ <access_status> </access_status>
+ </article>
+ <article code="13560996">
+ <url>http://c.moreover.com/click/here.pl?x13560995</url>
+ <headline_text>W3C Publishes XML Protocol Requirements Document</headline_text>
+ <source>Xml</source>
+ <media_type>text</media_type>
+ <cluster>moreover...</cluster>
+ <tagline> </tagline>
+ <document_url>http://www.xml.com/</document_url>
+ <harvest_time>Dec 24 2000 12:22AM</harvest_time>
+ <access_registration> </access_registration>
+ <access_status> </access_status>
+ </article>
+ <article code="13553522">
+ <url>http://c.moreover.com/click/here.pl?x13553521</url>
+ <headline_text>Prowler: Open Source XML-Based Content Management Framework</headline_text>
+ <source>Xml</source>
+ <media_type>text</media_type>
+ <cluster>moreover...</cluster>
+ <tagline> </tagline>
+ <document_url>http://www.xml.com/</document_url>
+ <harvest_time>Dec 23 2000 2:05PM</harvest_time>
+ <access_registration> </access_registration>
+ <access_status> </access_status>
+ </article>
+ <article code="13549014">
+ <url>http://c.moreover.com/click/here.pl?x13549013</url>
+ <headline_text>The Middleware Company Debuts Public Training Courses in Ejb, J2ee And Xml</headline_text>
+ <source>Java Industry Connection</source>
+ <media_type>text</media_type>
+ <cluster>moreover...</cluster>
+ <tagline> </tagline>
+ <document_url>http://industry.java.sun.com/javanews/more/hotnews/</document_url>
+ <harvest_time>Dec 23 2000 12:15PM</harvest_time>
+ <access_registration> </access_registration>
+ <access_status> </access_status>
+ </article>
+ <article code="13544468">
+ <url>http://c.moreover.com/click/here.pl?x13544467</url>
+ <headline_text>Revised Working Draft for the W3C XML Information Set</headline_text>
+ <source>Xml</source>
+ <media_type>text</media_type>
+ <cluster>moreover...</cluster>
+ <tagline> </tagline>
+ <document_url>http://www.xml.com/</document_url>
+ <harvest_time>Dec 23 2000 5:50AM</harvest_time>
+ <access_registration> </access_registration>
+ <access_status> </access_status>
+ </article>
+ <article code="13534837">
+ <url>http://c.moreover.com/click/here.pl?x13534836</url>
+ <headline_text>XML: Its The Great Peacemaker</headline_text>
+ <source>ZDNet</source>
+ <media_type>text</media_type>
+ <cluster>moreover...</cluster>
+ <tagline> </tagline>
+ <document_url>http://www.zdnet.com/intweek/</document_url>
+ <harvest_time>Dec 22 2000 9:05PM</harvest_time>
+ <access_registration> </access_registration>
+ <access_status> </access_status>
+ </article>
+ <article code="13533486">
+ <url>http://c.moreover.com/click/here.pl?x13533485</url>
+ <headline_text>Project eL - The XML Leningrad Codex Markup Project</headline_text>
+ <source>Xml</source>
+ <media_type>text</media_type>
+ <cluster>moreover...</cluster>
+ <tagline> </tagline>
+ <document_url>http://www.xml.com/</document_url>
+ <harvest_time>Dec 22 2000 8:34PM</harvest_time>
+ <access_registration> </access_registration>
+ <access_status> </access_status>
+ </article>
+ <article code="13533489">
+ <url>http://c.moreover.com/click/here.pl?x13533488</url>
+ <headline_text>XML Linking Language (XLink) and XML Base Specifications Issued as W3C Proposed Recommenda</headline_text>
+ <source>Xml</source>
+ <media_type>text</media_type>
+ <cluster>moreover...</cluster>
+ <tagline> </tagline>
+ <document_url>http://www.xml.com/</document_url>
+ <harvest_time>Dec 22 2000 8:34PM</harvest_time>
+ <access_registration> </access_registration>
+ <access_status> </access_status>
+ </article>
+ <article code="13533493">
+ <url>http://c.moreover.com/click/here.pl?x13533492</url>
+ <headline_text>W3C Releases XHTML Basic Specification as a W3C Recommendation</headline_text>
+ <source>Xml</source>
+ <media_type>text</media_type>
+ <cluster>moreover...</cluster>
+ <tagline> </tagline>
+ <document_url>http://www.xml.com/</document_url>
+ <harvest_time>Dec 22 2000 8:34PM</harvest_time>
+ <access_registration> </access_registration>
+ <access_status> </access_status>
+ </article>
+ <article code="13521835">
+ <url>http://c.moreover.com/click/here.pl?x13521827</url>
+ <headline_text>Java, Xml And Oracle9i(TM) Make A Great Team</headline_text>
+ <source>Java Industry Connection</source>
+ <media_type>text</media_type>
+ <cluster>moreover...</cluster>
+ <tagline> </tagline>
+ <document_url>http://industry.java.sun.com/javanews/more/hotnews/</document_url>
+ <harvest_time>Dec 22 2000 3:21PM</harvest_time>
+ <access_registration> </access_registration>
+ <access_status> </access_status>
+ </article>
+ <article code="13512020">
+ <url>http://c.moreover.com/click/here.pl?x13511233</url>
+ <headline_text>Competing initiatives to vie for security standard</headline_text>
+ <source>ZDNet</source>
+ <media_type>text</media_type>
+ <cluster>moreover...</cluster>
+ <tagline> </tagline>
+ <document_url>http://www.zdnet.com/eweek/filters/news/</document_url>
+ <harvest_time>Dec 22 2000 10:54AM</harvest_time>
+ <access_registration> </access_registration>
+ <access_status> </access_status>
+ </article>
+ <article code="13492401">
+ <url>http://c.moreover.com/click/here.pl?x13492397</url>
+ <headline_text>Oracle Provides Developers with Great Xml Reading This Holiday Season</headline_text>
+ <source>Java Industry Connection</source>
+ <media_type>text</media_type>
+ <cluster>moreover...</cluster>
+ <tagline> </tagline>
+ <document_url>http://industry.java.sun.com/javanews/more/hotnews/</document_url>
+ <harvest_time>Dec 21 2000 8:08PM</harvest_time>
+ <access_registration> </access_registration>
+ <access_status> </access_status>
+ </article>
+ <article code="13491296">
+ <url>http://c.moreover.com/click/here.pl?x13491292</url>
+ <headline_text>XML as the great peacemaker - Extensible Markup Language Accomplished The Seemingly Impossible This Year: It B</headline_text>
+ <source>Hospitality Net</source>
+ <media_type>text</media_type>
+ <cluster>moreover...</cluster>
+ <tagline> </tagline>
+ <document_url>http://www.hospitalitynet.org/news/list.htm?c=2000</document_url>
+ <harvest_time>Dec 21 2000 7:45PM</harvest_time>
+ <access_registration> </access_registration>
+ <access_status> </access_status>
+ </article>
+ <article code="13484761">
+ <url>http://c.moreover.com/click/here.pl?x13484758</url>
+ <headline_text>XML as the great peacemaker</headline_text>
+ <source>CNET</source>
+ <media_type>text</media_type>
+ <cluster>moreover...</cluster>
+ <tagline> </tagline>
+ <document_url>http://news.cnet.com/news/0-1003.html?tag=st.ne.1002.dir.1003</document_url>
+ <harvest_time>Dec 21 2000 4:41PM</harvest_time>
+ <access_registration> </access_registration>
+ <access_status> </access_status>
+ </article>
+ <article code="13480897">
+ <url>http://c.moreover.com/click/here.pl?x13480896</url>
+ <headline_text>COOP Switzerland Selects Mercator as Integration Platform</headline_text>
+ <source>Stockhouse Canada</source>
+ <media_type>text</media_type>
+ <cluster>moreover...</cluster>
+ <tagline> </tagline>
+ <document_url>http://www.stockhouse.ca/news/</document_url>
+ <harvest_time>Dec 21 2000 1:55PM</harvest_time>
+ <access_registration> </access_registration>
+ <access_status> </access_status>
+ </article>
+ <article code="13471024">
+ <url>http://c.moreover.com/click/here.pl?x13471023</url>
+ <headline_text>Competing XML Specs Move Toward a Union</headline_text>
+ <source>Internet World</source>
+ <media_type>text</media_type>
+ <cluster>moreover...</cluster>
+ <tagline> </tagline>
+ <document_url>http://www.internetworld.com/</document_url>
+ <harvest_time>Dec 21 2000 11:14AM</harvest_time>
+ <access_registration> </access_registration>
+ <access_status> </access_status>
+ </article>
+ <article code="13452281">
+ <url>http://c.moreover.com/click/here.pl?x13452280</url>
+ <headline_text>Next-generation XHTML stripped down for handhelds</headline_text>
+ <source>CNET</source>
+ <media_type>text</media_type>
+ <cluster>moreover...</cluster>
+ <tagline> </tagline>
+ <document_url>http://news.cnet.com/news/0-1005.html?tag=st.ne.1002.dir.1005</document_url>
+ <harvest_time>Dec 20 2000 9:11PM</harvest_time>
+ <access_registration> </access_registration>
+ <access_status> </access_status>
+ </article>
+ <article code="13451791">
+ <url>http://c.moreover.com/click/here.pl?x13451789</url>
+ <headline_text>Xml Powers Oracle9i(TM) Dynamic Services</headline_text>
+ <source>Java Industry Connection</source>
+ <media_type>text</media_type>
+ <cluster>moreover...</cluster>
+ <tagline> </tagline>
+ <document_url>http://industry.java.sun.com/javanews/more/hotnews/</document_url>
+ <harvest_time>Dec 20 2000 9:05PM</harvest_time>
+ <access_registration> </access_registration>
+ <access_status> </access_status>
+ </article>
+ <article code="13442098">
+ <url>http://c.moreover.com/click/here.pl?x13442097</url>
+ <headline_text>XML DOM reference guide</headline_text>
+ <source>ASPWire</source>
+ <media_type>text</media_type>
+ <cluster>moreover...</cluster>
+ <tagline> </tagline>
+ <document_url>http://aspwire.com/</document_url>
+ <harvest_time>Dec 20 2000 6:26PM</harvest_time>
+ <access_registration> </access_registration>
+ <access_status> </access_status>
+ </article>
+ <article code="13424118">
+ <url>http://c.moreover.com/click/here.pl?x13424117</url>
+ <headline_text>Repeat/Xqsite And Bowstreet Team to Deliver Integrated Xml Solutions</headline_text>
+ <source>Java Industry Connection</source>
+ <media_type>text</media_type>
+ <cluster>moreover...</cluster>
+ <tagline> </tagline>
+ <document_url>http://industry.java.sun.com/javanews/more/hotnews/</document_url>
+ <harvest_time>Dec 20 2000 9:04AM</harvest_time>
+ <access_registration> </access_registration>
+ <access_status> </access_status>
+ </article>
+ </moreovernews>
+
diff --git a/test/resources/xml/om/much_ado.xml b/test/resources/xml/om/much_ado.xml
new file mode 100644
index 0000000..f008fad
--- /dev/null
+++ b/test/resources/xml/om/much_ado.xml
@@ -0,0 +1,6850 @@
+<?xml version="1.0"?>
+<PLAY>
+<TITLE>Much Ado about Nothing</TITLE>
+
+<FM>
+<P>Text placed in the public domain by Moby Lexical Tools, 1992.</P>
+<P>SGML markup by Jon Bosak, 1992-1994.</P>
+<P>XML version by Jon Bosak, 1996-1998.</P>
+<P>This work may be freely copied and distributed worldwide.</P>
+</FM>
+
+
+<PERSONAE>
+<TITLE>Dramatis Personae</TITLE>
+
+<PERSONA>DON PEDRO, prince of Arragon.</PERSONA>
+<PERSONA>DON JOHN, his bastard brother.</PERSONA>
+<PERSONA>CLAUDIO, a young lord of Florence.</PERSONA>
+<PERSONA>BENEDICK, a young lord of Padua.</PERSONA>
+<PERSONA>LEONATO, governor of Messina.</PERSONA>
+<PERSONA>ANTONIO, his brother.</PERSONA>
+<PERSONA>BALTHASAR, attendant on Don Pedro.</PERSONA>
+
+<PGROUP>
+<PERSONA>CONRADE</PERSONA>
+<PERSONA>BORACHIO</PERSONA>
+<GRPDESCR>followers of Don John.</GRPDESCR>
+</PGROUP>
+
+<PERSONA>FRIAR FRANCIS</PERSONA>
+<PERSONA>DOGBERRY, a constable.</PERSONA>
+<PERSONA>VERGES, a headborough.</PERSONA>
+<PERSONA>A Sexton.</PERSONA>
+<PERSONA>A Boy.</PERSONA>
+<PERSONA>HERO, daughter to Leonato.</PERSONA>
+<PERSONA>BEATRICE, niece to Leonato.</PERSONA>
+
+<PGROUP>
+<PERSONA>MARGARET</PERSONA>
+<PERSONA>URSULA</PERSONA>
+<GRPDESCR>gentlewomen attending on Hero.</GRPDESCR>
+</PGROUP>
+
+<PERSONA>Messengers, Watch, Attendants, &amp;c. </PERSONA>
+</PERSONAE>
+
+<SCNDESCR>SCENE Messina.</SCNDESCR>
+
+<PLAYSUBT>MUCH ADO ABOUT NOTHING</PLAYSUBT>
+
+<ACT><TITLE>ACT I</TITLE>
+
+<SCENE><TITLE>SCENE I. Before LEONATO'S house.</TITLE>
+<STAGEDIR>Enter LEONATO, HERO, and BEATRICE, with a
+Messenger</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>I learn in this letter that Don Peter of Arragon</LINE>
+<LINE>comes this night to Messina.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Messenger</SPEAKER>
+<LINE>He is very near by this: he was not three leagues off</LINE>
+<LINE>when I left him.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>How many gentlemen have you lost in this action?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Messenger</SPEAKER>
+<LINE>But few of any sort, and none of name.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>A victory is twice itself when the achiever brings</LINE>
+<LINE>home full numbers. I find here that Don Peter hath</LINE>
+<LINE>bestowed much honour on a young Florentine called Claudio.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Messenger</SPEAKER>
+<LINE>Much deserved on his part and equally remembered by</LINE>
+<LINE>Don Pedro: he hath borne himself beyond the</LINE>
+<LINE>promise of his age, doing, in the figure of a lamb,</LINE>
+<LINE>the feats of a lion: he hath indeed better</LINE>
+<LINE>bettered expectation than you must expect of me to</LINE>
+<LINE>tell you how.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>He hath an uncle here in Messina will be very much</LINE>
+<LINE>glad of it.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Messenger</SPEAKER>
+<LINE>I have already delivered him letters, and there</LINE>
+<LINE>appears much joy in him; even so much that joy could</LINE>
+<LINE>not show itself modest enough without a badge of</LINE>
+<LINE>bitterness.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>Did he break out into tears?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Messenger</SPEAKER>
+<LINE>In great measure.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>A kind overflow of kindness: there are no faces</LINE>
+<LINE>truer than those that are so washed. How much</LINE>
+<LINE>better is it to weep at joy than to joy at weeping!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>I pray you, is Signior Mountanto returned from the</LINE>
+<LINE>wars or no?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Messenger</SPEAKER>
+<LINE>I know none of that name, lady: there was none such</LINE>
+<LINE>in the army of any sort.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>What is he that you ask for, niece?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERO</SPEAKER>
+<LINE>My cousin means Signior Benedick of Padua.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Messenger</SPEAKER>
+<LINE>O, he's returned; and as pleasant as ever he was.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>He set up his bills here in Messina and challenged</LINE>
+<LINE>Cupid at the flight; and my uncle's fool, reading</LINE>
+<LINE>the challenge, subscribed for Cupid, and challenged</LINE>
+<LINE>him at the bird-bolt. I pray you, how many hath he</LINE>
+<LINE>killed and eaten in these wars? But how many hath</LINE>
+<LINE>he killed? for indeed I promised to eat all of his killing.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>Faith, niece, you tax Signior Benedick too much;</LINE>
+<LINE>but he'll be meet with you, I doubt it not.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Messenger</SPEAKER>
+<LINE>He hath done good service, lady, in these wars.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>You had musty victual, and he hath holp to eat it:</LINE>
+<LINE>he is a very valiant trencherman; he hath an</LINE>
+<LINE>excellent stomach.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Messenger</SPEAKER>
+<LINE>And a good soldier too, lady.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>And a good soldier to a lady: but what is he to a lord?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Messenger</SPEAKER>
+<LINE>A lord to a lord, a man to a man; stuffed with all</LINE>
+<LINE>honourable virtues.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>It is so, indeed; he is no less than a stuffed man:</LINE>
+<LINE>but for the stuffing,--well, we are all mortal.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>You must not, sir, mistake my niece. There is a</LINE>
+<LINE>kind of merry war betwixt Signior Benedick and her:</LINE>
+<LINE>they never meet but there's a skirmish of wit</LINE>
+<LINE>between them.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>Alas! he gets nothing by that. In our last</LINE>
+<LINE>conflict four of his five wits went halting off, and</LINE>
+<LINE>now is the whole man governed with one: so that if</LINE>
+<LINE>he have wit enough to keep himself warm, let him</LINE>
+<LINE>bear it for a difference between himself and his</LINE>
+<LINE>horse; for it is all the wealth that he hath left,</LINE>
+<LINE>to be known a reasonable creature. Who is his</LINE>
+<LINE>companion now? He hath every month a new sworn brother.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Messenger</SPEAKER>
+<LINE>Is't possible?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>Very easily possible: he wears his faith but as</LINE>
+<LINE>the fashion of his hat; it ever changes with the</LINE>
+<LINE>next block.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Messenger</SPEAKER>
+<LINE>I see, lady, the gentleman is not in your books.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>No; an he were, I would burn my study. But, I pray</LINE>
+<LINE>you, who is his companion? Is there no young</LINE>
+<LINE>squarer now that will make a voyage with him to the devil?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Messenger</SPEAKER>
+<LINE>He is most in the company of the right noble Claudio.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>O Lord, he will hang upon him like a disease: he</LINE>
+<LINE>is sooner caught than the pestilence, and the taker</LINE>
+<LINE>runs presently mad. God help the noble Claudio! if</LINE>
+<LINE>he have caught the Benedick, it will cost him a</LINE>
+<LINE>thousand pound ere a' be cured.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Messenger</SPEAKER>
+<LINE>I will hold friends with you, lady.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>Do, good friend.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>You will never run mad, niece.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>No, not till a hot January.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Messenger</SPEAKER>
+<LINE>Don Pedro is approached.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Enter DON PEDRO, DON JOHN, CLAUDIO, BENEDICK,
+and BALTHASAR</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Good Signior Leonato, you are come to meet your</LINE>
+<LINE>trouble: the fashion of the world is to avoid</LINE>
+<LINE>cost, and you encounter it.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>Never came trouble to my house in the likeness of</LINE>
+<LINE>your grace: for trouble being gone, comfort should</LINE>
+<LINE>remain; but when you depart from me, sorrow abides</LINE>
+<LINE>and happiness takes his leave.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>You embrace your charge too willingly. I think this</LINE>
+<LINE>is your daughter.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>Her mother hath many times told me so.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Were you in doubt, sir, that you asked her?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>Signior Benedick, no; for then were you a child.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>You have it full, Benedick: we may guess by this</LINE>
+<LINE>what you are, being a man. Truly, the lady fathers</LINE>
+<LINE>herself. Be happy, lady; for you are like an</LINE>
+<LINE>honourable father.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>If Signior Leonato be her father, she would not</LINE>
+<LINE>have his head on her shoulders for all Messina, as</LINE>
+<LINE>like him as she is.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>I wonder that you will still be talking, Signior</LINE>
+<LINE>Benedick: nobody marks you.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>What, my dear Lady Disdain! are you yet living?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>Is it possible disdain should die while she hath</LINE>
+<LINE>such meet food to feed it as Signior Benedick?</LINE>
+<LINE>Courtesy itself must convert to disdain, if you come</LINE>
+<LINE>in her presence.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Then is courtesy a turncoat. But it is certain I</LINE>
+<LINE>am loved of all ladies, only you excepted: and I</LINE>
+<LINE>would I could find in my heart that I had not a hard</LINE>
+<LINE>heart; for, truly, I love none.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>A dear happiness to women: they would else have</LINE>
+<LINE>been troubled with a pernicious suitor. I thank God</LINE>
+<LINE>and my cold blood, I am of your humour for that: I</LINE>
+<LINE>had rather hear my dog bark at a crow than a man</LINE>
+<LINE>swear he loves me.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>God keep your ladyship still in that mind! so some</LINE>
+<LINE>gentleman or other shall 'scape a predestinate</LINE>
+<LINE>scratched face.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>Scratching could not make it worse, an 'twere such</LINE>
+<LINE>a face as yours were.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Well, you are a rare parrot-teacher.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>A bird of my tongue is better than a beast of yours.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>I would my horse had the speed of your tongue, and</LINE>
+<LINE>so good a continuer. But keep your way, i' God's</LINE>
+<LINE>name; I have done.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>You always end with a jade's trick: I know you of old.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>That is the sum of all, Leonato. Signior Claudio</LINE>
+<LINE>and Signior Benedick, my dear friend Leonato hath</LINE>
+<LINE>invited you all. I tell him we shall stay here at</LINE>
+<LINE>the least a month; and he heartily prays some</LINE>
+<LINE>occasion may detain us longer. I dare swear he is no</LINE>
+<LINE>hypocrite, but prays from his heart.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>If you swear, my lord, you shall not be forsworn.</LINE>
+<STAGEDIR>To DON JOHN</STAGEDIR>
+<LINE>Let me bid you welcome, my lord: being reconciled to</LINE>
+<LINE>the prince your brother, I owe you all duty.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON JOHN</SPEAKER>
+<LINE>I thank you: I am not of many words, but I thank</LINE>
+<LINE>you.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>Please it your grace lead on?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Your hand, Leonato; we will go together.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Exeunt all except BENEDICK and CLAUDIO</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>Benedick, didst thou note the daughter of Signior Leonato?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>I noted her not; but I looked on her.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>Is she not a modest young lady?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Do you question me, as an honest man should do, for</LINE>
+<LINE>my simple true judgment; or would you have me speak</LINE>
+<LINE>after my custom, as being a professed tyrant to their sex?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>No; I pray thee speak in sober judgment.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Why, i' faith, methinks she's too low for a high</LINE>
+<LINE>praise, too brown for a fair praise and too little</LINE>
+<LINE>for a great praise: only this commendation I can</LINE>
+<LINE>afford her, that were she other than she is, she</LINE>
+<LINE>were unhandsome; and being no other but as she is, I</LINE>
+<LINE>do not like her.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>Thou thinkest I am in sport: I pray thee tell me</LINE>
+<LINE>truly how thou likest her.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Would you buy her, that you inquire after her?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>Can the world buy such a jewel?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Yea, and a case to put it into. But speak you this</LINE>
+<LINE>with a sad brow? or do you play the flouting Jack,</LINE>
+<LINE>to tell us Cupid is a good hare-finder and Vulcan a</LINE>
+<LINE>rare carpenter? Come, in what key shall a man take</LINE>
+<LINE>you, to go in the song?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>In mine eye she is the sweetest lady that ever I</LINE>
+<LINE>looked on.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>I can see yet without spectacles and I see no such</LINE>
+<LINE>matter: there's her cousin, an she were not</LINE>
+<LINE>possessed with a fury, exceeds her as much in beauty</LINE>
+<LINE>as the first of May doth the last of December. But I</LINE>
+<LINE>hope you have no intent to turn husband, have you?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>I would scarce trust myself, though I had sworn the</LINE>
+<LINE>contrary, if Hero would be my wife.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Is't come to this? In faith, hath not the world</LINE>
+<LINE>one man but he will wear his cap with suspicion?</LINE>
+<LINE>Shall I never see a bachelor of three-score again?</LINE>
+<LINE>Go to, i' faith; an thou wilt needs thrust thy neck</LINE>
+<LINE>into a yoke, wear the print of it and sigh away</LINE>
+<LINE>Sundays. Look Don Pedro is returned to seek you.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Re-enter DON PEDRO</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>What secret hath held you here, that you followed</LINE>
+<LINE>not to Leonato's?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>I would your grace would constrain me to tell.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>I charge thee on thy allegiance.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>You hear, Count Claudio: I can be secret as a dumb</LINE>
+<LINE>man; I would have you think so; but, on my</LINE>
+<LINE>allegiance, mark you this, on my allegiance. He is</LINE>
+<LINE>in love. With who? now that is your grace's part.</LINE>
+<LINE>Mark how short his answer is;--With Hero, Leonato's</LINE>
+<LINE>short daughter.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>If this were so, so were it uttered.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Like the old tale, my lord: 'it is not so, nor</LINE>
+<LINE>'twas not so, but, indeed, God forbid it should be</LINE>
+<LINE>so.'</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>If my passion change not shortly, God forbid it</LINE>
+<LINE>should be otherwise.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Amen, if you love her; for the lady is very well worthy.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>You speak this to fetch me in, my lord.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>By my troth, I speak my thought.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>And, in faith, my lord, I spoke mine.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>And, by my two faiths and troths, my lord, I spoke mine.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>That I love her, I feel.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>That she is worthy, I know.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>That I neither feel how she should be loved nor</LINE>
+<LINE>know how she should be worthy, is the opinion that</LINE>
+<LINE>fire cannot melt out of me: I will die in it at the stake.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Thou wast ever an obstinate heretic in the despite</LINE>
+<LINE>of beauty.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>And never could maintain his part but in the force</LINE>
+<LINE>of his will.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>That a woman conceived me, I thank her; that she</LINE>
+<LINE>brought me up, I likewise give her most humble</LINE>
+<LINE>thanks: but that I will have a recheat winded in my</LINE>
+<LINE>forehead, or hang my bugle in an invisible baldrick,</LINE>
+<LINE>all women shall pardon me. Because I will not do</LINE>
+<LINE>them the wrong to mistrust any, I will do myself the</LINE>
+<LINE>right to trust none; and the fine is, for the which</LINE>
+<LINE>I may go the finer, I will live a bachelor.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>I shall see thee, ere I die, look pale with love.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>With anger, with sickness, or with hunger, my lord,</LINE>
+<LINE>not with love: prove that ever I lose more blood</LINE>
+<LINE>with love than I will get again with drinking, pick</LINE>
+<LINE>out mine eyes with a ballad-maker's pen and hang me</LINE>
+<LINE>up at the door of a brothel-house for the sign of</LINE>
+<LINE>blind Cupid.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Well, if ever thou dost fall from this faith, thou</LINE>
+<LINE>wilt prove a notable argument.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>If I do, hang me in a bottle like a cat and shoot</LINE>
+<LINE>at me; and he that hits me, let him be clapped on</LINE>
+<LINE>the shoulder, and called Adam.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Well, as time shall try: 'In time the savage bull</LINE>
+<LINE>doth bear the yoke.'</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>The savage bull may; but if ever the sensible</LINE>
+<LINE>Benedick bear it, pluck off the bull's horns and set</LINE>
+<LINE>them in my forehead: and let me be vilely painted,</LINE>
+<LINE>and in such great letters as they write 'Here is</LINE>
+<LINE>good horse to hire,' let them signify under my sign</LINE>
+<LINE>'Here you may see Benedick the married man.'</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>If this should ever happen, thou wouldst be horn-mad.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Nay, if Cupid have not spent all his quiver in</LINE>
+<LINE>Venice, thou wilt quake for this shortly.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>I look for an earthquake too, then.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Well, you temporize with the hours. In the</LINE>
+<LINE>meantime, good Signior Benedick, repair to</LINE>
+<LINE>Leonato's: commend me to him and tell him I will</LINE>
+<LINE>not fail him at supper; for indeed he hath made</LINE>
+<LINE>great preparation.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>I have almost matter enough in me for such an</LINE>
+<LINE>embassage; and so I commit you--</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>To the tuition of God: From my house, if I had it,--</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>The sixth of July: Your loving friend, Benedick.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Nay, mock not, mock not. The body of your</LINE>
+<LINE>discourse is sometime guarded with fragments, and</LINE>
+<LINE>the guards are but slightly basted on neither: ere</LINE>
+<LINE>you flout old ends any further, examine your</LINE>
+<LINE>conscience: and so I leave you.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Exit</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>My liege, your highness now may do me good.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>My love is thine to teach: teach it but how,</LINE>
+<LINE>And thou shalt see how apt it is to learn</LINE>
+<LINE>Any hard lesson that may do thee good.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>Hath Leonato any son, my lord?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>No child but Hero; she's his only heir.</LINE>
+<LINE>Dost thou affect her, Claudio?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>O, my lord,</LINE>
+<LINE>When you went onward on this ended action,</LINE>
+<LINE>I look'd upon her with a soldier's eye,</LINE>
+<LINE>That liked, but had a rougher task in hand</LINE>
+<LINE>Than to drive liking to the name of love:</LINE>
+<LINE>But now I am return'd and that war-thoughts</LINE>
+<LINE>Have left their places vacant, in their rooms</LINE>
+<LINE>Come thronging soft and delicate desires,</LINE>
+<LINE>All prompting me how fair young Hero is,</LINE>
+<LINE>Saying, I liked her ere I went to wars.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Thou wilt be like a lover presently</LINE>
+<LINE>And tire the hearer with a book of words.</LINE>
+<LINE>If thou dost love fair Hero, cherish it,</LINE>
+<LINE>And I will break with her and with her father,</LINE>
+<LINE>And thou shalt have her. Was't not to this end</LINE>
+<LINE>That thou began'st to twist so fine a story?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>How sweetly you do minister to love,</LINE>
+<LINE>That know love's grief by his complexion!</LINE>
+<LINE>But lest my liking might too sudden seem,</LINE>
+<LINE>I would have salved it with a longer treatise.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>What need the bridge much broader than the flood?</LINE>
+<LINE>The fairest grant is the necessity.</LINE>
+<LINE>Look, what will serve is fit: 'tis once, thou lovest,</LINE>
+<LINE>And I will fit thee with the remedy.</LINE>
+<LINE>I know we shall have revelling to-night:</LINE>
+<LINE>I will assume thy part in some disguise</LINE>
+<LINE>And tell fair Hero I am Claudio,</LINE>
+<LINE>And in her bosom I'll unclasp my heart</LINE>
+<LINE>And take her hearing prisoner with the force</LINE>
+<LINE>And strong encounter of my amorous tale:</LINE>
+<LINE>Then after to her father will I break;</LINE>
+<LINE>And the conclusion is, she shall be thine.</LINE>
+<LINE>In practise let us put it presently.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Exeunt</STAGEDIR>
+</SCENE>
+
+<SCENE><TITLE>SCENE II. A room in LEONATO's house.</TITLE>
+<STAGEDIR>Enter LEONATO and ANTONIO, meeting</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>How now, brother! Where is my cousin, your son?</LINE>
+<LINE>hath he provided this music?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>ANTONIO</SPEAKER>
+<LINE>He is very busy about it. But, brother, I can tell</LINE>
+<LINE>you strange news that you yet dreamt not of.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>Are they good?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>ANTONIO</SPEAKER>
+<LINE>As the event stamps them: but they have a good</LINE>
+<LINE>cover; they show well outward. The prince and Count</LINE>
+<LINE>Claudio, walking in a thick-pleached alley in mine</LINE>
+<LINE>orchard, were thus much overheard by a man of mine:</LINE>
+<LINE>the prince discovered to Claudio that he loved my</LINE>
+<LINE>niece your daughter and meant to acknowledge it</LINE>
+<LINE>this night in a dance: and if he found her</LINE>
+<LINE>accordant, he meant to take the present time by the</LINE>
+<LINE>top and instantly break with you of it.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>Hath the fellow any wit that told you this?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>ANTONIO</SPEAKER>
+<LINE>A good sharp fellow: I will send for him; and</LINE>
+<LINE>question him yourself.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>No, no; we will hold it as a dream till it appear</LINE>
+<LINE>itself: but I will acquaint my daughter withal,</LINE>
+<LINE>that she may be the better prepared for an answer,</LINE>
+<LINE>if peradventure this be true. Go you and tell her of it.</LINE>
+<STAGEDIR>Enter Attendants</STAGEDIR>
+<LINE>Cousins, you know what you have to do. O, I cry you</LINE>
+<LINE>mercy, friend; go you with me, and I will use your</LINE>
+<LINE>skill. Good cousin, have a care this busy time.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Exeunt</STAGEDIR>
+</SCENE>
+
+<SCENE><TITLE>SCENE III. The same.</TITLE>
+<STAGEDIR>Enter DON JOHN and CONRADE</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>CONRADE</SPEAKER>
+<LINE>What the good-year, my lord! why are you thus out</LINE>
+<LINE>of measure sad?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON JOHN</SPEAKER>
+<LINE>There is no measure in the occasion that breeds;</LINE>
+<LINE>therefore the sadness is without limit.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CONRADE</SPEAKER>
+<LINE>You should hear reason.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON JOHN</SPEAKER>
+<LINE>And when I have heard it, what blessing brings it?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CONRADE</SPEAKER>
+<LINE>If not a present remedy, at least a patient</LINE>
+<LINE>sufferance.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON JOHN</SPEAKER>
+<LINE>I wonder that thou, being, as thou sayest thou art,</LINE>
+<LINE>born under Saturn, goest about to apply a moral</LINE>
+<LINE>medicine to a mortifying mischief. I cannot hide</LINE>
+<LINE>what I am: I must be sad when I have cause and smile</LINE>
+<LINE>at no man's jests, eat when I have stomach and wait</LINE>
+<LINE>for no man's leisure, sleep when I am drowsy and</LINE>
+<LINE>tend on no man's business, laugh when I am merry and</LINE>
+<LINE>claw no man in his humour.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CONRADE</SPEAKER>
+<LINE>Yea, but you must not make the full show of this</LINE>
+<LINE>till you may do it without controlment. You have of</LINE>
+<LINE>late stood out against your brother, and he hath</LINE>
+<LINE>ta'en you newly into his grace; where it is</LINE>
+<LINE>impossible you should take true root but by the</LINE>
+<LINE>fair weather that you make yourself: it is needful</LINE>
+<LINE>that you frame the season for your own harvest.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON JOHN</SPEAKER>
+<LINE>I had rather be a canker in a hedge than a rose in</LINE>
+<LINE>his grace, and it better fits my blood to be</LINE>
+<LINE>disdained of all than to fashion a carriage to rob</LINE>
+<LINE>love from any: in this, though I cannot be said to</LINE>
+<LINE>be a flattering honest man, it must not be denied</LINE>
+<LINE>but I am a plain-dealing villain. I am trusted with</LINE>
+<LINE>a muzzle and enfranchised with a clog; therefore I</LINE>
+<LINE>have decreed not to sing in my cage. If I had my</LINE>
+<LINE>mouth, I would bite; if I had my liberty, I would do</LINE>
+<LINE>my liking: in the meantime let me be that I am and</LINE>
+<LINE>seek not to alter me.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CONRADE</SPEAKER>
+<LINE>Can you make no use of your discontent?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON JOHN</SPEAKER>
+<LINE>I make all use of it, for I use it only.</LINE>
+<LINE>Who comes here?</LINE>
+<STAGEDIR>Enter BORACHIO</STAGEDIR>
+<LINE>What news, Borachio?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BORACHIO</SPEAKER>
+<LINE>I came yonder from a great supper: the prince your</LINE>
+<LINE>brother is royally entertained by Leonato: and I</LINE>
+<LINE>can give you intelligence of an intended marriage.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON JOHN</SPEAKER>
+<LINE>Will it serve for any model to build mischief on?</LINE>
+<LINE>What is he for a fool that betroths himself to</LINE>
+<LINE>unquietness?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BORACHIO</SPEAKER>
+<LINE>Marry, it is your brother's right hand.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON JOHN</SPEAKER>
+<LINE>Who? the most exquisite Claudio?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BORACHIO</SPEAKER>
+<LINE>Even he.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON JOHN</SPEAKER>
+<LINE>A proper squire! And who, and who? which way looks</LINE>
+<LINE>he?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BORACHIO</SPEAKER>
+<LINE>Marry, on Hero, the daughter and heir of Leonato.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON JOHN</SPEAKER>
+<LINE>A very forward March-chick! How came you to this?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BORACHIO</SPEAKER>
+<LINE>Being entertained for a perfumer, as I was smoking a</LINE>
+<LINE>musty room, comes me the prince and Claudio, hand</LINE>
+<LINE>in hand in sad conference: I whipt me behind the</LINE>
+<LINE>arras; and there heard it agreed upon that the</LINE>
+<LINE>prince should woo Hero for himself, and having</LINE>
+<LINE>obtained her, give her to Count Claudio.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON JOHN</SPEAKER>
+<LINE>Come, come, let us thither: this may prove food to</LINE>
+<LINE>my displeasure. That young start-up hath all the</LINE>
+<LINE>glory of my overthrow: if I can cross him any way, I</LINE>
+<LINE>bless myself every way. You are both sure, and will assist me?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CONRADE</SPEAKER>
+<LINE>To the death, my lord.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON JOHN</SPEAKER>
+<LINE>Let us to the great supper: their cheer is the</LINE>
+<LINE>greater that I am subdued. Would the cook were of</LINE>
+<LINE>my mind! Shall we go prove what's to be done?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BORACHIO</SPEAKER>
+<LINE>We'll wait upon your lordship.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Exeunt</STAGEDIR>
+</SCENE>
+
+</ACT>
+
+<ACT><TITLE>ACT II</TITLE>
+
+<SCENE><TITLE>SCENE I. A hall in LEONATO'S house.</TITLE>
+<STAGEDIR>Enter LEONATO, ANTONIO, HERO, BEATRICE, and others</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>Was not Count John here at supper?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>ANTONIO</SPEAKER>
+<LINE>I saw him not.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>How tartly that gentleman looks! I never can see</LINE>
+<LINE>him but I am heart-burned an hour after.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERO</SPEAKER>
+<LINE>He is of a very melancholy disposition.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>He were an excellent man that were made just in the</LINE>
+<LINE>midway between him and Benedick: the one is too</LINE>
+<LINE>like an image and says nothing, and the other too</LINE>
+<LINE>like my lady's eldest son, evermore tattling.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>Then half Signior Benedick's tongue in Count John's</LINE>
+<LINE>mouth, and half Count John's melancholy in Signior</LINE>
+<LINE>Benedick's face,--</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>With a good leg and a good foot, uncle, and money</LINE>
+<LINE>enough in his purse, such a man would win any woman</LINE>
+<LINE>in the world, if a' could get her good-will.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>By my troth, niece, thou wilt never get thee a</LINE>
+<LINE>husband, if thou be so shrewd of thy tongue.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>ANTONIO</SPEAKER>
+<LINE>In faith, she's too curst.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>Too curst is more than curst: I shall lessen God's</LINE>
+<LINE>sending that way; for it is said, 'God sends a curst</LINE>
+<LINE>cow short horns;' but to a cow too curst he sends none.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>So, by being too curst, God will send you no horns.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>Just, if he send me no husband; for the which</LINE>
+<LINE>blessing I am at him upon my knees every morning and</LINE>
+<LINE>evening. Lord, I could not endure a husband with a</LINE>
+<LINE>beard on his face: I had rather lie in the woollen.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>You may light on a husband that hath no beard.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>What should I do with him? dress him in my apparel</LINE>
+<LINE>and make him my waiting-gentlewoman? He that hath a</LINE>
+<LINE>beard is more than a youth, and he that hath no</LINE>
+<LINE>beard is less than a man: and he that is more than</LINE>
+<LINE>a youth is not for me, and he that is less than a</LINE>
+<LINE>man, I am not for him: therefore, I will even take</LINE>
+<LINE>sixpence in earnest of the bear-ward, and lead his</LINE>
+<LINE>apes into hell.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>Well, then, go you into hell?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>No, but to the gate; and there will the devil meet</LINE>
+<LINE>me, like an old cuckold, with horns on his head, and</LINE>
+<LINE>say 'Get you to heaven, Beatrice, get you to</LINE>
+<LINE>heaven; here's no place for you maids:' so deliver</LINE>
+<LINE>I up my apes, and away to Saint Peter for the</LINE>
+<LINE>heavens; he shows me where the bachelors sit, and</LINE>
+<LINE>there live we as merry as the day is long.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>ANTONIO</SPEAKER>
+<LINE><STAGEDIR>To HERO</STAGEDIR> Well, niece, I trust you will be ruled</LINE>
+<LINE>by your father.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>Yes, faith; it is my cousin's duty to make curtsy</LINE>
+<LINE>and say 'Father, as it please you.' But yet for all</LINE>
+<LINE>that, cousin, let him be a handsome fellow, or else</LINE>
+<LINE>make another curtsy and say 'Father, as it please</LINE>
+<LINE>me.'</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>Well, niece, I hope to see you one day fitted with a husband.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>Not till God make men of some other metal than</LINE>
+<LINE>earth. Would it not grieve a woman to be</LINE>
+<LINE>overmastered with a pierce of valiant dust? to make</LINE>
+<LINE>an account of her life to a clod of wayward marl?</LINE>
+<LINE>No, uncle, I'll none: Adam's sons are my brethren;</LINE>
+<LINE>and, truly, I hold it a sin to match in my kindred.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>Daughter, remember what I told you: if the prince</LINE>
+<LINE>do solicit you in that kind, you know your answer.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>The fault will be in the music, cousin, if you be</LINE>
+<LINE>not wooed in good time: if the prince be too</LINE>
+<LINE>important, tell him there is measure in every thing</LINE>
+<LINE>and so dance out the answer. For, hear me, Hero:</LINE>
+<LINE>wooing, wedding, and repenting, is as a Scotch jig,</LINE>
+<LINE>a measure, and a cinque pace: the first suit is hot</LINE>
+<LINE>and hasty, like a Scotch jig, and full as</LINE>
+<LINE>fantastical; the wedding, mannerly-modest, as a</LINE>
+<LINE>measure, full of state and ancientry; and then comes</LINE>
+<LINE>repentance and, with his bad legs, falls into the</LINE>
+<LINE>cinque pace faster and faster, till he sink into his grave.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>Cousin, you apprehend passing shrewdly.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>I have a good eye, uncle; I can see a church by daylight.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>The revellers are entering, brother: make good room.</LINE>
+</SPEECH>
+
+<STAGEDIR>All put on their masks</STAGEDIR>
+<STAGEDIR>Enter DON PEDRO, CLAUDIO, BENEDICK, BALTHASAR,
+DON JOHN, BORACHIO, MARGARET, URSULA and others, masked</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Lady, will you walk about with your friend?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERO</SPEAKER>
+<LINE>So you walk softly and look sweetly and say nothing,</LINE>
+<LINE>I am yours for the walk; and especially when I walk away.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>With me in your company?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERO</SPEAKER>
+<LINE>I may say so, when I please.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>And when please you to say so?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERO</SPEAKER>
+<LINE>When I like your favour; for God defend the lute</LINE>
+<LINE>should be like the case!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>My visor is Philemon's roof; within the house is Jove.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERO</SPEAKER>
+<LINE>Why, then, your visor should be thatched.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Speak low, if you speak love.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Drawing her aside</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>BALTHASAR</SPEAKER>
+<LINE>Well, I would you did like me.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>MARGARET</SPEAKER>
+<LINE>So would not I, for your own sake; for I have many</LINE>
+<LINE>ill-qualities.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BALTHASAR</SPEAKER>
+<LINE>Which is one?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>MARGARET</SPEAKER>
+<LINE>I say my prayers aloud.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BALTHASAR</SPEAKER>
+<LINE>I love you the better: the hearers may cry, Amen.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>MARGARET</SPEAKER>
+<LINE>God match me with a good dancer!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BALTHASAR</SPEAKER>
+<LINE>Amen.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>MARGARET</SPEAKER>
+<LINE>And God keep him out of my sight when the dance is</LINE>
+<LINE>done! Answer, clerk.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BALTHASAR</SPEAKER>
+<LINE>No more words: the clerk is answered.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>URSULA</SPEAKER>
+<LINE>I know you well enough; you are Signior Antonio.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>ANTONIO</SPEAKER>
+<LINE>At a word, I am not.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>URSULA</SPEAKER>
+<LINE>I know you by the waggling of your head.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>ANTONIO</SPEAKER>
+<LINE>To tell you true, I counterfeit him.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>URSULA</SPEAKER>
+<LINE>You could never do him so ill-well, unless you were</LINE>
+<LINE>the very man. Here's his dry hand up and down: you</LINE>
+<LINE>are he, you are he.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>ANTONIO</SPEAKER>
+<LINE>At a word, I am not.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>URSULA</SPEAKER>
+<LINE>Come, come, do you think I do not know you by your</LINE>
+<LINE>excellent wit? can virtue hide itself? Go to,</LINE>
+<LINE>mum, you are he: graces will appear, and there's an</LINE>
+<LINE>end.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>Will you not tell me who told you so?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>No, you shall pardon me.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>Nor will you not tell me who you are?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Not now.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>That I was disdainful, and that I had my good wit</LINE>
+<LINE>out of the 'Hundred Merry Tales:'--well this was</LINE>
+<LINE>Signior Benedick that said so.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>What's he?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>I am sure you know him well enough.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Not I, believe me.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>Did he never make you laugh?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>I pray you, what is he?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>Why, he is the prince's jester: a very dull fool;</LINE>
+<LINE>only his gift is in devising impossible slanders:</LINE>
+<LINE>none but libertines delight in him; and the</LINE>
+<LINE>commendation is not in his wit, but in his villany;</LINE>
+<LINE>for he both pleases men and angers them, and then</LINE>
+<LINE>they laugh at him and beat him. I am sure he is in</LINE>
+<LINE>the fleet: I would he had boarded me.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>When I know the gentleman, I'll tell him what you say.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>Do, do: he'll but break a comparison or two on me;</LINE>
+<LINE>which, peradventure not marked or not laughed at,</LINE>
+<LINE>strikes him into melancholy; and then there's a</LINE>
+<LINE>partridge wing saved, for the fool will eat no</LINE>
+<LINE>supper that night.</LINE>
+<STAGEDIR>Music</STAGEDIR>
+<LINE>We must follow the leaders.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>In every good thing.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>Nay, if they lead to any ill, I will leave them at</LINE>
+<LINE>the next turning.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Dance. Then exeunt all except DON JOHN, BORACHIO,
+and CLAUDIO</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>DON JOHN</SPEAKER>
+<LINE>Sure my brother is amorous on Hero and hath</LINE>
+<LINE>withdrawn her father to break with him about it.</LINE>
+<LINE>The ladies follow her and but one visor remains.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BORACHIO</SPEAKER>
+<LINE>And that is Claudio: I know him by his bearing.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON JOHN</SPEAKER>
+<LINE>Are not you Signior Benedick?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>You know me well; I am he.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON JOHN</SPEAKER>
+<LINE>Signior, you are very near my brother in his love:</LINE>
+<LINE>he is enamoured on Hero; I pray you, dissuade him</LINE>
+<LINE>from her: she is no equal for his birth: you may</LINE>
+<LINE>do the part of an honest man in it.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>How know you he loves her?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON JOHN</SPEAKER>
+<LINE>I heard him swear his affection.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BORACHIO</SPEAKER>
+<LINE>So did I too; and he swore he would marry her to-night.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON JOHN</SPEAKER>
+<LINE>Come, let us to the banquet.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Exeunt DON JOHN and BORACHIO</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>Thus answer I in the name of Benedick,</LINE>
+<LINE>But hear these ill news with the ears of Claudio.</LINE>
+<LINE>'Tis certain so; the prince wooes for himself.</LINE>
+<LINE>Friendship is constant in all other things</LINE>
+<LINE>Save in the office and affairs of love:</LINE>
+<LINE>Therefore, all hearts in love use their own tongues;</LINE>
+<LINE>Let every eye negotiate for itself</LINE>
+<LINE>And trust no agent; for beauty is a witch</LINE>
+<LINE>Against whose charms faith melteth into blood.</LINE>
+<LINE>This is an accident of hourly proof,</LINE>
+<LINE>Which I mistrusted not. Farewell, therefore, Hero!</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Re-enter BENEDICK</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Count Claudio?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>Yea, the same.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Come, will you go with me?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>Whither?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Even to the next willow, about your own business,</LINE>
+<LINE>county. What fashion will you wear the garland of?</LINE>
+<LINE>about your neck, like an usurer's chain? or under</LINE>
+<LINE>your arm, like a lieutenant's scarf? You must wear</LINE>
+<LINE>it one way, for the prince hath got your Hero.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>I wish him joy of her.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Why, that's spoken like an honest drovier: so they</LINE>
+<LINE>sell bullocks. But did you think the prince would</LINE>
+<LINE>have served you thus?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>I pray you, leave me.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Ho! now you strike like the blind man: 'twas the</LINE>
+<LINE>boy that stole your meat, and you'll beat the post.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>If it will not be, I'll leave you.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Exit</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Alas, poor hurt fowl! now will he creep into sedges.</LINE>
+<LINE>But that my Lady Beatrice should know me, and not</LINE>
+<LINE>know me! The prince's fool! Ha? It may be I go</LINE>
+<LINE>under that title because I am merry. Yea, but so I</LINE>
+<LINE>am apt to do myself wrong; I am not so reputed: it</LINE>
+<LINE>is the base, though bitter, disposition of Beatrice</LINE>
+<LINE>that puts the world into her person and so gives me</LINE>
+<LINE>out. Well, I'll be revenged as I may.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Re-enter DON PEDRO</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Now, signior, where's the count? did you see him?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Troth, my lord, I have played the part of Lady Fame.</LINE>
+<LINE>I found him here as melancholy as a lodge in a</LINE>
+<LINE>warren: I told him, and I think I told him true,</LINE>
+<LINE>that your grace had got the good will of this young</LINE>
+<LINE>lady; and I offered him my company to a willow-tree,</LINE>
+<LINE>either to make him a garland, as being forsaken, or</LINE>
+<LINE>to bind him up a rod, as being worthy to be whipped.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>To be whipped! What's his fault?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>The flat transgression of a schoolboy, who, being</LINE>
+<LINE>overjoyed with finding a birds' nest, shows it his</LINE>
+<LINE>companion, and he steals it.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Wilt thou make a trust a transgression? The</LINE>
+<LINE>transgression is in the stealer.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Yet it had not been amiss the rod had been made,</LINE>
+<LINE>and the garland too; for the garland he might have</LINE>
+<LINE>worn himself, and the rod he might have bestowed on</LINE>
+<LINE>you, who, as I take it, have stolen his birds' nest.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>I will but teach them to sing, and restore them to</LINE>
+<LINE>the owner.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>If their singing answer your saying, by my faith,</LINE>
+<LINE>you say honestly.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>The Lady Beatrice hath a quarrel to you: the</LINE>
+<LINE>gentleman that danced with her told her she is much</LINE>
+<LINE>wronged by you.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>O, she misused me past the endurance of a block!</LINE>
+<LINE>an oak but with one green leaf on it would have</LINE>
+<LINE>answered her; my very visor began to assume life and</LINE>
+<LINE>scold with her. She told me, not thinking I had been</LINE>
+<LINE>myself, that I was the prince's jester, that I was</LINE>
+<LINE>duller than a great thaw; huddling jest upon jest</LINE>
+<LINE>with such impossible conveyance upon me that I stood</LINE>
+<LINE>like a man at a mark, with a whole army shooting at</LINE>
+<LINE>me. She speaks poniards, and every word stabs:</LINE>
+<LINE>if her breath were as terrible as her terminations,</LINE>
+<LINE>there were no living near her; she would infect to</LINE>
+<LINE>the north star. I would not marry her, though she</LINE>
+<LINE>were endowed with all that Adam bad left him before</LINE>
+<LINE>he transgressed: she would have made Hercules have</LINE>
+<LINE>turned spit, yea, and have cleft his club to make</LINE>
+<LINE>the fire too. Come, talk not of her: you shall find</LINE>
+<LINE>her the infernal Ate in good apparel. I would to God</LINE>
+<LINE>some scholar would conjure her; for certainly, while</LINE>
+<LINE>she is here, a man may live as quiet in hell as in a</LINE>
+<LINE>sanctuary; and people sin upon purpose, because they</LINE>
+<LINE>would go thither; so, indeed, all disquiet, horror</LINE>
+<LINE>and perturbation follows her.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Look, here she comes.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Enter CLAUDIO, BEATRICE, HERO, and LEONATO</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Will your grace command me any service to the</LINE>
+<LINE>world's end? I will go on the slightest errand now</LINE>
+<LINE>to the Antipodes that you can devise to send me on;</LINE>
+<LINE>I will fetch you a tooth-picker now from the</LINE>
+<LINE>furthest inch of Asia, bring you the length of</LINE>
+<LINE>Prester John's foot, fetch you a hair off the great</LINE>
+<LINE>Cham's beard, do you any embassage to the Pigmies,</LINE>
+<LINE>rather than hold three words' conference with this</LINE>
+<LINE>harpy. You have no employment for me?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>None, but to desire your good company.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>O God, sir, here's a dish I love not: I cannot</LINE>
+<LINE>endure my Lady Tongue.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Exit</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Come, lady, come; you have lost the heart of</LINE>
+<LINE>Signior Benedick.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>Indeed, my lord, he lent it me awhile; and I gave</LINE>
+<LINE>him use for it, a double heart for his single one:</LINE>
+<LINE>marry, once before he won it of me with false dice,</LINE>
+<LINE>therefore your grace may well say I have lost it.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>You have put him down, lady, you have put him down.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>So I would not he should do me, my lord, lest I</LINE>
+<LINE>should prove the mother of fools. I have brought</LINE>
+<LINE>Count Claudio, whom you sent me to seek.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Why, how now, count! wherefore are you sad?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>Not sad, my lord.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>How then? sick?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>Neither, my lord.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>The count is neither sad, nor sick, nor merry, nor</LINE>
+<LINE>well; but civil count, civil as an orange, and</LINE>
+<LINE>something of that jealous complexion.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>I' faith, lady, I think your blazon to be true;</LINE>
+<LINE>though, I'll be sworn, if he be so, his conceit is</LINE>
+<LINE>false. Here, Claudio, I have wooed in thy name, and</LINE>
+<LINE>fair Hero is won: I have broke with her father,</LINE>
+<LINE>and his good will obtained: name the day of</LINE>
+<LINE>marriage, and God give thee joy!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>Count, take of me my daughter, and with her my</LINE>
+<LINE>fortunes: his grace hath made the match, and an</LINE>
+<LINE>grace say Amen to it.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>Speak, count, 'tis your cue.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>Silence is the perfectest herald of joy: I were</LINE>
+<LINE>but little happy, if I could say how much. Lady, as</LINE>
+<LINE>you are mine, I am yours: I give away myself for</LINE>
+<LINE>you and dote upon the exchange.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>Speak, cousin; or, if you cannot, stop his mouth</LINE>
+<LINE>with a kiss, and let not him speak neither.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>In faith, lady, you have a merry heart.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>Yea, my lord; I thank it, poor fool, it keeps on</LINE>
+<LINE>the windy side of care. My cousin tells him in his</LINE>
+<LINE>ear that he is in her heart.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>And so she doth, cousin.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>Good Lord, for alliance! Thus goes every one to the</LINE>
+<LINE>world but I, and I am sunburnt; I may sit in a</LINE>
+<LINE>corner and cry heigh-ho for a husband!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Lady Beatrice, I will get you one.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>I would rather have one of your father's getting.</LINE>
+<LINE>Hath your grace ne'er a brother like you? Your</LINE>
+<LINE>father got excellent husbands, if a maid could come by them.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Will you have me, lady?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>No, my lord, unless I might have another for</LINE>
+<LINE>working-days: your grace is too costly to wear</LINE>
+<LINE>every day. But, I beseech your grace, pardon me: I</LINE>
+<LINE>was born to speak all mirth and no matter.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Your silence most offends me, and to be merry best</LINE>
+<LINE>becomes you; for, out of question, you were born in</LINE>
+<LINE>a merry hour.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>No, sure, my lord, my mother cried; but then there</LINE>
+<LINE>was a star danced, and under that was I born.</LINE>
+<LINE>Cousins, God give you joy!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>Niece, will you look to those things I told you of?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>I cry you mercy, uncle. By your grace's pardon.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Exit</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>By my troth, a pleasant-spirited lady.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>There's little of the melancholy element in her, my</LINE>
+<LINE>lord: she is never sad but when she sleeps, and</LINE>
+<LINE>not ever sad then; for I have heard my daughter say,</LINE>
+<LINE>she hath often dreamed of unhappiness and waked</LINE>
+<LINE>herself with laughing.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>She cannot endure to hear tell of a husband.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>O, by no means: she mocks all her wooers out of suit.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>She were an excellent wife for Benedict.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>O Lord, my lord, if they were but a week married,</LINE>
+<LINE>they would talk themselves mad.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>County Claudio, when mean you to go to church?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>To-morrow, my lord: time goes on crutches till love</LINE>
+<LINE>have all his rites.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>Not till Monday, my dear son, which is hence a just</LINE>
+<LINE>seven-night; and a time too brief, too, to have all</LINE>
+<LINE>things answer my mind.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Come, you shake the head at so long a breathing:</LINE>
+<LINE>but, I warrant thee, Claudio, the time shall not go</LINE>
+<LINE>dully by us. I will in the interim undertake one of</LINE>
+<LINE>Hercules' labours; which is, to bring Signior</LINE>
+<LINE>Benedick and the Lady Beatrice into a mountain of</LINE>
+<LINE>affection the one with the other. I would fain have</LINE>
+<LINE>it a match, and I doubt not but to fashion it, if</LINE>
+<LINE>you three will but minister such assistance as I</LINE>
+<LINE>shall give you direction.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>My lord, I am for you, though it cost me ten</LINE>
+<LINE>nights' watchings.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>And I, my lord.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>And you too, gentle Hero?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERO</SPEAKER>
+<LINE>I will do any modest office, my lord, to help my</LINE>
+<LINE>cousin to a good husband.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>And Benedick is not the unhopefullest husband that</LINE>
+<LINE>I know. Thus far can I praise him; he is of a noble</LINE>
+<LINE>strain, of approved valour and confirmed honesty. I</LINE>
+<LINE>will teach you how to humour your cousin, that she</LINE>
+<LINE>shall fall in love with Benedick; and I, with your</LINE>
+<LINE>two helps, will so practise on Benedick that, in</LINE>
+<LINE>despite of his quick wit and his queasy stomach, he</LINE>
+<LINE>shall fall in love with Beatrice. If we can do this,</LINE>
+<LINE>Cupid is no longer an archer: his glory shall be</LINE>
+<LINE>ours, for we are the only love-gods. Go in with me,</LINE>
+<LINE>and I will tell you my drift.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Exeunt</STAGEDIR>
+</SCENE>
+
+<SCENE><TITLE>SCENE II. The same.</TITLE>
+<STAGEDIR>Enter DON JOHN and BORACHIO</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>DON JOHN</SPEAKER>
+<LINE>It is so; the Count Claudio shall marry the</LINE>
+<LINE>daughter of Leonato.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BORACHIO</SPEAKER>
+<LINE>Yea, my lord; but I can cross it.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON JOHN</SPEAKER>
+<LINE>Any bar, any cross, any impediment will be</LINE>
+<LINE>medicinable to me: I am sick in displeasure to him,</LINE>
+<LINE>and whatsoever comes athwart his affection ranges</LINE>
+<LINE>evenly with mine. How canst thou cross this marriage?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BORACHIO</SPEAKER>
+<LINE>Not honestly, my lord; but so covertly that no</LINE>
+<LINE>dishonesty shall appear in me.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON JOHN</SPEAKER>
+<LINE>Show me briefly how.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BORACHIO</SPEAKER>
+<LINE>I think I told your lordship a year since, how much</LINE>
+<LINE>I am in the favour of Margaret, the waiting</LINE>
+<LINE>gentlewoman to Hero.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON JOHN</SPEAKER>
+<LINE>I remember.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BORACHIO</SPEAKER>
+<LINE>I can, at any unseasonable instant of the night,</LINE>
+<LINE>appoint her to look out at her lady's chamber window.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON JOHN</SPEAKER>
+<LINE>What life is in that, to be the death of this marriage?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BORACHIO</SPEAKER>
+<LINE>The poison of that lies in you to temper. Go you to</LINE>
+<LINE>the prince your brother; spare not to tell him that</LINE>
+<LINE>he hath wronged his honour in marrying the renowned</LINE>
+<LINE>Claudio--whose estimation do you mightily hold</LINE>
+<LINE>up--to a contaminated stale, such a one as Hero.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON JOHN</SPEAKER>
+<LINE>What proof shall I make of that?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BORACHIO</SPEAKER>
+<LINE>Proof enough to misuse the prince, to vex Claudio,</LINE>
+<LINE>to undo Hero and kill Leonato. Look you for any</LINE>
+<LINE>other issue?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON JOHN</SPEAKER>
+<LINE>Only to despite them, I will endeavour any thing.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BORACHIO</SPEAKER>
+<LINE>Go, then; find me a meet hour to draw Don Pedro and</LINE>
+<LINE>the Count Claudio alone: tell them that you know</LINE>
+<LINE>that Hero loves me; intend a kind of zeal both to the</LINE>
+<LINE>prince and Claudio, as,--in love of your brother's</LINE>
+<LINE>honour, who hath made this match, and his friend's</LINE>
+<LINE>reputation, who is thus like to be cozened with the</LINE>
+<LINE>semblance of a maid,--that you have discovered</LINE>
+<LINE>thus. They will scarcely believe this without trial:</LINE>
+<LINE>offer them instances; which shall bear no less</LINE>
+<LINE>likelihood than to see me at her chamber-window,</LINE>
+<LINE>hear me call Margaret Hero, hear Margaret term me</LINE>
+<LINE>Claudio; and bring them to see this the very night</LINE>
+<LINE>before the intended wedding,--for in the meantime I</LINE>
+<LINE>will so fashion the matter that Hero shall be</LINE>
+<LINE>absent,--and there shall appear such seeming truth</LINE>
+<LINE>of Hero's disloyalty that jealousy shall be called</LINE>
+<LINE>assurance and all the preparation overthrown.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON JOHN</SPEAKER>
+<LINE>Grow this to what adverse issue it can, I will put</LINE>
+<LINE>it in practise. Be cunning in the working this, and</LINE>
+<LINE>thy fee is a thousand ducats.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BORACHIO</SPEAKER>
+<LINE>Be you constant in the accusation, and my cunning</LINE>
+<LINE>shall not shame me.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON JOHN</SPEAKER>
+<LINE>I will presently go learn their day of marriage.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Exeunt</STAGEDIR>
+</SCENE>
+
+<SCENE><TITLE>SCENE III. LEONATO'S orchard.</TITLE>
+<STAGEDIR>Enter BENEDICK</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Boy!</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Enter Boy</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>Boy</SPEAKER>
+<LINE>Signior?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>In my chamber-window lies a book: bring it hither</LINE>
+<LINE>to me in the orchard.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Boy</SPEAKER>
+<LINE>I am here already, sir.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>I know that; but I would have thee hence, and here again.</LINE>
+<STAGEDIR>Exit Boy</STAGEDIR>
+<LINE>I do much wonder that one man, seeing how much</LINE>
+<LINE>another man is a fool when he dedicates his</LINE>
+<LINE>behaviors to love, will, after he hath laughed at</LINE>
+<LINE>such shallow follies in others, become the argument</LINE>
+<LINE>of his own scorn by failing in love: and such a man</LINE>
+<LINE>is Claudio. I have known when there was no music</LINE>
+<LINE>with him but the drum and the fife; and now had he</LINE>
+<LINE>rather hear the tabour and the pipe: I have known</LINE>
+<LINE>when he would have walked ten mile a-foot to see a</LINE>
+<LINE>good armour; and now will he lie ten nights awake,</LINE>
+<LINE>carving the fashion of a new doublet. He was wont to</LINE>
+<LINE>speak plain and to the purpose, like an honest man</LINE>
+<LINE>and a soldier; and now is he turned orthography; his</LINE>
+<LINE>words are a very fantastical banquet, just so many</LINE>
+<LINE>strange dishes. May I be so converted and see with</LINE>
+<LINE>these eyes? I cannot tell; I think not: I will not</LINE>
+<LINE>be sworn, but love may transform me to an oyster; but</LINE>
+<LINE>I'll take my oath on it, till he have made an oyster</LINE>
+<LINE>of me, he shall never make me such a fool. One woman</LINE>
+<LINE>is fair, yet I am well; another is wise, yet I am</LINE>
+<LINE>well; another virtuous, yet I am well; but till all</LINE>
+<LINE>graces be in one woman, one woman shall not come in</LINE>
+<LINE>my grace. Rich she shall be, that's certain; wise,</LINE>
+<LINE>or I'll none; virtuous, or I'll never cheapen her;</LINE>
+<LINE>fair, or I'll never look on her; mild, or come not</LINE>
+<LINE>near me; noble, or not I for an angel; of good</LINE>
+<LINE>discourse, an excellent musician, and her hair shall</LINE>
+<LINE>be of what colour it please God. Ha! the prince and</LINE>
+<LINE>Monsieur Love! I will hide me in the arbour.</LINE>
+</SPEECH>
+
+<STAGEDIR>Withdraws</STAGEDIR>
+<STAGEDIR>Enter DON PEDRO, CLAUDIO, and LEONATO</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Come, shall we hear this music?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>Yea, my good lord. How still the evening is,</LINE>
+<LINE>As hush'd on purpose to grace harmony!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>See you where Benedick hath hid himself?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>O, very well, my lord: the music ended,</LINE>
+<LINE>We'll fit the kid-fox with a pennyworth.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Enter BALTHASAR with Music</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Come, Balthasar, we'll hear that song again.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BALTHASAR</SPEAKER>
+<LINE>O, good my lord, tax not so bad a voice</LINE>
+<LINE>To slander music any more than once.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>It is the witness still of excellency</LINE>
+<LINE>To put a strange face on his own perfection.</LINE>
+<LINE>I pray thee, sing, and let me woo no more.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BALTHASAR</SPEAKER>
+<LINE>Because you talk of wooing, I will sing;</LINE>
+<LINE>Since many a wooer doth commence his suit</LINE>
+<LINE>To her he thinks not worthy, yet he wooes,</LINE>
+<LINE>Yet will he swear he loves.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Now, pray thee, come;</LINE>
+<LINE>Or, if thou wilt hold longer argument,</LINE>
+<LINE>Do it in notes.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BALTHASAR</SPEAKER>
+<LINE>Note this before my notes;</LINE>
+<LINE>There's not a note of mine that's worth the noting.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Why, these are very crotchets that he speaks;</LINE>
+<LINE>Note, notes, forsooth, and nothing.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Air</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Now, divine air! now is his soul ravished! Is it</LINE>
+<LINE>not strange that sheeps' guts should hale souls out</LINE>
+<LINE>of men's bodies? Well, a horn for my money, when</LINE>
+<LINE>all's done.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>The Song</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>BALTHASAR</SPEAKER>
+<LINE>Sigh no more, ladies, sigh no more,</LINE>
+<LINE>Men were deceivers ever,</LINE>
+<LINE>One foot in sea and one on shore,</LINE>
+<LINE>To one thing constant never:</LINE>
+<LINE>Then sigh not so, but let them go,</LINE>
+<LINE>And be you blithe and bonny,</LINE>
+<LINE>Converting all your sounds of woe</LINE>
+<LINE>Into Hey nonny, nonny.</LINE>
+<LINE>Sing no more ditties, sing no moe,</LINE>
+<LINE>Of dumps so dull and heavy;</LINE>
+<LINE>The fraud of men was ever so,</LINE>
+<LINE>Since summer first was leafy:</LINE>
+<LINE>Then sigh not so, &amp;c.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>By my troth, a good song.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BALTHASAR</SPEAKER>
+<LINE>And an ill singer, my lord.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Ha, no, no, faith; thou singest well enough for a shift.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>An he had been a dog that should have howled thus,</LINE>
+<LINE>they would have hanged him: and I pray God his bad</LINE>
+<LINE>voice bode no mischief. I had as lief have heard the</LINE>
+<LINE>night-raven, come what plague could have come after</LINE>
+<LINE>it.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Yea, marry, dost thou hear, Balthasar? I pray thee,</LINE>
+<LINE>get us some excellent music; for to-morrow night we</LINE>
+<LINE>would have it at the Lady Hero's chamber-window.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BALTHASAR</SPEAKER>
+<LINE>The best I can, my lord.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Do so: farewell.</LINE>
+<STAGEDIR>Exit BALTHASAR</STAGEDIR>
+<LINE>Come hither, Leonato. What was it you told me of</LINE>
+<LINE>to-day, that your niece Beatrice was in love with</LINE>
+<LINE>Signior Benedick?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>O, ay: stalk on. stalk on; the fowl sits. I did</LINE>
+<LINE>never think that lady would have loved any man.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>No, nor I neither; but most wonderful that she</LINE>
+<LINE>should so dote on Signior Benedick, whom she hath in</LINE>
+<LINE>all outward behaviors seemed ever to abhor.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Is't possible? Sits the wind in that corner?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>By my troth, my lord, I cannot tell what to think</LINE>
+<LINE>of it but that she loves him with an enraged</LINE>
+<LINE>affection: it is past the infinite of thought.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>May be she doth but counterfeit.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>Faith, like enough.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>O God, counterfeit! There was never counterfeit of</LINE>
+<LINE>passion came so near the life of passion as she</LINE>
+<LINE>discovers it.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Why, what effects of passion shows she?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>Bait the hook well; this fish will bite.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>What effects, my lord? She will sit you, you heard</LINE>
+<LINE>my daughter tell you how.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>She did, indeed.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>How, how, pray you? You amaze me: I would have I</LINE>
+<LINE>thought her spirit had been invincible against all</LINE>
+<LINE>assaults of affection.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>I would have sworn it had, my lord; especially</LINE>
+<LINE>against Benedick.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>I should think this a gull, but that the</LINE>
+<LINE>white-bearded fellow speaks it: knavery cannot,</LINE>
+<LINE>sure, hide himself in such reverence.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>He hath ta'en the infection: hold it up.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Hath she made her affection known to Benedick?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>No; and swears she never will: that's her torment.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>'Tis true, indeed; so your daughter says: 'Shall</LINE>
+<LINE>I,' says she, 'that have so oft encountered him</LINE>
+<LINE>with scorn, write to him that I love him?'</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>This says she now when she is beginning to write to</LINE>
+<LINE>him; for she'll be up twenty times a night, and</LINE>
+<LINE>there will she sit in her smock till she have writ a</LINE>
+<LINE>sheet of paper: my daughter tells us all.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>Now you talk of a sheet of paper, I remember a</LINE>
+<LINE>pretty jest your daughter told us of.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>O, when she had writ it and was reading it over, she</LINE>
+<LINE>found Benedick and Beatrice between the sheet?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>That.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>O, she tore the letter into a thousand halfpence;</LINE>
+<LINE>railed at herself, that she should be so immodest</LINE>
+<LINE>to write to one that she knew would flout her; 'I</LINE>
+<LINE>measure him,' says she, 'by my own spirit; for I</LINE>
+<LINE>should flout him, if he writ to me; yea, though I</LINE>
+<LINE>love him, I should.'</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>Then down upon her knees she falls, weeps, sobs,</LINE>
+<LINE>beats her heart, tears her hair, prays, curses; 'O</LINE>
+<LINE>sweet Benedick! God give me patience!'</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>She doth indeed; my daughter says so: and the</LINE>
+<LINE>ecstasy hath so much overborne her that my daughter</LINE>
+<LINE>is sometime afeared she will do a desperate outrage</LINE>
+<LINE>to herself: it is very true.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>It were good that Benedick knew of it by some</LINE>
+<LINE>other, if she will not discover it.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>To what end? He would make but a sport of it and</LINE>
+<LINE>torment the poor lady worse.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>An he should, it were an alms to hang him. She's an</LINE>
+<LINE>excellent sweet lady; and, out of all suspicion,</LINE>
+<LINE>she is virtuous.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>And she is exceeding wise.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>In every thing but in loving Benedick.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>O, my lord, wisdom and blood combating in so tender</LINE>
+<LINE>a body, we have ten proofs to one that blood hath</LINE>
+<LINE>the victory. I am sorry for her, as I have just</LINE>
+<LINE>cause, being her uncle and her guardian.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>I would she had bestowed this dotage on me: I would</LINE>
+<LINE>have daffed all other respects and made her half</LINE>
+<LINE>myself. I pray you, tell Benedick of it, and hear</LINE>
+<LINE>what a' will say.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>Were it good, think you?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>Hero thinks surely she will die; for she says she</LINE>
+<LINE>will die, if he love her not, and she will die, ere</LINE>
+<LINE>she make her love known, and she will die, if he woo</LINE>
+<LINE>her, rather than she will bate one breath of her</LINE>
+<LINE>accustomed crossness.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>She doth well: if she should make tender of her</LINE>
+<LINE>love, 'tis very possible he'll scorn it; for the</LINE>
+<LINE>man, as you know all, hath a contemptible spirit.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>He is a very proper man.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>He hath indeed a good outward happiness.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>Before God! and, in my mind, very wise.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>He doth indeed show some sparks that are like wit.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>And I take him to be valiant.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>As Hector, I assure you: and in the managing of</LINE>
+<LINE>quarrels you may say he is wise; for either he</LINE>
+<LINE>avoids them with great discretion, or undertakes</LINE>
+<LINE>them with a most Christian-like fear.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>If he do fear God, a' must necessarily keep peace:</LINE>
+<LINE>if he break the peace, he ought to enter into a</LINE>
+<LINE>quarrel with fear and trembling.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>And so will he do; for the man doth fear God,</LINE>
+<LINE>howsoever it seems not in him by some large jests</LINE>
+<LINE>he will make. Well I am sorry for your niece. Shall</LINE>
+<LINE>we go seek Benedick, and tell him of her love?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>Never tell him, my lord: let her wear it out with</LINE>
+<LINE>good counsel.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>Nay, that's impossible: she may wear her heart out first.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Well, we will hear further of it by your daughter:</LINE>
+<LINE>let it cool the while. I love Benedick well; and I</LINE>
+<LINE>could wish he would modestly examine himself, to see</LINE>
+<LINE>how much he is unworthy so good a lady.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>My lord, will you walk? dinner is ready.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>If he do not dote on her upon this, I will never</LINE>
+<LINE>trust my expectation.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Let there be the same net spread for her; and that</LINE>
+<LINE>must your daughter and her gentlewomen carry. The</LINE>
+<LINE>sport will be, when they hold one an opinion of</LINE>
+<LINE>another's dotage, and no such matter: that's the</LINE>
+<LINE>scene that I would see, which will be merely a</LINE>
+<LINE>dumb-show. Let us send her to call him in to dinner.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Exeunt DON PEDRO, CLAUDIO, and LEONATO</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE><STAGEDIR>Coming forward</STAGEDIR> This can be no trick: the</LINE>
+<LINE>conference was sadly borne. They have the truth of</LINE>
+<LINE>this from Hero. They seem to pity the lady: it</LINE>
+<LINE>seems her affections have their full bent. Love me!</LINE>
+<LINE>why, it must be requited. I hear how I am censured:</LINE>
+<LINE>they say I will bear myself proudly, if I perceive</LINE>
+<LINE>the love come from her; they say too that she will</LINE>
+<LINE>rather die than give any sign of affection. I did</LINE>
+<LINE>never think to marry: I must not seem proud: happy</LINE>
+<LINE>are they that hear their detractions and can put</LINE>
+<LINE>them to mending. They say the lady is fair; 'tis a</LINE>
+<LINE>truth, I can bear them witness; and virtuous; 'tis</LINE>
+<LINE>so, I cannot reprove it; and wise, but for loving</LINE>
+<LINE>me; by my troth, it is no addition to her wit, nor</LINE>
+<LINE>no great argument of her folly, for I will be</LINE>
+<LINE>horribly in love with her. I may chance have some</LINE>
+<LINE>odd quirks and remnants of wit broken on me,</LINE>
+<LINE>because I have railed so long against marriage: but</LINE>
+<LINE>doth not the appetite alter? a man loves the meat</LINE>
+<LINE>in his youth that he cannot endure in his age.</LINE>
+<LINE>Shall quips and sentences and these paper bullets of</LINE>
+<LINE>the brain awe a man from the career of his humour?</LINE>
+<LINE>No, the world must be peopled. When I said I would</LINE>
+<LINE>die a bachelor, I did not think I should live till I</LINE>
+<LINE>were married. Here comes Beatrice. By this day!</LINE>
+<LINE>she's a fair lady: I do spy some marks of love in</LINE>
+<LINE>her.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Enter BEATRICE</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>Against my will I am sent to bid you come in to dinner.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Fair Beatrice, I thank you for your pains.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>I took no more pains for those thanks than you take</LINE>
+<LINE>pains to thank me: if it had been painful, I would</LINE>
+<LINE>not have come.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>You take pleasure then in the message?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>Yea, just so much as you may take upon a knife's</LINE>
+<LINE>point and choke a daw withal. You have no stomach,</LINE>
+<LINE>signior: fare you well.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Exit</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Ha! 'Against my will I am sent to bid you come in</LINE>
+<LINE>to dinner;' there's a double meaning in that 'I took</LINE>
+<LINE>no more pains for those thanks than you took pains</LINE>
+<LINE>to thank me.' that's as much as to say, Any pains</LINE>
+<LINE>that I take for you is as easy as thanks. If I do</LINE>
+<LINE>not take pity of her, I am a villain; if I do not</LINE>
+<LINE>love her, I am a Jew. I will go get her picture.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Exit</STAGEDIR>
+</SCENE>
+
+</ACT>
+
+<ACT><TITLE>ACT III</TITLE>
+
+<SCENE><TITLE>SCENE I. LEONATO'S garden.</TITLE>
+<STAGEDIR>Enter HERO, MARGARET, and URSULA</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>HERO</SPEAKER>
+<LINE>Good Margaret, run thee to the parlor;</LINE>
+<LINE>There shalt thou find my cousin Beatrice</LINE>
+<LINE>Proposing with the prince and Claudio:</LINE>
+<LINE>Whisper her ear and tell her, I and Ursula</LINE>
+<LINE>Walk in the orchard and our whole discourse</LINE>
+<LINE>Is all of her; say that thou overheard'st us;</LINE>
+<LINE>And bid her steal into the pleached bower,</LINE>
+<LINE>Where honeysuckles, ripen'd by the sun,</LINE>
+<LINE>Forbid the sun to enter, like favourites,</LINE>
+<LINE>Made proud by princes, that advance their pride</LINE>
+<LINE>Against that power that bred it: there will she hide her,</LINE>
+<LINE>To listen our purpose. This is thy office;</LINE>
+<LINE>Bear thee well in it and leave us alone.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>MARGARET</SPEAKER>
+<LINE>I'll make her come, I warrant you, presently.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Exit</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>HERO</SPEAKER>
+<LINE>Now, Ursula, when Beatrice doth come,</LINE>
+<LINE>As we do trace this alley up and down,</LINE>
+<LINE>Our talk must only be of Benedick.</LINE>
+<LINE>When I do name him, let it be thy part</LINE>
+<LINE>To praise him more than ever man did merit:</LINE>
+<LINE>My talk to thee must be how Benedick</LINE>
+<LINE>Is sick in love with Beatrice. Of this matter</LINE>
+<LINE>Is little Cupid's crafty arrow made,</LINE>
+<LINE>That only wounds by hearsay.</LINE>
+<STAGEDIR>Enter BEATRICE, behind</STAGEDIR>
+<LINE>Now begin;</LINE>
+<LINE>For look where Beatrice, like a lapwing, runs</LINE>
+<LINE>Close by the ground, to hear our conference.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>URSULA</SPEAKER>
+<LINE>The pleasant'st angling is to see the fish</LINE>
+<LINE>Cut with her golden oars the silver stream,</LINE>
+<LINE>And greedily devour the treacherous bait:</LINE>
+<LINE>So angle we for Beatrice; who even now</LINE>
+<LINE>Is couched in the woodbine coverture.</LINE>
+<LINE>Fear you not my part of the dialogue.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERO</SPEAKER>
+<LINE>Then go we near her, that her ear lose nothing</LINE>
+<LINE>Of the false sweet bait that we lay for it.</LINE>
+<STAGEDIR>Approaching the bower</STAGEDIR>
+<LINE>No, truly, Ursula, she is too disdainful;</LINE>
+<LINE>I know her spirits are as coy and wild</LINE>
+<LINE>As haggerds of the rock.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>URSULA</SPEAKER>
+<LINE>But are you sure</LINE>
+<LINE>That Benedick loves Beatrice so entirely?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERO</SPEAKER>
+<LINE>So says the prince and my new-trothed lord.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>URSULA</SPEAKER>
+<LINE>And did they bid you tell her of it, madam?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERO</SPEAKER>
+<LINE>They did entreat me to acquaint her of it;</LINE>
+<LINE>But I persuaded them, if they loved Benedick,</LINE>
+<LINE>To wish him wrestle with affection,</LINE>
+<LINE>And never to let Beatrice know of it.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>URSULA</SPEAKER>
+<LINE>Why did you so? Doth not the gentleman</LINE>
+<LINE>Deserve as full as fortunate a bed</LINE>
+<LINE>As ever Beatrice shall couch upon?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERO</SPEAKER>
+<LINE>O god of love! I know he doth deserve</LINE>
+<LINE>As much as may be yielded to a man:</LINE>
+<LINE>But Nature never framed a woman's heart</LINE>
+<LINE>Of prouder stuff than that of Beatrice;</LINE>
+<LINE>Disdain and scorn ride sparkling in her eyes,</LINE>
+<LINE>Misprising what they look on, and her wit</LINE>
+<LINE>Values itself so highly that to her</LINE>
+<LINE>All matter else seems weak: she cannot love,</LINE>
+<LINE>Nor take no shape nor project of affection,</LINE>
+<LINE>She is so self-endeared.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>URSULA</SPEAKER>
+<LINE>Sure, I think so;</LINE>
+<LINE>And therefore certainly it were not good</LINE>
+<LINE>She knew his love, lest she make sport at it.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERO</SPEAKER>
+<LINE>Why, you speak truth. I never yet saw man,</LINE>
+<LINE>How wise, how noble, young, how rarely featured,</LINE>
+<LINE>But she would spell him backward: if fair-faced,</LINE>
+<LINE>She would swear the gentleman should be her sister;</LINE>
+<LINE>If black, why, Nature, drawing of an antique,</LINE>
+<LINE>Made a foul blot; if tall, a lance ill-headed;</LINE>
+<LINE>If low, an agate very vilely cut;</LINE>
+<LINE>If speaking, why, a vane blown with all winds;</LINE>
+<LINE>If silent, why, a block moved with none.</LINE>
+<LINE>So turns she every man the wrong side out</LINE>
+<LINE>And never gives to truth and virtue that</LINE>
+<LINE>Which simpleness and merit purchaseth.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>URSULA</SPEAKER>
+<LINE>Sure, sure, such carping is not commendable.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERO</SPEAKER>
+<LINE>No, not to be so odd and from all fashions</LINE>
+<LINE>As Beatrice is, cannot be commendable:</LINE>
+<LINE>But who dare tell her so? If I should speak,</LINE>
+<LINE>She would mock me into air; O, she would laugh me</LINE>
+<LINE>Out of myself, press me to death with wit.</LINE>
+<LINE>Therefore let Benedick, like cover'd fire,</LINE>
+<LINE>Consume away in sighs, waste inwardly:</LINE>
+<LINE>It were a better death than die with mocks,</LINE>
+<LINE>Which is as bad as die with tickling.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>URSULA</SPEAKER>
+<LINE>Yet tell her of it: hear what she will say.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERO</SPEAKER>
+<LINE>No; rather I will go to Benedick</LINE>
+<LINE>And counsel him to fight against his passion.</LINE>
+<LINE>And, truly, I'll devise some honest slanders</LINE>
+<LINE>To stain my cousin with: one doth not know</LINE>
+<LINE>How much an ill word may empoison liking.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>URSULA</SPEAKER>
+<LINE>O, do not do your cousin such a wrong.</LINE>
+<LINE>She cannot be so much without true judgment--</LINE>
+<LINE>Having so swift and excellent a wit</LINE>
+<LINE>As she is prized to have--as to refuse</LINE>
+<LINE>So rare a gentleman as Signior Benedick.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERO</SPEAKER>
+<LINE>He is the only man of Italy.</LINE>
+<LINE>Always excepted my dear Claudio.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>URSULA</SPEAKER>
+<LINE>I pray you, be not angry with me, madam,</LINE>
+<LINE>Speaking my fancy: Signior Benedick,</LINE>
+<LINE>For shape, for bearing, argument and valour,</LINE>
+<LINE>Goes foremost in report through Italy.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERO</SPEAKER>
+<LINE>Indeed, he hath an excellent good name.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>URSULA</SPEAKER>
+<LINE>His excellence did earn it, ere he had it.</LINE>
+<LINE>When are you married, madam?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERO</SPEAKER>
+<LINE>Why, every day, to-morrow. Come, go in:</LINE>
+<LINE>I'll show thee some attires, and have thy counsel</LINE>
+<LINE>Which is the best to furnish me to-morrow.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>URSULA</SPEAKER>
+<LINE>She's limed, I warrant you: we have caught her, madam.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERO</SPEAKER>
+<LINE>If it proves so, then loving goes by haps:</LINE>
+<LINE>Some Cupid kills with arrows, some with traps.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Exeunt HERO and URSULA</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE><STAGEDIR>Coming forward</STAGEDIR></LINE>
+<LINE>What fire is in mine ears? Can this be true?</LINE>
+<LINE>Stand I condemn'd for pride and scorn so much?</LINE>
+<LINE>Contempt, farewell! and maiden pride, adieu!</LINE>
+<LINE>No glory lives behind the back of such.</LINE>
+<LINE>And, Benedick, love on; I will requite thee,</LINE>
+<LINE>Taming my wild heart to thy loving hand:</LINE>
+<LINE>If thou dost love, my kindness shall incite thee</LINE>
+<LINE>To bind our loves up in a holy band;</LINE>
+<LINE>For others say thou dost deserve, and I</LINE>
+<LINE>Believe it better than reportingly.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Exit</STAGEDIR>
+</SCENE>
+
+<SCENE><TITLE>SCENE II. A room in LEONATO'S house</TITLE>
+<STAGEDIR>Enter DON PEDRO, CLAUDIO, BENEDICK, and LEONATO</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>I do but stay till your marriage be consummate, and</LINE>
+<LINE>then go I toward Arragon.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>I'll bring you thither, my lord, if you'll</LINE>
+<LINE>vouchsafe me.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Nay, that would be as great a soil in the new gloss</LINE>
+<LINE>of your marriage as to show a child his new coat</LINE>
+<LINE>and forbid him to wear it. I will only be bold</LINE>
+<LINE>with Benedick for his company; for, from the crown</LINE>
+<LINE>of his head to the sole of his foot, he is all</LINE>
+<LINE>mirth: he hath twice or thrice cut Cupid's</LINE>
+<LINE>bow-string and the little hangman dare not shoot at</LINE>
+<LINE>him; he hath a heart as sound as a bell and his</LINE>
+<LINE>tongue is the clapper, for what his heart thinks his</LINE>
+<LINE>tongue speaks.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Gallants, I am not as I have been.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>So say I methinks you are sadder.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>I hope he be in love.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Hang him, truant! there's no true drop of blood in</LINE>
+<LINE>him, to be truly touched with love: if he be sad,</LINE>
+<LINE>he wants money.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>I have the toothache.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Draw it.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Hang it!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>You must hang it first, and draw it afterwards.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>What! sigh for the toothache?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>Where is but a humour or a worm.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Well, every one can master a grief but he that has</LINE>
+<LINE>it.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>Yet say I, he is in love.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>There is no appearance of fancy in him, unless it be</LINE>
+<LINE>a fancy that he hath to strange disguises; as, to be</LINE>
+<LINE>a Dutchman today, a Frenchman to-morrow, or in the</LINE>
+<LINE>shape of two countries at once, as, a German from</LINE>
+<LINE>the waist downward, all slops, and a Spaniard from</LINE>
+<LINE>the hip upward, no doublet. Unless he have a fancy</LINE>
+<LINE>to this foolery, as it appears he hath, he is no</LINE>
+<LINE>fool for fancy, as you would have it appear he is.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>If he be not in love with some woman, there is no</LINE>
+<LINE>believing old signs: a' brushes his hat o'</LINE>
+<LINE>mornings; what should that bode?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Hath any man seen him at the barber's?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>No, but the barber's man hath been seen with him,</LINE>
+<LINE>and the old ornament of his cheek hath already</LINE>
+<LINE>stuffed tennis-balls.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>Indeed, he looks younger than he did, by the loss of a beard.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Nay, a' rubs himself with civet: can you smell him</LINE>
+<LINE>out by that?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>That's as much as to say, the sweet youth's in love.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>The greatest note of it is his melancholy.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>And when was he wont to wash his face?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Yea, or to paint himself? for the which, I hear</LINE>
+<LINE>what they say of him.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>Nay, but his jesting spirit; which is now crept into</LINE>
+<LINE>a lute-string and now governed by stops.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Indeed, that tells a heavy tale for him: conclude,</LINE>
+<LINE>conclude he is in love.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>Nay, but I know who loves him.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>That would I know too: I warrant, one that knows him not.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>Yes, and his ill conditions; and, in despite of</LINE>
+<LINE>all, dies for him.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>She shall be buried with her face upwards.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Yet is this no charm for the toothache. Old</LINE>
+<LINE>signior, walk aside with me: I have studied eight</LINE>
+<LINE>or nine wise words to speak to you, which these</LINE>
+<LINE>hobby-horses must not hear.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Exeunt BENEDICK and LEONATO</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>For my life, to break with him about Beatrice.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>'Tis even so. Hero and Margaret have by this</LINE>
+<LINE>played their parts with Beatrice; and then the two</LINE>
+<LINE>bears will not bite one another when they meet.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Enter DON JOHN</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>DON JOHN</SPEAKER>
+<LINE>My lord and brother, God save you!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Good den, brother.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON JOHN</SPEAKER>
+<LINE>If your leisure served, I would speak with you.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>In private?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON JOHN</SPEAKER>
+<LINE>If it please you: yet Count Claudio may hear; for</LINE>
+<LINE>what I would speak of concerns him.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>What's the matter?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON JOHN</SPEAKER>
+<LINE><STAGEDIR>To CLAUDIO</STAGEDIR> Means your lordship to be married</LINE>
+<LINE>to-morrow?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>You know he does.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON JOHN</SPEAKER>
+<LINE>I know not that, when he knows what I know.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>If there be any impediment, I pray you discover it.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON JOHN</SPEAKER>
+<LINE>You may think I love you not: let that appear</LINE>
+<LINE>hereafter, and aim better at me by that I now will</LINE>
+<LINE>manifest. For my brother, I think he holds you</LINE>
+<LINE>well, and in dearness of heart hath holp to effect</LINE>
+<LINE>your ensuing marriage;--surely suit ill spent and</LINE>
+<LINE>labour ill bestowed.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Why, what's the matter?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON JOHN</SPEAKER>
+<LINE>I came hither to tell you; and, circumstances</LINE>
+<LINE>shortened, for she has been too long a talking of,</LINE>
+<LINE>the lady is disloyal.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>Who, Hero?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Even she; Leonato's Hero, your Hero, every man's Hero:</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>Disloyal?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON JOHN</SPEAKER>
+<LINE>The word is too good to paint out her wickedness; I</LINE>
+<LINE>could say she were worse: think you of a worse</LINE>
+<LINE>title, and I will fit her to it. Wonder not till</LINE>
+<LINE>further warrant: go but with me to-night, you shall</LINE>
+<LINE>see her chamber-window entered, even the night</LINE>
+<LINE>before her wedding-day: if you love her then,</LINE>
+<LINE>to-morrow wed her; but it would better fit your honour</LINE>
+<LINE>to change your mind.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>May this be so?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>I will not think it.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON JOHN</SPEAKER>
+<LINE>If you dare not trust that you see, confess not</LINE>
+<LINE>that you know: if you will follow me, I will show</LINE>
+<LINE>you enough; and when you have seen more and heard</LINE>
+<LINE>more, proceed accordingly.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>If I see any thing to-night why I should not marry</LINE>
+<LINE>her to-morrow in the congregation, where I should</LINE>
+<LINE>wed, there will I shame her.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>And, as I wooed for thee to obtain her, I will join</LINE>
+<LINE>with thee to disgrace her.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON JOHN</SPEAKER>
+<LINE>I will disparage her no farther till you are my</LINE>
+<LINE>witnesses: bear it coldly but till midnight, and</LINE>
+<LINE>let the issue show itself.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>O day untowardly turned!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>O mischief strangely thwarting!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON JOHN</SPEAKER>
+<LINE>O plague right well prevented! so will you say when</LINE>
+<LINE>you have seen the sequel.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Exeunt</STAGEDIR>
+</SCENE>
+
+<SCENE><TITLE>SCENE III. A street.</TITLE>
+<STAGEDIR>Enter DOGBERRY and VERGES with the Watch</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>DOGBERRY</SPEAKER>
+<LINE>Are you good men and true?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>VERGES</SPEAKER>
+<LINE>Yea, or else it were pity but they should suffer</LINE>
+<LINE>salvation, body and soul.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DOGBERRY</SPEAKER>
+<LINE>Nay, that were a punishment too good for them, if</LINE>
+<LINE>they should have any allegiance in them, being</LINE>
+<LINE>chosen for the prince's watch.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>VERGES</SPEAKER>
+<LINE>Well, give them their charge, neighbour Dogberry.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DOGBERRY</SPEAKER>
+<LINE>First, who think you the most desertless man to be</LINE>
+<LINE>constable?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>First Watchman</SPEAKER>
+<LINE>Hugh Otecake, sir, or George Seacole; for they can</LINE>
+<LINE>write and read.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DOGBERRY</SPEAKER>
+<LINE>Come hither, neighbour Seacole. God hath blessed</LINE>
+<LINE>you with a good name: to be a well-favoured man is</LINE>
+<LINE>the gift of fortune; but to write and read comes by nature.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Second Watchman</SPEAKER>
+<LINE>Both which, master constable,--</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DOGBERRY</SPEAKER>
+<LINE>You have: I knew it would be your answer. Well,</LINE>
+<LINE>for your favour, sir, why, give God thanks, and make</LINE>
+<LINE>no boast of it; and for your writing and reading,</LINE>
+<LINE>let that appear when there is no need of such</LINE>
+<LINE>vanity. You are thought here to be the most</LINE>
+<LINE>senseless and fit man for the constable of the</LINE>
+<LINE>watch; therefore bear you the lantern. This is your</LINE>
+<LINE>charge: you shall comprehend all vagrom men; you are</LINE>
+<LINE>to bid any man stand, in the prince's name.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Second Watchman</SPEAKER>
+<LINE>How if a' will not stand?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DOGBERRY</SPEAKER>
+<LINE>Why, then, take no note of him, but let him go; and</LINE>
+<LINE>presently call the rest of the watch together and</LINE>
+<LINE>thank God you are rid of a knave.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>VERGES</SPEAKER>
+<LINE>If he will not stand when he is bidden, he is none</LINE>
+<LINE>of the prince's subjects.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DOGBERRY</SPEAKER>
+<LINE>True, and they are to meddle with none but the</LINE>
+<LINE>prince's subjects. You shall also make no noise in</LINE>
+<LINE>the streets; for, for the watch to babble and to</LINE>
+<LINE>talk is most tolerable and not to be endured.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Watchman</SPEAKER>
+<LINE>We will rather sleep than talk: we know what</LINE>
+<LINE>belongs to a watch.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DOGBERRY</SPEAKER>
+<LINE>Why, you speak like an ancient and most quiet</LINE>
+<LINE>watchman; for I cannot see how sleeping should</LINE>
+<LINE>offend: only, have a care that your bills be not</LINE>
+<LINE>stolen. Well, you are to call at all the</LINE>
+<LINE>ale-houses, and bid those that are drunk get them to bed.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Watchman</SPEAKER>
+<LINE>How if they will not?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DOGBERRY</SPEAKER>
+<LINE>Why, then, let them alone till they are sober: if</LINE>
+<LINE>they make you not then the better answer, you may</LINE>
+<LINE>say they are not the men you took them for.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Watchman</SPEAKER>
+<LINE>Well, sir.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DOGBERRY</SPEAKER>
+<LINE>If you meet a thief, you may suspect him, by virtue</LINE>
+<LINE>of your office, to be no true man; and, for such</LINE>
+<LINE>kind of men, the less you meddle or make with them,</LINE>
+<LINE>why the more is for your honesty.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Watchman</SPEAKER>
+<LINE>If we know him to be a thief, shall we not lay</LINE>
+<LINE>hands on him?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DOGBERRY</SPEAKER>
+<LINE>Truly, by your office, you may; but I think they</LINE>
+<LINE>that touch pitch will be defiled: the most peaceable</LINE>
+<LINE>way for you, if you do take a thief, is to let him</LINE>
+<LINE>show himself what he is and steal out of your company.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>VERGES</SPEAKER>
+<LINE>You have been always called a merciful man, partner.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DOGBERRY</SPEAKER>
+<LINE>Truly, I would not hang a dog by my will, much more</LINE>
+<LINE>a man who hath any honesty in him.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>VERGES</SPEAKER>
+<LINE>If you hear a child cry in the night, you must call</LINE>
+<LINE>to the nurse and bid her still it.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Watchman</SPEAKER>
+<LINE>How if the nurse be asleep and will not hear us?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DOGBERRY</SPEAKER>
+<LINE>Why, then, depart in peace, and let the child wake</LINE>
+<LINE>her with crying; for the ewe that will not hear her</LINE>
+<LINE>lamb when it baes will never answer a calf when he bleats.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>VERGES</SPEAKER>
+<LINE>'Tis very true.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DOGBERRY</SPEAKER>
+<LINE>This is the end of the charge:--you, constable, are</LINE>
+<LINE>to present the prince's own person: if you meet the</LINE>
+<LINE>prince in the night, you may stay him.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>VERGES</SPEAKER>
+<LINE>Nay, by'r our lady, that I think a' cannot.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DOGBERRY</SPEAKER>
+<LINE>Five shillings to one on't, with any man that knows</LINE>
+<LINE>the statutes, he may stay him: marry, not without</LINE>
+<LINE>the prince be willing; for, indeed, the watch ought</LINE>
+<LINE>to offend no man; and it is an offence to stay a</LINE>
+<LINE>man against his will.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>VERGES</SPEAKER>
+<LINE>By'r lady, I think it be so.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DOGBERRY</SPEAKER>
+<LINE>Ha, ha, ha! Well, masters, good night: an there be</LINE>
+<LINE>any matter of weight chances, call up me: keep your</LINE>
+<LINE>fellows' counsels and your own; and good night.</LINE>
+<LINE>Come, neighbour.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Watchman</SPEAKER>
+<LINE>Well, masters, we hear our charge: let us go sit here</LINE>
+<LINE>upon the church-bench till two, and then all to bed.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DOGBERRY</SPEAKER>
+<LINE>One word more, honest neighbours. I pray you watch</LINE>
+<LINE>about Signior Leonato's door; for the wedding being</LINE>
+<LINE>there to-morrow, there is a great coil to-night.</LINE>
+<LINE>Adieu: be vigitant, I beseech you.</LINE>
+</SPEECH>
+
+<STAGEDIR>Exeunt DOGBERRY and VERGES</STAGEDIR>
+<STAGEDIR>Enter BORACHIO and CONRADE</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>BORACHIO</SPEAKER>
+<LINE>What Conrade!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Watchman</SPEAKER>
+<LINE><STAGEDIR>Aside</STAGEDIR> Peace! stir not.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BORACHIO</SPEAKER>
+<LINE>Conrade, I say!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CONRADE</SPEAKER>
+<LINE>Here, man; I am at thy elbow.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BORACHIO</SPEAKER>
+<LINE>Mass, and my elbow itched; I thought there would a</LINE>
+<LINE>scab follow.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CONRADE</SPEAKER>
+<LINE>I will owe thee an answer for that: and now forward</LINE>
+<LINE>with thy tale.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BORACHIO</SPEAKER>
+<LINE>Stand thee close, then, under this pent-house, for</LINE>
+<LINE>it drizzles rain; and I will, like a true drunkard,</LINE>
+<LINE>utter all to thee.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Watchman</SPEAKER>
+<LINE><STAGEDIR>Aside</STAGEDIR> Some treason, masters: yet stand close.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BORACHIO</SPEAKER>
+<LINE>Therefore know I have earned of Don John a thousand ducats.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CONRADE</SPEAKER>
+<LINE>Is it possible that any villany should be so dear?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BORACHIO</SPEAKER>
+<LINE>Thou shouldst rather ask if it were possible any</LINE>
+<LINE>villany should be so rich; for when rich villains</LINE>
+<LINE>have need of poor ones, poor ones may make what</LINE>
+<LINE>price they will.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CONRADE</SPEAKER>
+<LINE>I wonder at it.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BORACHIO</SPEAKER>
+<LINE>That shows thou art unconfirmed. Thou knowest that</LINE>
+<LINE>the fashion of a doublet, or a hat, or a cloak, is</LINE>
+<LINE>nothing to a man.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CONRADE</SPEAKER>
+<LINE>Yes, it is apparel.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BORACHIO</SPEAKER>
+<LINE>I mean, the fashion.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CONRADE</SPEAKER>
+<LINE>Yes, the fashion is the fashion.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BORACHIO</SPEAKER>
+<LINE>Tush! I may as well say the fool's the fool. But</LINE>
+<LINE>seest thou not what a deformed thief this fashion</LINE>
+<LINE>is?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Watchman</SPEAKER>
+<LINE><STAGEDIR>Aside</STAGEDIR> I know that Deformed; a' has been a vile</LINE>
+<LINE>thief this seven year; a' goes up and down like a</LINE>
+<LINE>gentleman: I remember his name.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BORACHIO</SPEAKER>
+<LINE>Didst thou not hear somebody?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CONRADE</SPEAKER>
+<LINE>No; 'twas the vane on the house.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BORACHIO</SPEAKER>
+<LINE>Seest thou not, I say, what a deformed thief this</LINE>
+<LINE>fashion is? how giddily a' turns about all the hot</LINE>
+<LINE>bloods between fourteen and five-and-thirty?</LINE>
+<LINE>sometimes fashioning them like Pharaoh's soldiers</LINE>
+<LINE>in the reeky painting, sometime like god Bel's</LINE>
+<LINE>priests in the old church-window, sometime like the</LINE>
+<LINE>shaven Hercules in the smirched worm-eaten tapestry,</LINE>
+<LINE>where his codpiece seems as massy as his club?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CONRADE</SPEAKER>
+<LINE>All this I see; and I see that the fashion wears</LINE>
+<LINE>out more apparel than the man. But art not thou</LINE>
+<LINE>thyself giddy with the fashion too, that thou hast</LINE>
+<LINE>shifted out of thy tale into telling me of the fashion?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BORACHIO</SPEAKER>
+<LINE>Not so, neither: but know that I have to-night</LINE>
+<LINE>wooed Margaret, the Lady Hero's gentlewoman, by the</LINE>
+<LINE>name of Hero: she leans me out at her mistress'</LINE>
+<LINE>chamber-window, bids me a thousand times good</LINE>
+<LINE>night,--I tell this tale vilely:--I should first</LINE>
+<LINE>tell thee how the prince, Claudio and my master,</LINE>
+<LINE>planted and placed and possessed by my master Don</LINE>
+<LINE>John, saw afar off in the orchard this amiable encounter.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CONRADE</SPEAKER>
+<LINE>And thought they Margaret was Hero?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BORACHIO</SPEAKER>
+<LINE>Two of them did, the prince and Claudio; but the</LINE>
+<LINE>devil my master knew she was Margaret; and partly</LINE>
+<LINE>by his oaths, which first possessed them, partly by</LINE>
+<LINE>the dark night, which did deceive them, but chiefly</LINE>
+<LINE>by my villany, which did confirm any slander that</LINE>
+<LINE>Don John had made, away went Claudio enraged; swore</LINE>
+<LINE>he would meet her, as he was appointed, next morning</LINE>
+<LINE>at the temple, and there, before the whole</LINE>
+<LINE>congregation, shame her with what he saw o'er night</LINE>
+<LINE>and send her home again without a husband.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>First Watchman</SPEAKER>
+<LINE>We charge you, in the prince's name, stand!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Second Watchman</SPEAKER>
+<LINE>Call up the right master constable. We have here</LINE>
+<LINE>recovered the most dangerous piece of lechery that</LINE>
+<LINE>ever was known in the commonwealth.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>First Watchman</SPEAKER>
+<LINE>And one Deformed is one of them: I know him; a'</LINE>
+<LINE>wears a lock.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CONRADE</SPEAKER>
+<LINE>Masters, masters,--</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Second Watchman</SPEAKER>
+<LINE>You'll be made bring Deformed forth, I warrant you.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CONRADE</SPEAKER>
+<LINE>Masters,--</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>First Watchman</SPEAKER>
+<LINE>Never speak: we charge you let us obey you to go with us.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BORACHIO</SPEAKER>
+<LINE>We are like to prove a goodly commodity, being taken</LINE>
+<LINE>up of these men's bills.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CONRADE</SPEAKER>
+<LINE>A commodity in question, I warrant you. Come, we'll obey you.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Exeunt</STAGEDIR>
+</SCENE>
+
+<SCENE><TITLE>SCENE IV. HERO's apartment.</TITLE>
+<STAGEDIR>Enter HERO, MARGARET, and URSULA</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>HERO</SPEAKER>
+<LINE>Good Ursula, wake my cousin Beatrice, and desire</LINE>
+<LINE>her to rise.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>URSULA</SPEAKER>
+<LINE>I will, lady.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERO</SPEAKER>
+<LINE>And bid her come hither.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>URSULA</SPEAKER>
+<LINE>Well.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Exit</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>MARGARET</SPEAKER>
+<LINE>Troth, I think your other rabato were better.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERO</SPEAKER>
+<LINE>No, pray thee, good Meg, I'll wear this.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>MARGARET</SPEAKER>
+<LINE>By my troth, 's not so good; and I warrant your</LINE>
+<LINE>cousin will say so.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERO</SPEAKER>
+<LINE>My cousin's a fool, and thou art another: I'll wear</LINE>
+<LINE>none but this.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>MARGARET</SPEAKER>
+<LINE>I like the new tire within excellently, if the hair</LINE>
+<LINE>were a thought browner; and your gown's a most rare</LINE>
+<LINE>fashion, i' faith. I saw the Duchess of Milan's</LINE>
+<LINE>gown that they praise so.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERO</SPEAKER>
+<LINE>O, that exceeds, they say.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>MARGARET</SPEAKER>
+<LINE>By my troth, 's but a night-gown in respect of</LINE>
+<LINE>yours: cloth o' gold, and cuts, and laced with</LINE>
+<LINE>silver, set with pearls, down sleeves, side sleeves,</LINE>
+<LINE>and skirts, round underborne with a bluish tinsel:</LINE>
+<LINE>but for a fine, quaint, graceful and excellent</LINE>
+<LINE>fashion, yours is worth ten on 't.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERO</SPEAKER>
+<LINE>God give me joy to wear it! for my heart is</LINE>
+<LINE>exceeding heavy.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>MARGARET</SPEAKER>
+<LINE>'Twill be heavier soon by the weight of a man.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERO</SPEAKER>
+<LINE>Fie upon thee! art not ashamed?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>MARGARET</SPEAKER>
+<LINE>Of what, lady? of speaking honourably? Is not</LINE>
+<LINE>marriage honourable in a beggar? Is not your lord</LINE>
+<LINE>honourable without marriage? I think you would have</LINE>
+<LINE>me say, 'saving your reverence, a husband:' and bad</LINE>
+<LINE>thinking do not wrest true speaking, I'll offend</LINE>
+<LINE>nobody: is there any harm in 'the heavier for a</LINE>
+<LINE>husband'? None, I think, and it be the right husband</LINE>
+<LINE>and the right wife; otherwise 'tis light, and not</LINE>
+<LINE>heavy: ask my Lady Beatrice else; here she comes.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Enter BEATRICE</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>HERO</SPEAKER>
+<LINE>Good morrow, coz.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>Good morrow, sweet Hero.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERO</SPEAKER>
+<LINE>Why how now? do you speak in the sick tune?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>I am out of all other tune, methinks.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>MARGARET</SPEAKER>
+<LINE>Clap's into 'Light o' love;' that goes without a</LINE>
+<LINE>burden: do you sing it, and I'll dance it.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>Ye light o' love, with your heels! then, if your</LINE>
+<LINE>husband have stables enough, you'll see he shall</LINE>
+<LINE>lack no barns.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>MARGARET</SPEAKER>
+<LINE>O illegitimate construction! I scorn that with my heels.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>'Tis almost five o'clock, cousin; tis time you were</LINE>
+<LINE>ready. By my troth, I am exceeding ill: heigh-ho!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>MARGARET</SPEAKER>
+<LINE>For a hawk, a horse, or a husband?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>For the letter that begins them all, H.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>MARGARET</SPEAKER>
+<LINE>Well, and you be not turned Turk, there's no more</LINE>
+<LINE>sailing by the star.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>What means the fool, trow?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>MARGARET</SPEAKER>
+<LINE>Nothing I; but God send every one their heart's desire!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERO</SPEAKER>
+<LINE>These gloves the count sent me; they are an</LINE>
+<LINE>excellent perfume.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>I am stuffed, cousin; I cannot smell.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>MARGARET</SPEAKER>
+<LINE>A maid, and stuffed! there's goodly catching of cold.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>O, God help me! God help me! how long have you</LINE>
+<LINE>professed apprehension?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>MARGARET</SPEAKER>
+<LINE>Even since you left it. Doth not my wit become me rarely?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>It is not seen enough, you should wear it in your</LINE>
+<LINE>cap. By my troth, I am sick.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>MARGARET</SPEAKER>
+<LINE>Get you some of this distilled Carduus Benedictus,</LINE>
+<LINE>and lay it to your heart: it is the only thing for a qualm.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERO</SPEAKER>
+<LINE>There thou prickest her with a thistle.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>Benedictus! why Benedictus? you have some moral in</LINE>
+<LINE>this Benedictus.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>MARGARET</SPEAKER>
+<LINE>Moral! no, by my troth, I have no moral meaning; I</LINE>
+<LINE>meant, plain holy-thistle. You may think perchance</LINE>
+<LINE>that I think you are in love: nay, by'r lady, I am</LINE>
+<LINE>not such a fool to think what I list, nor I list</LINE>
+<LINE>not to think what I can, nor indeed I cannot think,</LINE>
+<LINE>if I would think my heart out of thinking, that you</LINE>
+<LINE>are in love or that you will be in love or that you</LINE>
+<LINE>can be in love. Yet Benedick was such another, and</LINE>
+<LINE>now is he become a man: he swore he would never</LINE>
+<LINE>marry, and yet now, in despite of his heart, he eats</LINE>
+<LINE>his meat without grudging: and how you may be</LINE>
+<LINE>converted I know not, but methinks you look with</LINE>
+<LINE>your eyes as other women do.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>What pace is this that thy tongue keeps?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>MARGARET</SPEAKER>
+<LINE>Not a false gallop.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Re-enter URSULA</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>URSULA</SPEAKER>
+<LINE>Madam, withdraw: the prince, the count, Signior</LINE>
+<LINE>Benedick, Don John, and all the gallants of the</LINE>
+<LINE>town, are come to fetch you to church.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERO</SPEAKER>
+<LINE>Help to dress me, good coz, good Meg, good Ursula.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Exeunt</STAGEDIR>
+</SCENE>
+
+<SCENE><TITLE>SCENE V. Another room in LEONATO'S house.</TITLE>
+<STAGEDIR>Enter LEONATO, with DOGBERRY and VERGES</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>What would you with me, honest neighbour?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DOGBERRY</SPEAKER>
+<LINE>Marry, sir, I would have some confidence with you</LINE>
+<LINE>that decerns you nearly.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>Brief, I pray you; for you see it is a busy time with me.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DOGBERRY</SPEAKER>
+<LINE>Marry, this it is, sir.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>VERGES</SPEAKER>
+<LINE>Yes, in truth it is, sir.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>What is it, my good friends?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DOGBERRY</SPEAKER>
+<LINE>Goodman Verges, sir, speaks a little off the</LINE>
+<LINE>matter: an old man, sir, and his wits are not so</LINE>
+<LINE>blunt as, God help, I would desire they were; but,</LINE>
+<LINE>in faith, honest as the skin between his brows.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>VERGES</SPEAKER>
+<LINE>Yes, I thank God I am as honest as any man living</LINE>
+<LINE>that is an old man and no honester than I.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DOGBERRY</SPEAKER>
+<LINE>Comparisons are odorous: palabras, neighbour Verges.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>Neighbours, you are tedious.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DOGBERRY</SPEAKER>
+<LINE>It pleases your worship to say so, but we are the</LINE>
+<LINE>poor duke's officers; but truly, for mine own part,</LINE>
+<LINE>if I were as tedious as a king, I could find it in</LINE>
+<LINE>my heart to bestow it all of your worship.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>All thy tediousness on me, ah?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DOGBERRY</SPEAKER>
+<LINE>Yea, an 'twere a thousand pound more than 'tis; for</LINE>
+<LINE>I hear as good exclamation on your worship as of any</LINE>
+<LINE>man in the city; and though I be but a poor man, I</LINE>
+<LINE>am glad to hear it.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>VERGES</SPEAKER>
+<LINE>And so am I.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>I would fain know what you have to say.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>VERGES</SPEAKER>
+<LINE>Marry, sir, our watch to-night, excepting your</LINE>
+<LINE>worship's presence, ha' ta'en a couple of as arrant</LINE>
+<LINE>knaves as any in Messina.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DOGBERRY</SPEAKER>
+<LINE>A good old man, sir; he will be talking: as they</LINE>
+<LINE>say, when the age is in, the wit is out: God help</LINE>
+<LINE>us! it is a world to see. Well said, i' faith,</LINE>
+<LINE>neighbour Verges: well, God's a good man; an two men</LINE>
+<LINE>ride of a horse, one must ride behind. An honest</LINE>
+<LINE>soul, i' faith, sir; by my troth he is, as ever</LINE>
+<LINE>broke bread; but God is to be worshipped; all men</LINE>
+<LINE>are not alike; alas, good neighbour!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>Indeed, neighbour, he comes too short of you.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DOGBERRY</SPEAKER>
+<LINE>Gifts that God gives.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>I must leave you.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DOGBERRY</SPEAKER>
+<LINE>One word, sir: our watch, sir, have indeed</LINE>
+<LINE>comprehended two aspicious persons, and we would</LINE>
+<LINE>have them this morning examined before your worship.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>Take their examination yourself and bring it me: I</LINE>
+<LINE>am now in great haste, as it may appear unto you.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DOGBERRY</SPEAKER>
+<LINE>It shall be suffigance.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>Drink some wine ere you go: fare you well.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Enter a Messenger</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>Messenger</SPEAKER>
+<LINE>My lord, they stay for you to give your daughter to</LINE>
+<LINE>her husband.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>I'll wait upon them: I am ready.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Exeunt LEONATO and Messenger</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>DOGBERRY</SPEAKER>
+<LINE>Go, good partner, go, get you to Francis Seacole;</LINE>
+<LINE>bid him bring his pen and inkhorn to the gaol: we</LINE>
+<LINE>are now to examination these men.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>VERGES</SPEAKER>
+<LINE>And we must do it wisely.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DOGBERRY</SPEAKER>
+<LINE>We will spare for no wit, I warrant you; here's</LINE>
+<LINE>that shall drive some of them to a non-come: only</LINE>
+<LINE>get the learned writer to set down our</LINE>
+<LINE>excommunication and meet me at the gaol.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Exeunt</STAGEDIR>
+</SCENE>
+
+</ACT>
+
+<ACT><TITLE>ACT IV</TITLE>
+
+<SCENE><TITLE>SCENE I. A church.</TITLE>
+<STAGEDIR>Enter DON PEDRO, DON JOHN, LEONATO, FRIAR FRANCIS,
+CLAUDIO, BENEDICK, HERO, BEATRICE, and Attendants</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>Come, Friar Francis, be brief; only to the plain</LINE>
+<LINE>form of marriage, and you shall recount their</LINE>
+<LINE>particular duties afterwards.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>FRIAR FRANCIS</SPEAKER>
+<LINE>You come hither, my lord, to marry this lady.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>No.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>To be married to her: friar, you come to marry her.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>FRIAR FRANCIS</SPEAKER>
+<LINE>Lady, you come hither to be married to this count.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERO</SPEAKER>
+<LINE>I do.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>FRIAR FRANCIS</SPEAKER>
+<LINE>If either of you know any inward impediment why you</LINE>
+<LINE>should not be conjoined, charge you, on your souls,</LINE>
+<LINE>to utter it.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>Know you any, Hero?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERO</SPEAKER>
+<LINE>None, my lord.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>FRIAR FRANCIS</SPEAKER>
+<LINE>Know you any, count?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>I dare make his answer, none.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>O, what men dare do! what men may do! what men daily</LINE>
+<LINE>do, not knowing what they do!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>How now! interjections? Why, then, some be of</LINE>
+<LINE>laughing, as, ah, ha, he!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>Stand thee by, friar. Father, by your leave:</LINE>
+<LINE>Will you with free and unconstrained soul</LINE>
+<LINE>Give me this maid, your daughter?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>As freely, son, as God did give her me.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>And what have I to give you back, whose worth</LINE>
+<LINE>May counterpoise this rich and precious gift?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Nothing, unless you render her again.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>Sweet prince, you learn me noble thankfulness.</LINE>
+<LINE>There, Leonato, take her back again:</LINE>
+<LINE>Give not this rotten orange to your friend;</LINE>
+<LINE>She's but the sign and semblance of her honour.</LINE>
+<LINE>Behold how like a maid she blushes here!</LINE>
+<LINE>O, what authority and show of truth</LINE>
+<LINE>Can cunning sin cover itself withal!</LINE>
+<LINE>Comes not that blood as modest evidence</LINE>
+<LINE>To witness simple virtue? Would you not swear,</LINE>
+<LINE>All you that see her, that she were a maid,</LINE>
+<LINE>By these exterior shows? But she is none:</LINE>
+<LINE>She knows the heat of a luxurious bed;</LINE>
+<LINE>Her blush is guiltiness, not modesty.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>What do you mean, my lord?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>Not to be married,</LINE>
+<LINE>Not to knit my soul to an approved wanton.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>Dear my lord, if you, in your own proof,</LINE>
+<LINE>Have vanquish'd the resistance of her youth,</LINE>
+<LINE>And made defeat of her virginity,--</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>I know what you would say: if I have known her,</LINE>
+<LINE>You will say she did embrace me as a husband,</LINE>
+<LINE>And so extenuate the 'forehand sin:</LINE>
+<LINE>No, Leonato,</LINE>
+<LINE>I never tempted her with word too large;</LINE>
+<LINE>But, as a brother to his sister, show'd</LINE>
+<LINE>Bashful sincerity and comely love.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERO</SPEAKER>
+<LINE>And seem'd I ever otherwise to you?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>Out on thee! Seeming! I will write against it:</LINE>
+<LINE>You seem to me as Dian in her orb,</LINE>
+<LINE>As chaste as is the bud ere it be blown;</LINE>
+<LINE>But you are more intemperate in your blood</LINE>
+<LINE>Than Venus, or those pamper'd animals</LINE>
+<LINE>That rage in savage sensuality.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERO</SPEAKER>
+<LINE>Is my lord well, that he doth speak so wide?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>Sweet prince, why speak not you?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>What should I speak?</LINE>
+<LINE>I stand dishonour'd, that have gone about</LINE>
+<LINE>To link my dear friend to a common stale.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>Are these things spoken, or do I but dream?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON JOHN</SPEAKER>
+<LINE>Sir, they are spoken, and these things are true.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>This looks not like a nuptial.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERO</SPEAKER>
+<LINE>True! O God!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>Leonato, stand I here?</LINE>
+<LINE>Is this the prince? is this the prince's brother?</LINE>
+<LINE>Is this face Hero's? are our eyes our own?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>All this is so: but what of this, my lord?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>Let me but move one question to your daughter;</LINE>
+<LINE>And, by that fatherly and kindly power</LINE>
+<LINE>That you have in her, bid her answer truly.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>I charge thee do so, as thou art my child.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERO</SPEAKER>
+<LINE>O, God defend me! how am I beset!</LINE>
+<LINE>What kind of catechising call you this?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>To make you answer truly to your name.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERO</SPEAKER>
+<LINE>Is it not Hero? Who can blot that name</LINE>
+<LINE>With any just reproach?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>Marry, that can Hero;</LINE>
+<LINE>Hero itself can blot out Hero's virtue.</LINE>
+<LINE>What man was he talk'd with you yesternight</LINE>
+<LINE>Out at your window betwixt twelve and one?</LINE>
+<LINE>Now, if you are a maid, answer to this.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERO</SPEAKER>
+<LINE>I talk'd with no man at that hour, my lord.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Why, then are you no maiden. Leonato,</LINE>
+<LINE>I am sorry you must hear: upon mine honour,</LINE>
+<LINE>Myself, my brother and this grieved count</LINE>
+<LINE>Did see her, hear her, at that hour last night</LINE>
+<LINE>Talk with a ruffian at her chamber-window</LINE>
+<LINE>Who hath indeed, most like a liberal villain,</LINE>
+<LINE>Confess'd the vile encounters they have had</LINE>
+<LINE>A thousand times in secret.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON JOHN</SPEAKER>
+<LINE>Fie, fie! they are not to be named, my lord,</LINE>
+<LINE>Not to be spoke of;</LINE>
+<LINE>There is not chastity enough in language</LINE>
+<LINE>Without offence to utter them. Thus, pretty lady,</LINE>
+<LINE>I am sorry for thy much misgovernment.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>O Hero, what a Hero hadst thou been,</LINE>
+<LINE>If half thy outward graces had been placed</LINE>
+<LINE>About thy thoughts and counsels of thy heart!</LINE>
+<LINE>But fare thee well, most foul, most fair! farewell,</LINE>
+<LINE>Thou pure impiety and impious purity!</LINE>
+<LINE>For thee I'll lock up all the gates of love,</LINE>
+<LINE>And on my eyelids shall conjecture hang,</LINE>
+<LINE>To turn all beauty into thoughts of harm,</LINE>
+<LINE>And never shall it more be gracious.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>Hath no man's dagger here a point for me?</LINE>
+</SPEECH>
+
+
+<STAGEDIR>HERO swoons</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>Why, how now, cousin! wherefore sink you down?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON JOHN</SPEAKER>
+<LINE>Come, let us go. These things, come thus to light,</LINE>
+<LINE>Smother her spirits up.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Exeunt DON PEDRO, DON JOHN, and CLAUDIO</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>How doth the lady?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>Dead, I think. Help, uncle!</LINE>
+<LINE>Hero! why, Hero! Uncle! Signior Benedick! Friar!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>O Fate! take not away thy heavy hand.</LINE>
+<LINE>Death is the fairest cover for her shame</LINE>
+<LINE>That may be wish'd for.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>How now, cousin Hero!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>FRIAR FRANCIS</SPEAKER>
+<LINE>Have comfort, lady.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>Dost thou look up?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>FRIAR FRANCIS</SPEAKER>
+<LINE>Yea, wherefore should she not?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>Wherefore! Why, doth not every earthly thing</LINE>
+<LINE>Cry shame upon her? Could she here deny</LINE>
+<LINE>The story that is printed in her blood?</LINE>
+<LINE>Do not live, Hero; do not ope thine eyes:</LINE>
+<LINE>For, did I think thou wouldst not quickly die,</LINE>
+<LINE>Thought I thy spirits were stronger than thy shames,</LINE>
+<LINE>Myself would, on the rearward of reproaches,</LINE>
+<LINE>Strike at thy life. Grieved I, I had but one?</LINE>
+<LINE>Chid I for that at frugal nature's frame?</LINE>
+<LINE>O, one too much by thee! Why had I one?</LINE>
+<LINE>Why ever wast thou lovely in my eyes?</LINE>
+<LINE>Why had I not with charitable hand</LINE>
+<LINE>Took up a beggar's issue at my gates,</LINE>
+<LINE>Who smirch'd thus and mired with infamy,</LINE>
+<LINE>I might have said 'No part of it is mine;</LINE>
+<LINE>This shame derives itself from unknown loins'?</LINE>
+<LINE>But mine and mine I loved and mine I praised</LINE>
+<LINE>And mine that I was proud on, mine so much</LINE>
+<LINE>That I myself was to myself not mine,</LINE>
+<LINE>Valuing of her,--why, she, O, she is fallen</LINE>
+<LINE>Into a pit of ink, that the wide sea</LINE>
+<LINE>Hath drops too few to wash her clean again</LINE>
+<LINE>And salt too little which may season give</LINE>
+<LINE>To her foul-tainted flesh!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Sir, sir, be patient.</LINE>
+<LINE>For my part, I am so attired in wonder,</LINE>
+<LINE>I know not what to say.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>O, on my soul, my cousin is belied!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Lady, were you her bedfellow last night?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>No, truly not; although, until last night,</LINE>
+<LINE>I have this twelvemonth been her bedfellow.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>Confirm'd, confirm'd! O, that is stronger made</LINE>
+<LINE>Which was before barr'd up with ribs of iron!</LINE>
+<LINE>Would the two princes lie, and Claudio lie,</LINE>
+<LINE>Who loved her so, that, speaking of her foulness,</LINE>
+<LINE>Wash'd it with tears? Hence from her! let her die.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>FRIAR FRANCIS</SPEAKER>
+<LINE>Hear me a little; for I have only been</LINE>
+<LINE>Silent so long and given way unto</LINE>
+<LINE>This course of fortune</LINE>
+<LINE>By noting of the lady. I have mark'd</LINE>
+<LINE>A thousand blushing apparitions</LINE>
+<LINE>To start into her face, a thousand innocent shames</LINE>
+<LINE>In angel whiteness beat away those blushes;</LINE>
+<LINE>And in her eye there hath appear'd a fire,</LINE>
+<LINE>To burn the errors that these princes hold</LINE>
+<LINE>Against her maiden truth. Call me a fool;</LINE>
+<LINE>Trust not my reading nor my observations,</LINE>
+<LINE>Which with experimental seal doth warrant</LINE>
+<LINE>The tenor of my book; trust not my age,</LINE>
+<LINE>My reverence, calling, nor divinity,</LINE>
+<LINE>If this sweet lady lie not guiltless here</LINE>
+<LINE>Under some biting error.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>Friar, it cannot be.</LINE>
+<LINE>Thou seest that all the grace that she hath left</LINE>
+<LINE>Is that she will not add to her damnation</LINE>
+<LINE>A sin of perjury; she not denies it:</LINE>
+<LINE>Why seek'st thou then to cover with excuse</LINE>
+<LINE>That which appears in proper nakedness?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>FRIAR FRANCIS</SPEAKER>
+<LINE>Lady, what man is he you are accused of?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERO</SPEAKER>
+<LINE>They know that do accuse me; I know none:</LINE>
+<LINE>If I know more of any man alive</LINE>
+<LINE>Than that which maiden modesty doth warrant,</LINE>
+<LINE>Let all my sins lack mercy! O my father,</LINE>
+<LINE>Prove you that any man with me conversed</LINE>
+<LINE>At hours unmeet, or that I yesternight</LINE>
+<LINE>Maintain'd the change of words with any creature,</LINE>
+<LINE>Refuse me, hate me, torture me to death!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>FRIAR FRANCIS</SPEAKER>
+<LINE>There is some strange misprision in the princes.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Two of them have the very bent of honour;</LINE>
+<LINE>And if their wisdoms be misled in this,</LINE>
+<LINE>The practise of it lives in John the bastard,</LINE>
+<LINE>Whose spirits toil in frame of villanies.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>I know not. If they speak but truth of her,</LINE>
+<LINE>These hands shall tear her; if they wrong her honour,</LINE>
+<LINE>The proudest of them shall well hear of it.</LINE>
+<LINE>Time hath not yet so dried this blood of mine,</LINE>
+<LINE>Nor age so eat up my invention,</LINE>
+<LINE>Nor fortune made such havoc of my means,</LINE>
+<LINE>Nor my bad life reft me so much of friends,</LINE>
+<LINE>But they shall find, awaked in such a kind,</LINE>
+<LINE>Both strength of limb and policy of mind,</LINE>
+<LINE>Ability in means and choice of friends,</LINE>
+<LINE>To quit me of them throughly.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>FRIAR FRANCIS</SPEAKER>
+<LINE>Pause awhile,</LINE>
+<LINE>And let my counsel sway you in this case.</LINE>
+<LINE>Your daughter here the princes left for dead:</LINE>
+<LINE>Let her awhile be secretly kept in,</LINE>
+<LINE>And publish it that she is dead indeed;</LINE>
+<LINE>Maintain a mourning ostentation</LINE>
+<LINE>And on your family's old monument</LINE>
+<LINE>Hang mournful epitaphs and do all rites</LINE>
+<LINE>That appertain unto a burial.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>What shall become of this? what will this do?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>FRIAR FRANCIS</SPEAKER>
+<LINE>Marry, this well carried shall on her behalf</LINE>
+<LINE>Change slander to remorse; that is some good:</LINE>
+<LINE>But not for that dream I on this strange course,</LINE>
+<LINE>But on this travail look for greater birth.</LINE>
+<LINE>She dying, as it must so be maintain'd,</LINE>
+<LINE>Upon the instant that she was accused,</LINE>
+<LINE>Shall be lamented, pitied and excused</LINE>
+<LINE>Of every hearer: for it so falls out</LINE>
+<LINE>That what we have we prize not to the worth</LINE>
+<LINE>Whiles we enjoy it, but being lack'd and lost,</LINE>
+<LINE>Why, then we rack the value, then we find</LINE>
+<LINE>The virtue that possession would not show us</LINE>
+<LINE>Whiles it was ours. So will it fare with Claudio:</LINE>
+<LINE>When he shall hear she died upon his words,</LINE>
+<LINE>The idea of her life shall sweetly creep</LINE>
+<LINE>Into his study of imagination,</LINE>
+<LINE>And every lovely organ of her life</LINE>
+<LINE>Shall come apparell'd in more precious habit,</LINE>
+<LINE>More moving-delicate and full of life,</LINE>
+<LINE>Into the eye and prospect of his soul,</LINE>
+<LINE>Than when she lived indeed; then shall he mourn,</LINE>
+<LINE>If ever love had interest in his liver,</LINE>
+<LINE>And wish he had not so accused her,</LINE>
+<LINE>No, though he thought his accusation true.</LINE>
+<LINE>Let this be so, and doubt not but success</LINE>
+<LINE>Will fashion the event in better shape</LINE>
+<LINE>Than I can lay it down in likelihood.</LINE>
+<LINE>But if all aim but this be levell'd false,</LINE>
+<LINE>The supposition of the lady's death</LINE>
+<LINE>Will quench the wonder of her infamy:</LINE>
+<LINE>And if it sort not well, you may conceal her,</LINE>
+<LINE>As best befits her wounded reputation,</LINE>
+<LINE>In some reclusive and religious life,</LINE>
+<LINE>Out of all eyes, tongues, minds and injuries.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Signior Leonato, let the friar advise you:</LINE>
+<LINE>And though you know my inwardness and love</LINE>
+<LINE>Is very much unto the prince and Claudio,</LINE>
+<LINE>Yet, by mine honour, I will deal in this</LINE>
+<LINE>As secretly and justly as your soul</LINE>
+<LINE>Should with your body.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>Being that I flow in grief,</LINE>
+<LINE>The smallest twine may lead me.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>FRIAR FRANCIS</SPEAKER>
+<LINE>'Tis well consented: presently away;</LINE>
+<LINE>For to strange sores strangely they strain the cure.</LINE>
+<LINE>Come, lady, die to live: this wedding-day</LINE>
+<LINE>Perhaps is but prolong'd: have patience and endure.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Exeunt all but BENEDICK and BEATRICE</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Lady Beatrice, have you wept all this while?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>Yea, and I will weep a while longer.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>I will not desire that.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>You have no reason; I do it freely.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Surely I do believe your fair cousin is wronged.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>Ah, how much might the man deserve of me that would right her!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Is there any way to show such friendship?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>A very even way, but no such friend.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>May a man do it?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>It is a man's office, but not yours.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>I do love nothing in the world so well as you: is</LINE>
+<LINE>not that strange?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>As strange as the thing I know not. It were as</LINE>
+<LINE>possible for me to say I loved nothing so well as</LINE>
+<LINE>you: but believe me not; and yet I lie not; I</LINE>
+<LINE>confess nothing, nor I deny nothing. I am sorry for my cousin.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>By my sword, Beatrice, thou lovest me.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>Do not swear, and eat it.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>I will swear by it that you love me; and I will make</LINE>
+<LINE>him eat it that says I love not you.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>Will you not eat your word?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>With no sauce that can be devised to it. I protest</LINE>
+<LINE>I love thee.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>Why, then, God forgive me!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>What offence, sweet Beatrice?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>You have stayed me in a happy hour: I was about to</LINE>
+<LINE>protest I loved you.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>And do it with all thy heart.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>I love you with so much of my heart that none is</LINE>
+<LINE>left to protest.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Come, bid me do any thing for thee.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>Kill Claudio.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Ha! not for the wide world.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>You kill me to deny it. Farewell.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Tarry, sweet Beatrice.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>I am gone, though I am here: there is no love in</LINE>
+<LINE>you: nay, I pray you, let me go.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Beatrice,--</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>In faith, I will go.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>We'll be friends first.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>You dare easier be friends with me than fight with mine enemy.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Is Claudio thine enemy?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>Is he not approved in the height a villain, that</LINE>
+<LINE>hath slandered, scorned, dishonoured my kinswoman? O</LINE>
+<LINE>that I were a man! What, bear her in hand until they</LINE>
+<LINE>come to take hands; and then, with public</LINE>
+<LINE>accusation, uncovered slander, unmitigated rancour,</LINE>
+<LINE>--O God, that I were a man! I would eat his heart</LINE>
+<LINE>in the market-place.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Hear me, Beatrice,--</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>Talk with a man out at a window! A proper saying!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Nay, but, Beatrice,--</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>Sweet Hero! She is wronged, she is slandered, she is undone.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Beat--</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>Princes and counties! Surely, a princely testimony,</LINE>
+<LINE>a goodly count, Count Comfect; a sweet gallant,</LINE>
+<LINE>surely! O that I were a man for his sake! or that I</LINE>
+<LINE>had any friend would be a man for my sake! But</LINE>
+<LINE>manhood is melted into courtesies, valour into</LINE>
+<LINE>compliment, and men are only turned into tongue, and</LINE>
+<LINE>trim ones too: he is now as valiant as Hercules</LINE>
+<LINE>that only tells a lie and swears it. I cannot be a</LINE>
+<LINE>man with wishing, therefore I will die a woman with grieving.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Tarry, good Beatrice. By this hand, I love thee.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>Use it for my love some other way than swearing by it.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Think you in your soul the Count Claudio hath wronged Hero?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>Yea, as sure as I have a thought or a soul.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Enough, I am engaged; I will challenge him. I will</LINE>
+<LINE>kiss your hand, and so I leave you. By this hand,</LINE>
+<LINE>Claudio shall render me a dear account. As you</LINE>
+<LINE>hear of me, so think of me. Go, comfort your</LINE>
+<LINE>cousin: I must say she is dead: and so, farewell.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Exeunt</STAGEDIR>
+</SCENE>
+
+<SCENE><TITLE>SCENE II. A prison.</TITLE>
+<STAGEDIR>Enter DOGBERRY, VERGES, and Sexton, in gowns; and
+the Watch, with CONRADE and BORACHIO</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>DOGBERRY</SPEAKER>
+<LINE>Is our whole dissembly appeared?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>VERGES</SPEAKER>
+<LINE>O, a stool and a cushion for the sexton.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Sexton</SPEAKER>
+<LINE>Which be the malefactors?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DOGBERRY</SPEAKER>
+<LINE>Marry, that am I and my partner.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>VERGES</SPEAKER>
+<LINE>Nay, that's certain; we have the exhibition to examine.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Sexton</SPEAKER>
+<LINE>But which are the offenders that are to be</LINE>
+<LINE>examined? let them come before master constable.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DOGBERRY</SPEAKER>
+<LINE>Yea, marry, let them come before me. What is your</LINE>
+<LINE>name, friend?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BORACHIO</SPEAKER>
+<LINE>Borachio.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DOGBERRY</SPEAKER>
+<LINE>Pray, write down, Borachio. Yours, sirrah?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CONRADE</SPEAKER>
+<LINE>I am a gentleman, sir, and my name is Conrade.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DOGBERRY</SPEAKER>
+<LINE>Write down, master gentleman Conrade. Masters, do</LINE>
+<LINE>you serve God?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CONRADE</SPEAKER>
+<SPEAKER>BORACHIO</SPEAKER>
+<LINE>Yea, sir, we hope.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DOGBERRY</SPEAKER>
+<LINE>Write down, that they hope they serve God: and</LINE>
+<LINE>write God first; for God defend but God should go</LINE>
+<LINE>before such villains! Masters, it is proved already</LINE>
+<LINE>that you are little better than false knaves; and it</LINE>
+<LINE>will go near to be thought so shortly. How answer</LINE>
+<LINE>you for yourselves?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CONRADE</SPEAKER>
+<LINE>Marry, sir, we say we are none.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DOGBERRY</SPEAKER>
+<LINE>A marvellous witty fellow, I assure you: but I</LINE>
+<LINE>will go about with him. Come you hither, sirrah; a</LINE>
+<LINE>word in your ear: sir, I say to you, it is thought</LINE>
+<LINE>you are false knaves.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BORACHIO</SPEAKER>
+<LINE>Sir, I say to you we are none.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DOGBERRY</SPEAKER>
+<LINE>Well, stand aside. 'Fore God, they are both in a</LINE>
+<LINE>tale. Have you writ down, that they are none?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Sexton</SPEAKER>
+<LINE>Master constable, you go not the way to examine:</LINE>
+<LINE>you must call forth the watch that are their accusers.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DOGBERRY</SPEAKER>
+<LINE>Yea, marry, that's the eftest way. Let the watch</LINE>
+<LINE>come forth. Masters, I charge you, in the prince's</LINE>
+<LINE>name, accuse these men.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>First Watchman</SPEAKER>
+<LINE>This man said, sir, that Don John, the prince's</LINE>
+<LINE>brother, was a villain.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DOGBERRY</SPEAKER>
+<LINE>Write down Prince John a villain. Why, this is flat</LINE>
+<LINE>perjury, to call a prince's brother villain.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BORACHIO</SPEAKER>
+<LINE>Master constable,--</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DOGBERRY</SPEAKER>
+<LINE>Pray thee, fellow, peace: I do not like thy look,</LINE>
+<LINE>I promise thee.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Sexton</SPEAKER>
+<LINE>What heard you him say else?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Second Watchman</SPEAKER>
+<LINE>Marry, that he had received a thousand ducats of</LINE>
+<LINE>Don John for accusing the Lady Hero wrongfully.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DOGBERRY</SPEAKER>
+<LINE>Flat burglary as ever was committed.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>VERGES</SPEAKER>
+<LINE>Yea, by mass, that it is.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Sexton</SPEAKER>
+<LINE>What else, fellow?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>First Watchman</SPEAKER>
+<LINE>And that Count Claudio did mean, upon his words, to</LINE>
+<LINE>disgrace Hero before the whole assembly. and not marry her.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DOGBERRY</SPEAKER>
+<LINE>O villain! thou wilt be condemned into everlasting</LINE>
+<LINE>redemption for this.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Sexton</SPEAKER>
+<LINE>What else?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Watchman</SPEAKER>
+<LINE>This is all.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Sexton</SPEAKER>
+<LINE>And this is more, masters, than you can deny.</LINE>
+<LINE>Prince John is this morning secretly stolen away;</LINE>
+<LINE>Hero was in this manner accused, in this very manner</LINE>
+<LINE>refused, and upon the grief of this suddenly died.</LINE>
+<LINE>Master constable, let these men be bound, and</LINE>
+<LINE>brought to Leonato's: I will go before and show</LINE>
+<LINE>him their examination.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Exit</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>DOGBERRY</SPEAKER>
+<LINE>Come, let them be opinioned.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>VERGES</SPEAKER>
+<LINE>Let them be in the hands--</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CONRADE</SPEAKER>
+<LINE>Off, coxcomb!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DOGBERRY</SPEAKER>
+<LINE>God's my life, where's the sexton? let him write</LINE>
+<LINE>down the prince's officer coxcomb. Come, bind them.</LINE>
+<LINE>Thou naughty varlet!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CONRADE</SPEAKER>
+<LINE>Away! you are an ass, you are an ass.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DOGBERRY</SPEAKER>
+<LINE>Dost thou not suspect my place? dost thou not</LINE>
+<LINE>suspect my years? O that he were here to write me</LINE>
+<LINE>down an ass! But, masters, remember that I am an</LINE>
+<LINE>ass; though it be not written down, yet forget not</LINE>
+<LINE>that I am an ass. No, thou villain, thou art full of</LINE>
+<LINE>piety, as shall be proved upon thee by good witness.</LINE>
+<LINE>I am a wise fellow, and, which is more, an officer,</LINE>
+<LINE>and, which is more, a householder, and, which is</LINE>
+<LINE>more, as pretty a piece of flesh as any is in</LINE>
+<LINE>Messina, and one that knows the law, go to; and a</LINE>
+<LINE>rich fellow enough, go to; and a fellow that hath</LINE>
+<LINE>had losses, and one that hath two gowns and every</LINE>
+<LINE>thing handsome about him. Bring him away. O that</LINE>
+<LINE>I had been writ down an ass!</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Exeunt</STAGEDIR>
+</SCENE>
+
+</ACT>
+
+<ACT><TITLE>ACT V</TITLE>
+
+<SCENE><TITLE>SCENE I. Before LEONATO'S house.</TITLE>
+<STAGEDIR>Enter LEONATO and ANTONIO</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>ANTONIO</SPEAKER>
+<LINE>If you go on thus, you will kill yourself:</LINE>
+<LINE>And 'tis not wisdom thus to second grief</LINE>
+<LINE>Against yourself.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>I pray thee, cease thy counsel,</LINE>
+<LINE>Which falls into mine ears as profitless</LINE>
+<LINE>As water in a sieve: give not me counsel;</LINE>
+<LINE>Nor let no comforter delight mine ear</LINE>
+<LINE>But such a one whose wrongs do suit with mine.</LINE>
+<LINE>Bring me a father that so loved his child,</LINE>
+<LINE>Whose joy of her is overwhelm'd like mine,</LINE>
+<LINE>And bid him speak of patience;</LINE>
+<LINE>Measure his woe the length and breadth of mine</LINE>
+<LINE>And let it answer every strain for strain,</LINE>
+<LINE>As thus for thus and such a grief for such,</LINE>
+<LINE>In every lineament, branch, shape, and form:</LINE>
+<LINE>If such a one will smile and stroke his beard,</LINE>
+<LINE>Bid sorrow wag, cry 'hem!' when he should groan,</LINE>
+<LINE>Patch grief with proverbs, make misfortune drunk</LINE>
+<LINE>With candle-wasters; bring him yet to me,</LINE>
+<LINE>And I of him will gather patience.</LINE>
+<LINE>But there is no such man: for, brother, men</LINE>
+<LINE>Can counsel and speak comfort to that grief</LINE>
+<LINE>Which they themselves not feel; but, tasting it,</LINE>
+<LINE>Their counsel turns to passion, which before</LINE>
+<LINE>Would give preceptial medicine to rage,</LINE>
+<LINE>Fetter strong madness in a silken thread,</LINE>
+<LINE>Charm ache with air and agony with words:</LINE>
+<LINE>No, no; 'tis all men's office to speak patience</LINE>
+<LINE>To those that wring under the load of sorrow,</LINE>
+<LINE>But no man's virtue nor sufficiency</LINE>
+<LINE>To be so moral when he shall endure</LINE>
+<LINE>The like himself. Therefore give me no counsel:</LINE>
+<LINE>My griefs cry louder than advertisement.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>ANTONIO</SPEAKER>
+<LINE>Therein do men from children nothing differ.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>I pray thee, peace. I will be flesh and blood;</LINE>
+<LINE>For there was never yet philosopher</LINE>
+<LINE>That could endure the toothache patiently,</LINE>
+<LINE>However they have writ the style of gods</LINE>
+<LINE>And made a push at chance and sufferance.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>ANTONIO</SPEAKER>
+<LINE>Yet bend not all the harm upon yourself;</LINE>
+<LINE>Make those that do offend you suffer too.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>There thou speak'st reason: nay, I will do so.</LINE>
+<LINE>My soul doth tell me Hero is belied;</LINE>
+<LINE>And that shall Claudio know; so shall the prince</LINE>
+<LINE>And all of them that thus dishonour her.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>ANTONIO</SPEAKER>
+<LINE>Here comes the prince and Claudio hastily.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Enter DON PEDRO and CLAUDIO</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Good den, good den.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>Good day to both of you.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>Hear you. my lords,--</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>We have some haste, Leonato.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>Some haste, my lord! well, fare you well, my lord:</LINE>
+<LINE>Are you so hasty now? well, all is one.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Nay, do not quarrel with us, good old man.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>ANTONIO</SPEAKER>
+<LINE>If he could right himself with quarreling,</LINE>
+<LINE>Some of us would lie low.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>Who wrongs him?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>Marry, thou dost wrong me; thou dissembler, thou:--</LINE>
+<LINE>Nay, never lay thy hand upon thy sword;</LINE>
+<LINE>I fear thee not.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>Marry, beshrew my hand,</LINE>
+<LINE>If it should give your age such cause of fear:</LINE>
+<LINE>In faith, my hand meant nothing to my sword.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>Tush, tush, man; never fleer and jest at me:</LINE>
+<LINE>I speak not like a dotard nor a fool,</LINE>
+<LINE>As under privilege of age to brag</LINE>
+<LINE>What I have done being young, or what would do</LINE>
+<LINE>Were I not old. Know, Claudio, to thy head,</LINE>
+<LINE>Thou hast so wrong'd mine innocent child and me</LINE>
+<LINE>That I am forced to lay my reverence by</LINE>
+<LINE>And, with grey hairs and bruise of many days,</LINE>
+<LINE>Do challenge thee to trial of a man.</LINE>
+<LINE>I say thou hast belied mine innocent child;</LINE>
+<LINE>Thy slander hath gone through and through her heart,</LINE>
+<LINE>And she lies buried with her ancestors;</LINE>
+<LINE>O, in a tomb where never scandal slept,</LINE>
+<LINE>Save this of hers, framed by thy villany!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>My villany?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>Thine, Claudio; thine, I say.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>You say not right, old man.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>My lord, my lord,</LINE>
+<LINE>I'll prove it on his body, if he dare,</LINE>
+<LINE>Despite his nice fence and his active practise,</LINE>
+<LINE>His May of youth and bloom of lustihood.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>Away! I will not have to do with you.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>Canst thou so daff me? Thou hast kill'd my child:</LINE>
+<LINE>If thou kill'st me, boy, thou shalt kill a man.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>ANTONIO</SPEAKER>
+<LINE>He shall kill two of us, and men indeed:</LINE>
+<LINE>But that's no matter; let him kill one first;</LINE>
+<LINE>Win me and wear me; let him answer me.</LINE>
+<LINE>Come, follow me, boy; come, sir boy, come, follow me:</LINE>
+<LINE>Sir boy, I'll whip you from your foining fence;</LINE>
+<LINE>Nay, as I am a gentleman, I will.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>Brother,--</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>ANTONIO</SPEAKER>
+<LINE>Content yourself. God knows I loved my niece;</LINE>
+<LINE>And she is dead, slander'd to death by villains,</LINE>
+<LINE>That dare as well answer a man indeed</LINE>
+<LINE>As I dare take a serpent by the tongue:</LINE>
+<LINE>Boys, apes, braggarts, Jacks, milksops!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>Brother Antony,--</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>ANTONIO</SPEAKER>
+<LINE>Hold you content. What, man! I know them, yea,</LINE>
+<LINE>And what they weigh, even to the utmost scruple,--</LINE>
+<LINE>Scrambling, out-facing, fashion-monging boys,</LINE>
+<LINE>That lie and cog and flout, deprave and slander,</LINE>
+<LINE>Go anticly, show outward hideousness,</LINE>
+<LINE>And speak off half a dozen dangerous words,</LINE>
+<LINE>How they might hurt their enemies, if they durst;</LINE>
+<LINE>And this is all.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>But, brother Antony,--</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>ANTONIO</SPEAKER>
+<LINE>Come, 'tis no matter:</LINE>
+<LINE>Do not you meddle; let me deal in this.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Gentlemen both, we will not wake your patience.</LINE>
+<LINE>My heart is sorry for your daughter's death:</LINE>
+<LINE>But, on my honour, she was charged with nothing</LINE>
+<LINE>But what was true and very full of proof.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>My lord, my lord,--</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>I will not hear you.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>No? Come, brother; away! I will be heard.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>ANTONIO</SPEAKER>
+<LINE>And shall, or some of us will smart for it.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Exeunt LEONATO and ANTONIO</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>See, see; here comes the man we went to seek.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Enter BENEDICK</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>Now, signior, what news?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Good day, my lord.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Welcome, signior: you are almost come to part</LINE>
+<LINE>almost a fray.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>We had like to have had our two noses snapped off</LINE>
+<LINE>with two old men without teeth.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Leonato and his brother. What thinkest thou? Had</LINE>
+<LINE>we fought, I doubt we should have been too young for them.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>In a false quarrel there is no true valour. I came</LINE>
+<LINE>to seek you both.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>We have been up and down to seek thee; for we are</LINE>
+<LINE>high-proof melancholy and would fain have it beaten</LINE>
+<LINE>away. Wilt thou use thy wit?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>It is in my scabbard: shall I draw it?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Dost thou wear thy wit by thy side?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>Never any did so, though very many have been beside</LINE>
+<LINE>their wit. I will bid thee draw, as we do the</LINE>
+<LINE>minstrels; draw, to pleasure us.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>As I am an honest man, he looks pale. Art thou</LINE>
+<LINE>sick, or angry?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>What, courage, man! What though care killed a cat,</LINE>
+<LINE>thou hast mettle enough in thee to kill care.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Sir, I shall meet your wit in the career, and you</LINE>
+<LINE>charge it against me. I pray you choose another subject.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>Nay, then, give him another staff: this last was</LINE>
+<LINE>broke cross.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>By this light, he changes more and more: I think</LINE>
+<LINE>he be angry indeed.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>If he be, he knows how to turn his girdle.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Shall I speak a word in your ear?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>God bless me from a challenge!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE><STAGEDIR>Aside to CLAUDIO</STAGEDIR> You are a villain; I jest not:</LINE>
+<LINE>I will make it good how you dare, with what you</LINE>
+<LINE>dare, and when you dare. Do me right, or I will</LINE>
+<LINE>protest your cowardice. You have killed a sweet</LINE>
+<LINE>lady, and her death shall fall heavy on you. Let me</LINE>
+<LINE>hear from you.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>Well, I will meet you, so I may have good cheer.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>What, a feast, a feast?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>I' faith, I thank him; he hath bid me to a calf's</LINE>
+<LINE>head and a capon; the which if I do not carve most</LINE>
+<LINE>curiously, say my knife's naught. Shall I not find</LINE>
+<LINE>a woodcock too?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Sir, your wit ambles well; it goes easily.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>I'll tell thee how Beatrice praised thy wit the</LINE>
+<LINE>other day. I said, thou hadst a fine wit: 'True,'</LINE>
+<LINE>said she, 'a fine little one.' 'No,' said I, 'a</LINE>
+<LINE>great wit:' 'Right,' says she, 'a great gross one.'</LINE>
+<LINE>'Nay,' said I, 'a good wit:' 'Just,' said she, 'it</LINE>
+<LINE>hurts nobody.' 'Nay,' said I, 'the gentleman</LINE>
+<LINE>is wise:' 'Certain,' said she, 'a wise gentleman.'</LINE>
+<LINE>'Nay,' said I, 'he hath the tongues:' 'That I</LINE>
+<LINE>believe,' said she, 'for he swore a thing to me on</LINE>
+<LINE>Monday night, which he forswore on Tuesday morning;</LINE>
+<LINE>there's a double tongue; there's two tongues.' Thus</LINE>
+<LINE>did she, an hour together, transshape thy particular</LINE>
+<LINE>virtues: yet at last she concluded with a sigh, thou</LINE>
+<LINE>wast the properest man in Italy.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>For the which she wept heartily and said she cared</LINE>
+<LINE>not.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Yea, that she did: but yet, for all that, an if she</LINE>
+<LINE>did not hate him deadly, she would love him dearly:</LINE>
+<LINE>the old man's daughter told us all.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>All, all; and, moreover, God saw him when he was</LINE>
+<LINE>hid in the garden.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>But when shall we set the savage bull's horns on</LINE>
+<LINE>the sensible Benedick's head?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>Yea, and text underneath, 'Here dwells Benedick the</LINE>
+<LINE>married man'?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Fare you well, boy: you know my mind. I will leave</LINE>
+<LINE>you now to your gossip-like humour: you break jests</LINE>
+<LINE>as braggarts do their blades, which God be thanked,</LINE>
+<LINE>hurt not. My lord, for your many courtesies I thank</LINE>
+<LINE>you: I must discontinue your company: your brother</LINE>
+<LINE>the bastard is fled from Messina: you have among</LINE>
+<LINE>you killed a sweet and innocent lady. For my Lord</LINE>
+<LINE>Lackbeard there, he and I shall meet: and, till</LINE>
+<LINE>then, peace be with him.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Exit</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>He is in earnest.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>In most profound earnest; and, I'll warrant you, for</LINE>
+<LINE>the love of Beatrice.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>And hath challenged thee.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>Most sincerely.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>What a pretty thing man is when he goes in his</LINE>
+<LINE>doublet and hose and leaves off his wit!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>He is then a giant to an ape; but then is an ape a</LINE>
+<LINE>doctor to such a man.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>But, soft you, let me be: pluck up, my heart, and</LINE>
+<LINE>be sad. Did he not say, my brother was fled?</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Enter DOGBERRY, VERGES, and the Watch, with CONRADE
+and BORACHIO</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>DOGBERRY</SPEAKER>
+<LINE>Come you, sir: if justice cannot tame you, she</LINE>
+<LINE>shall ne'er weigh more reasons in her balance: nay,</LINE>
+<LINE>an you be a cursing hypocrite once, you must be looked to.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>How now? two of my brother's men bound! Borachio</LINE>
+<LINE>one!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>Hearken after their offence, my lord.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Officers, what offence have these men done?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DOGBERRY</SPEAKER>
+<LINE>Marry, sir, they have committed false report;</LINE>
+<LINE>moreover, they have spoken untruths; secondarily,</LINE>
+<LINE>they are slanders; sixth and lastly, they have</LINE>
+<LINE>belied a lady; thirdly, they have verified unjust</LINE>
+<LINE>things; and, to conclude, they are lying knaves.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>First, I ask thee what they have done; thirdly, I</LINE>
+<LINE>ask thee what's their offence; sixth and lastly, why</LINE>
+<LINE>they are committed; and, to conclude, what you lay</LINE>
+<LINE>to their charge.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>Rightly reasoned, and in his own division: and, by</LINE>
+<LINE>my troth, there's one meaning well suited.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Who have you offended, masters, that you are thus</LINE>
+<LINE>bound to your answer? this learned constable is</LINE>
+<LINE>too cunning to be understood: what's your offence?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BORACHIO</SPEAKER>
+<LINE>Sweet prince, let me go no farther to mine answer:</LINE>
+<LINE>do you hear me, and let this count kill me. I have</LINE>
+<LINE>deceived even your very eyes: what your wisdoms</LINE>
+<LINE>could not discover, these shallow fools have brought</LINE>
+<LINE>to light: who in the night overheard me confessing</LINE>
+<LINE>to this man how Don John your brother incensed me</LINE>
+<LINE>to slander the Lady Hero, how you were brought into</LINE>
+<LINE>the orchard and saw me court Margaret in Hero's</LINE>
+<LINE>garments, how you disgraced her, when you should</LINE>
+<LINE>marry her: my villany they have upon record; which</LINE>
+<LINE>I had rather seal with my death than repeat over</LINE>
+<LINE>to my shame. The lady is dead upon mine and my</LINE>
+<LINE>master's false accusation; and, briefly, I desire</LINE>
+<LINE>nothing but the reward of a villain.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Runs not this speech like iron through your blood?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>I have drunk poison whiles he utter'd it.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>But did my brother set thee on to this?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BORACHIO</SPEAKER>
+<LINE>Yea, and paid me richly for the practise of it.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>He is composed and framed of treachery:</LINE>
+<LINE>And fled he is upon this villany.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>Sweet Hero! now thy image doth appear</LINE>
+<LINE>In the rare semblance that I loved it first.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DOGBERRY</SPEAKER>
+<LINE>Come, bring away the plaintiffs: by this time our</LINE>
+<LINE>sexton hath reformed Signior Leonato of the matter:</LINE>
+<LINE>and, masters, do not forget to specify, when time</LINE>
+<LINE>and place shall serve, that I am an ass.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>VERGES</SPEAKER>
+<LINE>Here, here comes master Signior Leonato, and the</LINE>
+<LINE>Sexton too.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Re-enter LEONATO and ANTONIO, with the Sexton</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>Which is the villain? let me see his eyes,</LINE>
+<LINE>That, when I note another man like him,</LINE>
+<LINE>I may avoid him: which of these is he?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BORACHIO</SPEAKER>
+<LINE>If you would know your wronger, look on me.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>Art thou the slave that with thy breath hast kill'd</LINE>
+<LINE>Mine innocent child?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BORACHIO</SPEAKER>
+<LINE>Yea, even I alone.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>No, not so, villain; thou beliest thyself:</LINE>
+<LINE>Here stand a pair of honourable men;</LINE>
+<LINE>A third is fled, that had a hand in it.</LINE>
+<LINE>I thank you, princes, for my daughter's death:</LINE>
+<LINE>Record it with your high and worthy deeds:</LINE>
+<LINE>'Twas bravely done, if you bethink you of it.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>I know not how to pray your patience;</LINE>
+<LINE>Yet I must speak. Choose your revenge yourself;</LINE>
+<LINE>Impose me to what penance your invention</LINE>
+<LINE>Can lay upon my sin: yet sinn'd I not</LINE>
+<LINE>But in mistaking.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>By my soul, nor I:</LINE>
+<LINE>And yet, to satisfy this good old man,</LINE>
+<LINE>I would bend under any heavy weight</LINE>
+<LINE>That he'll enjoin me to.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>I cannot bid you bid my daughter live;</LINE>
+<LINE>That were impossible: but, I pray you both,</LINE>
+<LINE>Possess the people in Messina here</LINE>
+<LINE>How innocent she died; and if your love</LINE>
+<LINE>Can labour ought in sad invention,</LINE>
+<LINE>Hang her an epitaph upon her tomb</LINE>
+<LINE>And sing it to her bones, sing it to-night:</LINE>
+<LINE>To-morrow morning come you to my house,</LINE>
+<LINE>And since you could not be my son-in-law,</LINE>
+<LINE>Be yet my nephew: my brother hath a daughter,</LINE>
+<LINE>Almost the copy of my child that's dead,</LINE>
+<LINE>And she alone is heir to both of us:</LINE>
+<LINE>Give her the right you should have given her cousin,</LINE>
+<LINE>And so dies my revenge.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>O noble sir,</LINE>
+<LINE>Your over-kindness doth wring tears from me!</LINE>
+<LINE>I do embrace your offer; and dispose</LINE>
+<LINE>For henceforth of poor Claudio.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>To-morrow then I will expect your coming;</LINE>
+<LINE>To-night I take my leave. This naughty man</LINE>
+<LINE>Shall face to face be brought to Margaret,</LINE>
+<LINE>Who I believe was pack'd in all this wrong,</LINE>
+<LINE>Hired to it by your brother.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BORACHIO</SPEAKER>
+<LINE>No, by my soul, she was not,</LINE>
+<LINE>Nor knew not what she did when she spoke to me,</LINE>
+<LINE>But always hath been just and virtuous</LINE>
+<LINE>In any thing that I do know by her.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DOGBERRY</SPEAKER>
+<LINE>Moreover, sir, which indeed is not under white and</LINE>
+<LINE>black, this plaintiff here, the offender, did call</LINE>
+<LINE>me ass: I beseech you, let it be remembered in his</LINE>
+<LINE>punishment. And also, the watch heard them talk of</LINE>
+<LINE>one Deformed: they say be wears a key in his ear and</LINE>
+<LINE>a lock hanging by it, and borrows money in God's</LINE>
+<LINE>name, the which he hath used so long and never paid</LINE>
+<LINE>that now men grow hard-hearted and will lend nothing</LINE>
+<LINE>for God's sake: pray you, examine him upon that point.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>I thank thee for thy care and honest pains.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DOGBERRY</SPEAKER>
+<LINE>Your worship speaks like a most thankful and</LINE>
+<LINE>reverend youth; and I praise God for you.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>There's for thy pains.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DOGBERRY</SPEAKER>
+<LINE>God save the foundation!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>Go, I discharge thee of thy prisoner, and I thank thee.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DOGBERRY</SPEAKER>
+<LINE>I leave an arrant knave with your worship; which I</LINE>
+<LINE>beseech your worship to correct yourself, for the</LINE>
+<LINE>example of others. God keep your worship! I wish</LINE>
+<LINE>your worship well; God restore you to health! I</LINE>
+<LINE>humbly give you leave to depart; and if a merry</LINE>
+<LINE>meeting may be wished, God prohibit it! Come, neighbour.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Exeunt DOGBERRY and VERGES</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>Until to-morrow morning, lords, farewell.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>ANTONIO</SPEAKER>
+<LINE>Farewell, my lords: we look for you to-morrow.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>We will not fail.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>To-night I'll mourn with Hero.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE><STAGEDIR>To the Watch</STAGEDIR> Bring you these fellows on. We'll</LINE>
+<LINE>talk with Margaret,</LINE>
+<LINE>How her acquaintance grew with this lewd fellow.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Exeunt, severally</STAGEDIR>
+</SCENE>
+
+<SCENE><TITLE>SCENE II. LEONATO'S garden.</TITLE>
+<STAGEDIR>Enter BENEDICK and MARGARET, meeting</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Pray thee, sweet Mistress Margaret, deserve well at</LINE>
+<LINE>my hands by helping me to the speech of Beatrice.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>MARGARET</SPEAKER>
+<LINE>Will you then write me a sonnet in praise of my beauty?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>In so high a style, Margaret, that no man living</LINE>
+<LINE>shall come over it; for, in most comely truth, thou</LINE>
+<LINE>deservest it.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>MARGARET</SPEAKER>
+<LINE>To have no man come over me! why, shall I always</LINE>
+<LINE>keep below stairs?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Thy wit is as quick as the greyhound's mouth; it catches.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>MARGARET</SPEAKER>
+<LINE>And yours as blunt as the fencer's foils, which hit,</LINE>
+<LINE>but hurt not.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>A most manly wit, Margaret; it will not hurt a</LINE>
+<LINE>woman: and so, I pray thee, call Beatrice: I give</LINE>
+<LINE>thee the bucklers.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>MARGARET</SPEAKER>
+<LINE>Give us the swords; we have bucklers of our own.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>If you use them, Margaret, you must put in the</LINE>
+<LINE>pikes with a vice; and they are dangerous weapons for maids.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>MARGARET</SPEAKER>
+<LINE>Well, I will call Beatrice to you, who I think hath legs.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>And therefore will come.</LINE>
+<STAGEDIR>Exit MARGARET</STAGEDIR>
+<STAGEDIR>Sings</STAGEDIR>
+<LINE>The god of love,</LINE>
+<LINE>That sits above,</LINE>
+<LINE>And knows me, and knows me,</LINE>
+<LINE>How pitiful I deserve,--</LINE>
+<LINE>I mean in singing; but in loving, Leander the good</LINE>
+<LINE>swimmer, Troilus the first employer of panders, and</LINE>
+<LINE>a whole bookful of these quondam carpet-mangers,</LINE>
+<LINE>whose names yet run smoothly in the even road of a</LINE>
+<LINE>blank verse, why, they were never so truly turned</LINE>
+<LINE>over and over as my poor self in love. Marry, I</LINE>
+<LINE>cannot show it in rhyme; I have tried: I can find</LINE>
+<LINE>out no rhyme to 'lady' but 'baby,' an innocent</LINE>
+<LINE>rhyme; for 'scorn,' 'horn,' a hard rhyme; for,</LINE>
+<LINE>'school,' 'fool,' a babbling rhyme; very ominous</LINE>
+<LINE>endings: no, I was not born under a rhyming planet,</LINE>
+<LINE>nor I cannot woo in festival terms.</LINE>
+<STAGEDIR>Enter BEATRICE</STAGEDIR>
+<LINE>Sweet Beatrice, wouldst thou come when I called thee?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>Yea, signior, and depart when you bid me.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>O, stay but till then!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>'Then' is spoken; fare you well now: and yet, ere</LINE>
+<LINE>I go, let me go with that I came; which is, with</LINE>
+<LINE>knowing what hath passed between you and Claudio.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Only foul words; and thereupon I will kiss thee.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>Foul words is but foul wind, and foul wind is but</LINE>
+<LINE>foul breath, and foul breath is noisome; therefore I</LINE>
+<LINE>will depart unkissed.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Thou hast frighted the word out of his right sense,</LINE>
+<LINE>so forcible is thy wit. But I must tell thee</LINE>
+<LINE>plainly, Claudio undergoes my challenge; and either</LINE>
+<LINE>I must shortly hear from him, or I will subscribe</LINE>
+<LINE>him a coward. And, I pray thee now, tell me for</LINE>
+<LINE>which of my bad parts didst thou first fall in love with me?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>For them all together; which maintained so politic</LINE>
+<LINE>a state of evil that they will not admit any good</LINE>
+<LINE>part to intermingle with them. But for which of my</LINE>
+<LINE>good parts did you first suffer love for me?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Suffer love! a good epithet! I do suffer love</LINE>
+<LINE>indeed, for I love thee against my will.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>In spite of your heart, I think; alas, poor heart!</LINE>
+<LINE>If you spite it for my sake, I will spite it for</LINE>
+<LINE>yours; for I will never love that which my friend hates.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Thou and I are too wise to woo peaceably.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>It appears not in this confession: there's not one</LINE>
+<LINE>wise man among twenty that will praise himself.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>An old, an old instance, Beatrice, that lived in</LINE>
+<LINE>the lime of good neighbours. If a man do not erect</LINE>
+<LINE>in this age his own tomb ere he dies, he shall live</LINE>
+<LINE>no longer in monument than the bell rings and the</LINE>
+<LINE>widow weeps.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>And how long is that, think you?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Question: why, an hour in clamour and a quarter in</LINE>
+<LINE>rheum: therefore is it most expedient for the</LINE>
+<LINE>wise, if Don Worm, his conscience, find no</LINE>
+<LINE>impediment to the contrary, to be the trumpet of his</LINE>
+<LINE>own virtues, as I am to myself. So much for</LINE>
+<LINE>praising myself, who, I myself will bear witness, is</LINE>
+<LINE>praiseworthy: and now tell me, how doth your cousin?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>Very ill.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>And how do you?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>Very ill too.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Serve God, love me and mend. There will I leave</LINE>
+<LINE>you too, for here comes one in haste.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Enter URSULA</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>URSULA</SPEAKER>
+<LINE>Madam, you must come to your uncle. Yonder's old</LINE>
+<LINE>coil at home: it is proved my Lady Hero hath been</LINE>
+<LINE>falsely accused, the prince and Claudio mightily</LINE>
+<LINE>abused; and Don John is the author of all, who is</LINE>
+<LINE>fed and gone. Will you come presently?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>Will you go hear this news, signior?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>I will live in thy heart, die in thy lap, and be</LINE>
+<LINE>buried in thy eyes; and moreover I will go with</LINE>
+<LINE>thee to thy uncle's.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Exeunt</STAGEDIR>
+</SCENE>
+
+<SCENE><TITLE>SCENE III. A church.</TITLE>
+<STAGEDIR>Enter DON PEDRO, CLAUDIO, and three or four
+with tapers</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>Is this the monument of Leonato?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Lord</SPEAKER>
+<LINE>It is, my lord.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE><STAGEDIR>Reading out of a scroll</STAGEDIR></LINE>
+<LINE>Done to death by slanderous tongues</LINE>
+<LINE>Was the Hero that here lies:</LINE>
+<LINE>Death, in guerdon of her wrongs,</LINE>
+<LINE>Gives her fame which never dies.</LINE>
+<LINE>So the life that died with shame</LINE>
+<LINE>Lives in death with glorious fame.</LINE>
+<LINE>Hang thou there upon the tomb,</LINE>
+<LINE>Praising her when I am dumb.</LINE>
+<LINE>Now, music, sound, and sing your solemn hymn.</LINE>
+<SUBHEAD>SONG.</SUBHEAD>
+<LINE>Pardon, goddess of the night,</LINE>
+<LINE>Those that slew thy virgin knight;</LINE>
+<LINE>For the which, with songs of woe,</LINE>
+<LINE>Round about her tomb they go.</LINE>
+<LINE>Midnight, assist our moan;</LINE>
+<LINE>Help us to sigh and groan,</LINE>
+<LINE>Heavily, heavily:</LINE>
+<LINE>Graves, yawn and yield your dead,</LINE>
+<LINE>Till death be uttered,</LINE>
+<LINE>Heavily, heavily.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>Now, unto thy bones good night!</LINE>
+<LINE>Yearly will I do this rite.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Good morrow, masters; put your torches out:</LINE>
+<LINE>The wolves have prey'd; and look, the gentle day,</LINE>
+<LINE>Before the wheels of Phoebus, round about</LINE>
+<LINE>Dapples the drowsy east with spots of grey.</LINE>
+<LINE>Thanks to you all, and leave us: fare you well.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>Good morrow, masters: each his several way.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Come, let us hence, and put on other weeds;</LINE>
+<LINE>And then to Leonato's we will go.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>And Hymen now with luckier issue speed's</LINE>
+<LINE>Than this for whom we render'd up this woe.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Exeunt</STAGEDIR>
+</SCENE>
+
+<SCENE><TITLE>SCENE IV. A room in LEONATO'S house.</TITLE>
+<STAGEDIR>Enter LEONATO, ANTONIO, BENEDICK, BEATRICE,
+MARGARET, URSULA, FRIAR FRANCIS, and HERO</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>FRIAR FRANCIS</SPEAKER>
+<LINE>Did I not tell you she was innocent?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>So are the prince and Claudio, who accused her</LINE>
+<LINE>Upon the error that you heard debated:</LINE>
+<LINE>But Margaret was in some fault for this,</LINE>
+<LINE>Although against her will, as it appears</LINE>
+<LINE>In the true course of all the question.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>ANTONIO</SPEAKER>
+<LINE>Well, I am glad that all things sort so well.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>And so am I, being else by faith enforced</LINE>
+<LINE>To call young Claudio to a reckoning for it.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>Well, daughter, and you gentle-women all,</LINE>
+<LINE>Withdraw into a chamber by yourselves,</LINE>
+<LINE>And when I send for you, come hither mask'd.</LINE>
+<STAGEDIR>Exeunt Ladies</STAGEDIR>
+<LINE>The prince and Claudio promised by this hour</LINE>
+<LINE>To visit me. You know your office, brother:</LINE>
+<LINE>You must be father to your brother's daughter</LINE>
+<LINE>And give her to young Claudio.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>ANTONIO</SPEAKER>
+<LINE>Which I will do with confirm'd countenance.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Friar, I must entreat your pains, I think.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>FRIAR FRANCIS</SPEAKER>
+<LINE>To do what, signior?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>To bind me, or undo me; one of them.</LINE>
+<LINE>Signior Leonato, truth it is, good signior,</LINE>
+<LINE>Your niece regards me with an eye of favour.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>That eye my daughter lent her: 'tis most true.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>And I do with an eye of love requite her.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>The sight whereof I think you had from me,</LINE>
+<LINE>From Claudio and the prince: but what's your will?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Your answer, sir, is enigmatical:</LINE>
+<LINE>But, for my will, my will is your good will</LINE>
+<LINE>May stand with ours, this day to be conjoin'd</LINE>
+<LINE>In the state of honourable marriage:</LINE>
+<LINE>In which, good friar, I shall desire your help.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>My heart is with your liking.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>FRIAR FRANCIS</SPEAKER>
+<LINE>And my help.</LINE>
+<LINE>Here comes the prince and Claudio.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Enter DON PEDRO and CLAUDIO, and two or
+three others</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Good morrow to this fair assembly.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>Good morrow, prince; good morrow, Claudio:</LINE>
+<LINE>We here attend you. Are you yet determined</LINE>
+<LINE>To-day to marry with my brother's daughter?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>I'll hold my mind, were she an Ethiope.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>Call her forth, brother; here's the friar ready.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Exit ANTONIO</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>Good morrow, Benedick. Why, what's the matter,</LINE>
+<LINE>That you have such a February face,</LINE>
+<LINE>So full of frost, of storm and cloudiness?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>I think he thinks upon the savage bull.</LINE>
+<LINE>Tush, fear not, man; we'll tip thy horns with gold</LINE>
+<LINE>And all Europa shall rejoice at thee,</LINE>
+<LINE>As once Europa did at lusty Jove,</LINE>
+<LINE>When he would play the noble beast in love.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Bull Jove, sir, had an amiable low;</LINE>
+<LINE>And some such strange bull leap'd your father's cow,</LINE>
+<LINE>And got a calf in that same noble feat</LINE>
+<LINE>Much like to you, for you have just his bleat.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>For this I owe you: here comes other reckonings.</LINE>
+<STAGEDIR>Re-enter ANTONIO, with the Ladies masked</STAGEDIR>
+<LINE>Which is the lady I must seize upon?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>ANTONIO</SPEAKER>
+<LINE>This same is she, and I do give you her.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>Why, then she's mine. Sweet, let me see your face.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>No, that you shall not, till you take her hand</LINE>
+<LINE>Before this friar and swear to marry her.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>Give me your hand: before this holy friar,</LINE>
+<LINE>I am your husband, if you like of me.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERO</SPEAKER>
+<LINE>And when I lived, I was your other wife:</LINE>
+<STAGEDIR>Unmasking</STAGEDIR>
+<LINE>And when you loved, you were my other husband.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>Another Hero!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERO</SPEAKER>
+<LINE>Nothing certainer:</LINE>
+<LINE>One Hero died defiled, but I do live,</LINE>
+<LINE>And surely as I live, I am a maid.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>The former Hero! Hero that is dead!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>She died, my lord, but whiles her slander lived.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>FRIAR FRANCIS</SPEAKER>
+<LINE>All this amazement can I qualify:</LINE>
+<LINE>When after that the holy rites are ended,</LINE>
+<LINE>I'll tell you largely of fair Hero's death:</LINE>
+<LINE>Meantime let wonder seem familiar,</LINE>
+<LINE>And to the chapel let us presently.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Soft and fair, friar. Which is Beatrice?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE><STAGEDIR>Unmasking</STAGEDIR> I answer to that name. What is your will?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Do not you love me?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>Why, no; no more than reason.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Why, then your uncle and the prince and Claudio</LINE>
+<LINE>Have been deceived; they swore you did.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>Do not you love me?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Troth, no; no more than reason.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>Why, then my cousin Margaret and Ursula</LINE>
+<LINE>Are much deceived; for they did swear you did.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>They swore that you were almost sick for me.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>They swore that you were well-nigh dead for me.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>'Tis no such matter. Then you do not love me?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>No, truly, but in friendly recompense.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>Come, cousin, I am sure you love the gentleman.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>And I'll be sworn upon't that he loves her;</LINE>
+<LINE>For here's a paper written in his hand,</LINE>
+<LINE>A halting sonnet of his own pure brain,</LINE>
+<LINE>Fashion'd to Beatrice.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERO</SPEAKER>
+<LINE>And here's another</LINE>
+<LINE>Writ in my cousin's hand, stolen from her pocket,</LINE>
+<LINE>Containing her affection unto Benedick.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>A miracle! here's our own hands against our hearts.</LINE>
+<LINE>Come, I will have thee; but, by this light, I take</LINE>
+<LINE>thee for pity.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BEATRICE</SPEAKER>
+<LINE>I would not deny you; but, by this good day, I yield</LINE>
+<LINE>upon great persuasion; and partly to save your life,</LINE>
+<LINE>for I was told you were in a consumption.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Peace! I will stop your mouth.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Kissing her</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>DON PEDRO</SPEAKER>
+<LINE>How dost thou, Benedick, the married man?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>I'll tell thee what, prince; a college of</LINE>
+<LINE>wit-crackers cannot flout me out of my humour. Dost</LINE>
+<LINE>thou think I care for a satire or an epigram? No:</LINE>
+<LINE>if a man will be beaten with brains, a' shall wear</LINE>
+<LINE>nothing handsome about him. In brief, since I do</LINE>
+<LINE>purpose to marry, I will think nothing to any</LINE>
+<LINE>purpose that the world can say against it; and</LINE>
+<LINE>therefore never flout at me for what I have said</LINE>
+<LINE>against it; for man is a giddy thing, and this is my</LINE>
+<LINE>conclusion. For thy part, Claudio, I did think to</LINE>
+<LINE>have beaten thee, but in that thou art like to be my</LINE>
+<LINE>kinsman, live unbruised and love my cousin.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>CLAUDIO</SPEAKER>
+<LINE>I had well hoped thou wouldst have denied Beatrice,</LINE>
+<LINE>that I might have cudgelled thee out of thy single</LINE>
+<LINE>life, to make thee a double-dealer; which, out of</LINE>
+<LINE>question, thou wilt be, if my cousin do not look</LINE>
+<LINE>exceedingly narrowly to thee.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Come, come, we are friends: let's have a dance ere</LINE>
+<LINE>we are married, that we may lighten our own hearts</LINE>
+<LINE>and our wives' heels.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LEONATO</SPEAKER>
+<LINE>We'll have dancing afterward.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>First, of my word; therefore play, music. Prince,</LINE>
+<LINE>thou art sad; get thee a wife, get thee a wife:</LINE>
+<LINE>there is no staff more reverend than one tipped with horn.</LINE>
+</SPEECH>
+
+
+<STAGEDIR>Enter a Messenger</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>Messenger</SPEAKER>
+<LINE>My lord, your brother John is ta'en in flight,</LINE>
+<LINE>And brought with armed men back to Messina.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BENEDICK</SPEAKER>
+<LINE>Think not on him till to-morrow:</LINE>
+<LINE>I'll devise thee brave punishments for him.</LINE>
+<LINE>Strike up, pipers.</LINE>
+</SPEECH>
+
+<STAGEDIR>Dance</STAGEDIR>
+<STAGEDIR>Exeunt</STAGEDIR>
+</SCENE>
+</ACT>
+</PLAY>
diff --git a/test/resources/xml/om/namespaces.xml b/test/resources/xml/om/namespaces.xml
new file mode 100644
index 0000000..e8e4df8
--- /dev/null
+++ b/test/resources/xml/om/namespaces.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<foo:a xmlns:foo="http://fooNamespace/">
+ <b>
+ <c>Hello</c>
+ </b>
+
+ <foo:d>
+ <foo:e>Hey</foo:e>
+ </foo:d>
+
+ <bar:f xmlns:bar="http://barNamespace/">
+ <bar:g>Hey2</bar:g>
+ </bar:f>
+
+ <alias:x xmlns:alias="http://fooNamespace/">
+ <alias:y>Hey3</alias:y>
+ </alias:x>
+</foo:a>
diff --git a/test/resources/xml/om/nitf.xml b/test/resources/xml/om/nitf.xml
new file mode 100644
index 0000000..269d99e
--- /dev/null
+++ b/test/resources/xml/om/nitf.xml
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<nitf>
+
+ <!-- Example of markup of URLs (at the bottom of the story) -->
+
+ <head>
+ <meta name="ap-cycle" content="AP"/>
+ <meta name="ap-online-code" content="1700"/>
+ <meta name="ap-company" content="CO:Media Metrix Inc;TS:MMXI;IG:SVC;"/>
+ <meta name="ap-routing" content="ENTITLEMENTS,pfONLINE,pf1700"/>
+ <meta name="ap-format" content="bx"/>
+ <meta name="ap-category" content="f"/>
+ <meta name="ap-selector" content="-----"/>
+ <meta name="ap-transref" content="V0347"/>
+ <docdata>
+ <doc-id regsrc="AP" id-string="D76UIMO80"/>
+ <urgency ed-urg="7"/>
+ <date.issue norm="20000911T185842Z"/>
+ <du-key key="Napster Traffic"/>
+ <doc.copyright holder="(AP)"/>
+ </docdata>
+ </head>
+ <body>
+ <body.head>
+ <hedline>
+ <hl1>Use of Napster Quadruples</hl1>
+ </hedline>
+ <byline>By PETER SVENSSON
+ <byttl>AP Business Writer</byttl>
+ </byline>
+ <distributor>The Associated Press</distributor>
+ <dateline>
+ <location>NEW YORK</location>
+ </dateline>
+ </body.head>
+ <body.content>
+ <block>
+ <p>Despite the uncertain legality of the Napster online music-sharing service, the number of people
+using it more than quadrupled in just five months, Media Metrix said Monday.</p>
+ <p>That made Napster the fastest-growing software application ever recorded by the Internet research
+company.</p>
+ <p>From 1.1 million home users in the United States in February, the first month Media Metrix
+tracked the application, Napster use rocketed to 4.9 million users in July.</p>
+ <p>That represents 6 percent of U.S. home PC users who have modems, said Media Metrix, which pays
+people to install monitoring software on their computers.</p>
+ <p>It estimates total usage from a panel of about 50,000 people in the United States.</p>
+ <p>Napster was also used at work by 887,000 people in July, Media Metrix said.</p>
+ <p>Napster Inc. has been sued by the recording industry for allegedly enabling copyright
+infringement. The federal government weighed in on the case Friday, saying the service is not protected
+under a key copyright law, as the San Mateo, Calif., company claims.</p>
+ <p>Bruce Ryon, head of Media Metrix&apos;s New Media Group, said Napster was used by &quot;the full spectrum of PC users, not just the youth with time on their hands and a passion for music.&quot;</p>
+ <p>The Napster program allows users to copy digital music files from the hard drives of other
+users over the Internet.</p>
+ <p>Napster Inc. said last week that 28 million people had downloaded its program. It does not reveal
+its own figures for how many people actually use the software.</p>
+ <p>Because the program connects to the company&apos;s computers over the Internet every time
+it is run, Napster Inc. can track usage exactly.</p>
+ <p>__</p>
+ <p>On the Net:</p>
+ <p><a href="http://www.napster.com">
+http://www.napster.com</a></p>
+ <p><a href="http://www.mediametrix.com">
+http://www.mediametrix.com</a></p>
+ </block>
+ </body.content>
+ </body>
+</nitf>
diff --git a/test/resources/xml/om/numbers.xml b/test/resources/xml/om/numbers.xml
new file mode 100644
index 0000000..a1791cd
--- /dev/null
+++ b/test/resources/xml/om/numbers.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+
+<numbers>
+ <set>
+ <nr>3</nr>
+ <nr>24</nr>
+ <nr>55</nr>
+ <nr>11</nr>
+ <nr>2</nr>
+ <nr>-3</nr>
+ </set>
+ <set>
+ <nr value="66"/>
+ <nr value="123"/>
+ <nr value="55"/>
+ <nr value="9999"/>
+ </set>
+</numbers>
diff --git a/test/resources/xml/om/pi.xml b/test/resources/xml/om/pi.xml
new file mode 100644
index 0000000..980bbf9
--- /dev/null
+++ b/test/resources/xml/om/pi.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<foo>
+ <?cheese is tasty?>
+ <bar>
+ <baz/>
+ <cheese/>
+ <baz/>
+ <?toast is tasty?>
+ <cheese/>
+ <baz/>
+ </bar>
+ <?cheese is gooey?>
+</foo>
diff --git a/test/resources/xml/om/pi2.xml b/test/resources/xml/om/pi2.xml
new file mode 100644
index 0000000..46bce45
--- /dev/null
+++ b/test/resources/xml/om/pi2.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<a>
+ <b>foo</b>
+ <?toc order-by="x"?>
+ <c>bar</c>
+</a>
diff --git a/test/resources/xml/om/simple.xml b/test/resources/xml/om/simple.xml
new file mode 100644
index 0000000..3cff71a
--- /dev/null
+++ b/test/resources/xml/om/simple.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" ?>
+<root><a>a</a><b>b</b><c><d>d</d></c></root>
diff --git a/test/resources/xml/om/spaces.xml b/test/resources/xml/om/spaces.xml
new file mode 100644
index 0000000..4c46c63
--- /dev/null
+++ b/test/resources/xml/om/spaces.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<foo>
+ <bar>baz
+ <cheese id="3"/>
+ baz
+ <cheese/>
+ baz
+ </bar>
+ <doc><![CDATA[<foo>]]></doc>
+</foo> \ No newline at end of file
diff --git a/test/resources/xml/om/test.xml b/test/resources/xml/om/test.xml
new file mode 100644
index 0000000..3a83612
--- /dev/null
+++ b/test/resources/xml/om/test.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" ?>
+<axiomc:book xmlns:axiomc="http://ws.apache.org/axis2/c/om" xmlns:isbn="urn:ISBN:0-395-74341-6">
+ <axiomc:title>Axis2C OM HOWTO</axiomc:title>
+ <isbn:number>1748491379</isbn:number>
+ <author title="Mr" name="Axitoc Oman"/>
+ <a> </a>
+ <notes>
+ <p xmlns="urn:w3-org-ns:HTML">
+ This is vey good book on OM!
+ </p>
+ </notes>
+</axiomc:book>
diff --git a/test/resources/xml/om/testNamespaces.xml b/test/resources/xml/om/testNamespaces.xml
new file mode 100644
index 0000000..50f7c93
--- /dev/null
+++ b/test/resources/xml/om/testNamespaces.xml
@@ -0,0 +1,22 @@
+<Template>
+ <Application1 xmlns:xplt="http://www.xxxx.com/"
+ xmlns:xpl="http://www.xxxx.com/"
+ version="3.0"
+ randomAttribute="foo"
+ >
+ <xpl:insertText/>
+ <xplt:anyElement>
+ <Name/>
+ </xplt:anyElement>
+ </Application1>
+
+ <Application2 xmlns:xplt="http://www.xxxx.com/"
+ xmlns:xpl="http://www.xxxx.com/"
+ version="3.0"
+ >
+ <xpl:insertText/>
+ <xplt:anyElement>
+ <Name/>
+ </xplt:anyElement>
+ </Application2>
+</Template>
diff --git a/test/resources/xml/om/underscore.xml b/test/resources/xml/om/underscore.xml
new file mode 100644
index 0000000..111446f
--- /dev/null
+++ b/test/resources/xml/om/underscore.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" ?>
+<root a="1" _a="2">
+ <b>1</b>
+ <_b>2</_b>
+</root>
+
diff --git a/test/resources/xml/om/web.xml b/test/resources/xml/om/web.xml
new file mode 100644
index 0000000..972cf5d
--- /dev/null
+++ b/test/resources/xml/om/web.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<web-app>
+ <servlet>
+ <servlet-name>snoop</servlet-name>
+ <servlet-class>SnoopServlet</servlet-class>
+ </servlet>
+ <servlet>
+ <servlet-name>file</servlet-name>
+ <servlet-class>ViewFile</servlet-class>
+ <init-param>
+ <param-name>initial</param-name>
+ <param-value>
+ 1000
+ </param-value>
+ <description>
+ The initial value for the counter <!-- optional -->
+ </description>
+ </init-param>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>
+ mv
+ </servlet-name>
+ <url-pattern>
+ *.wm
+ </url-pattern>
+ </servlet-mapping>
+
+ <distributed/>
+
+ <security-role>
+ <role-name>
+ manager
+ </role-name>
+ <role-name>
+ director
+ </role-name>
+ <role-name>
+ president
+ </role-name>
+ </security-role>
+</web-app>
diff --git a/test/resources/xml/om/web2.xml b/test/resources/xml/om/web2.xml
new file mode 100644
index 0000000..7d479d3
--- /dev/null
+++ b/test/resources/xml/om/web2.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<root>
+ <b>
+ <d />
+ </b>
+ <c />
+</root>
diff --git a/test/resources/xml/soap/OMElementTest.xml b/test/resources/xml/soap/OMElementTest.xml
new file mode 100644
index 0000000..9cd474c
--- /dev/null
+++ b/test/resources/xml/soap/OMElementTest.xml
@@ -0,0 +1,22 @@
+<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing">
+ <soapenv:Header>
+ <wsa:MessageID soapenv:mustUnderstand="0">
+ uuid:920C5190-0B8F-11D9-8CED-F22EDEEBF7E5</wsa:MessageID>
+ <wsa:To soapenv:mustUnderstand="0">
+ http://localhost:8081/axis/services/BankPort</wsa:To>
+ <wsa:From soapenv:mustUnderstand="0">
+ <Address xmlns="http://schemas.xmlsoap.org/ws/2004/03/addressing">
+ http://schemas.xmlsoap.org/ws/2004/03/addressing/role/anonymous
+ </Address>
+ </wsa:From>
+ </soapenv:Header>
+ <soapenv:Body>
+ <axis2:echoVoid xmlns:axis2="http://ws.apache.org/axis2">This is some text
+ <axis2:input>2</axis2:input>
+ Some Other Text
+ </axis2:echoVoid>
+ </soapenv:Body>
+</soapenv:Envelope> \ No newline at end of file
diff --git a/test/resources/xml/soap/badsoap/bodyNotQualified.xml b/test/resources/xml/soap/badsoap/bodyNotQualified.xml
new file mode 100644
index 0000000..eef7895
--- /dev/null
+++ b/test/resources/xml/soap/badsoap/bodyNotQualified.xml
@@ -0,0 +1,19 @@
+<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing">
+ <soapenv:Header>
+ <wsa:MessageID soapenv:mustUnderstand="0">
+ uuid:920C5190-0B8F-11D9-8CED-F22EDEEBF7E5</wsa:MessageID>
+ <wsa:To soapenv:mustUnderstand="0">
+ http://localhost:8081/axis/services/BankPort</wsa:To>
+ <wsa:From soapenv:mustUnderstand="0">
+ <Address xmlns="http://schemas.xmlsoap.org/ws/2004/03/addressing">
+ http://schemas.xmlsoap.org/ws/2004/03/addressing/role/anonymous
+ </Address>
+ </wsa:From>
+ </soapenv:Header>
+ <soapenv:Body>
+ <echoVoid></echoVoid>
+ </soapenv:Body>
+</soapenv:Envelope> \ No newline at end of file
diff --git a/test/resources/xml/soap/badsoap/envelopeMissing.xml b/test/resources/xml/soap/badsoap/envelopeMissing.xml
new file mode 100644
index 0000000..4106495
--- /dev/null
+++ b/test/resources/xml/soap/badsoap/envelopeMissing.xml
@@ -0,0 +1,20 @@
+<soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing">
+ <soapenv:Header>
+ <wsa:MessageID soapenv:mustUnderstand="0">
+ uuid:920C5190-0B8F-11D9-8CED-F22EDEEBF7E5</wsa:MessageID>
+ <wsa:To soapenv:mustUnderstand="0">
+ http://localhost:8081/axis/services/BankPort</wsa:To>
+ <wsa:From soapenv:mustUnderstand="0">
+ <Address xmlns="http://schemas.xmlsoap.org/ws/2004/03/addressing">
+ http://schemas.xmlsoap.org/ws/2004/03/addressing/role/anonymous
+ </Address>
+ </wsa:From>
+ </soapenv:Header>
+ <soapenv:Body>
+ <axis2:echoVoid xmlns:axis2="http://ws.apache.org/axis2">
+ </axis2:echoVoid>
+ </soapenv:Body>
+</soapenv:Body> \ No newline at end of file
diff --git a/test/resources/xml/soap/badsoap/haederBodyWrongOrder.xml b/test/resources/xml/soap/badsoap/haederBodyWrongOrder.xml
new file mode 100644
index 0000000..e71c49a
--- /dev/null
+++ b/test/resources/xml/soap/badsoap/haederBodyWrongOrder.xml
@@ -0,0 +1,20 @@
+<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing">
+ <soapenv:Body>
+ <axis2:echoVoid xmlns:axis2="http://ws.apache.org/axis2">
+ </axis2:echoVoid>
+ </soapenv:Body>
+ <soapenv:Header>
+ <wsa:MessageID soapenv:mustUnderstand="0">
+ uuid:920C5190-0B8F-11D9-8CED-F22EDEEBF7E5</wsa:MessageID>
+ <wsa:To soapenv:mustUnderstand="0">
+ http://localhost:8081/axis/services/BankPort</wsa:To>
+ <wsa:From soapenv:mustUnderstand="0">
+ <Address xmlns="http://schemas.xmlsoap.org/ws/2004/03/addressing">
+ http://schemas.xmlsoap.org/ws/2004/03/addressing/role/anonymous
+ </Address>
+ </wsa:From>
+ </soapenv:Header>
+</soapenv:Envelope> \ No newline at end of file
diff --git a/test/resources/xml/soap/badsoap/notnamespaceQualified.xml b/test/resources/xml/soap/badsoap/notnamespaceQualified.xml
new file mode 100644
index 0000000..dfc013c
--- /dev/null
+++ b/test/resources/xml/soap/badsoap/notnamespaceQualified.xml
@@ -0,0 +1,15 @@
+<Envelope>
+ <Header>
+ <MessageID mustUnderstand="0">uuid:920C5190-0B8F-11D9-8CED-F22EDEEBF7E5
+ </MessageID>
+ <To mustUnderstand="0">http://localhost:8081/axis/services/BankPort</To>
+ <From mustUnderstand="0">
+ <Address>
+ http://schemas.xmlsoap.org/ws/2004/03/addressing/role/anonymous
+ </Address>
+ </From>
+ </Header>
+ <Body>
+ <echoVoid></echoVoid>
+ </Body>
+</Envelope> \ No newline at end of file
diff --git a/test/resources/xml/soap/badsoap/twoBodymessage.xml b/test/resources/xml/soap/badsoap/twoBodymessage.xml
new file mode 100644
index 0000000..a96a401
--- /dev/null
+++ b/test/resources/xml/soap/badsoap/twoBodymessage.xml
@@ -0,0 +1,24 @@
+<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing">
+ <soapenv:Header>
+ <wsa:MessageID soapenv:mustUnderstand="0">
+ uuid:920C5190-0B8F-11D9-8CED-F22EDEEBF7E5</wsa:MessageID>
+ <wsa:To soapenv:mustUnderstand="0">
+ http://localhost:8081/axis/services/BankPort</wsa:To>
+ <wsa:From soapenv:mustUnderstand="0">
+ <Address xmlns="http://schemas.xmlsoap.org/ws/2004/03/addressing">
+ http://schemas.xmlsoap.org/ws/2004/03/addressing/role/anonymous
+ </Address>
+ </wsa:From>
+ </soapenv:Header>
+ <soapenv:Body>
+ <axis2:echoVoid xmlns:axis2="http://ws.apache.org/axis2">
+ </axis2:echoVoid>
+ </soapenv:Body>
+ <soapenv:Body>
+ <axis2:echoVoid xmlns:axis2="http://ws.apache.org/axis2">
+ </axis2:echoVoid>
+ </soapenv:Body>
+</soapenv:Envelope> \ No newline at end of file
diff --git a/test/resources/xml/soap/badsoap/twoheaders.xml b/test/resources/xml/soap/badsoap/twoheaders.xml
new file mode 100644
index 0000000..3064771
--- /dev/null
+++ b/test/resources/xml/soap/badsoap/twoheaders.xml
@@ -0,0 +1,29 @@
+<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing">
+ <soapenv:Header>
+ <wsa:MessageID soapenv:mustUnderstand="0">
+ uuid:920C5190-0B8F-11D9-8CED-F22EDEEBF7E5</wsa:MessageID>
+ <wsa:To soapenv:mustUnderstand="0">
+ http://localhost:8081/axis/services/BankPort</wsa:To>
+ <wsa:From soapenv:mustUnderstand="0">
+ <Address xmlns="http://schemas.xmlsoap.org/ws/2004/03/addressing">
+ http://schemas.xmlsoap.org/ws/2004/03/addressing/role/anonymous
+ </Address>
+ </wsa:From>
+ </soapenv:Header>
+ <soapenv:Header>
+ <wsa:MessageID soapenv:mustUnderstand="0">
+ uuid:920C5190-0B8F-11D9-8CED-F22EDEEBF7E5</wsa:MessageID>
+ <wsa:To soapenv:mustUnderstand="0">
+ http://localhost:8081/axis/services/BankPort</wsa:To>
+ <wsa:From soapenv:mustUnderstand="0">
+ <Address xmlns="http://schemas.xmlsoap.org/ws/2004/03/addressing">
+ http://schemas.xmlsoap.org/ws/2004/03/addressing/role/anonymous
+ </Address>
+ </wsa:From>
+ </soapenv:Header>
+ <soapenv:Body>
+ </soapenv:Body>
+</soapenv:Envelope> \ No newline at end of file
diff --git a/test/resources/xml/soap/badsoap/wrongSoapNs.xml b/test/resources/xml/soap/badsoap/wrongSoapNs.xml
new file mode 100644
index 0000000..7d84398
--- /dev/null
+++ b/test/resources/xml/soap/badsoap/wrongSoapNs.xml
@@ -0,0 +1,20 @@
+<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/badsoap/envelope/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing">
+ <soapenv:Header>
+ <wsa:MessageID soapenv:mustUnderstand="0">
+ uuid:920C5190-0B8F-11D9-8CED-F22EDEEBF7E5</wsa:MessageID>
+ <wsa:To soapenv:mustUnderstand="0">
+ http://localhost:8081/axis/services/BankPort</wsa:To>
+ <wsa:From soapenv:mustUnderstand="0">
+ <Address xmlns="http://schemas.xmlsoap.org/ws/2004/03/addressing">
+ http://schemas.xmlsoap.org/ws/2004/03/addressing/role/anonymous
+ </Address>
+ </wsa:From>
+ </soapenv:Header>
+ <soapenv:Body>
+ <axis2:echoVoid xmlns:axis2="http://ws.apache.org/axis2">
+ </axis2:echoVoid>
+ </soapenv:Body>
+</soapenv:Envelope> \ No newline at end of file
diff --git a/test/resources/xml/soap/emtyBodymessage.xml b/test/resources/xml/soap/emtyBodymessage.xml
new file mode 100644
index 0000000..ea20929
--- /dev/null
+++ b/test/resources/xml/soap/emtyBodymessage.xml
@@ -0,0 +1,18 @@
+<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing">
+ <soapenv:Header>
+ <wsa:MessageID soapenv:mustUnderstand="0">
+ uuid:920C5190-0B8F-11D9-8CED-F22EDEEBF7E5</wsa:MessageID>
+ <wsa:To soapenv:mustUnderstand="0">
+ http://localhost:8081/axis/services/BankPort</wsa:To>
+ <wsa:From soapenv:mustUnderstand="0">
+ <Address xmlns="http://schemas.xmlsoap.org/ws/2004/03/addressing">
+ http://schemas.xmlsoap.org/ws/2004/03/addressing/role/anonymous
+ </Address>
+ </wsa:From>
+ </soapenv:Header>
+ <soapenv:Body>
+ </soapenv:Body>
+</soapenv:Envelope> \ No newline at end of file
diff --git a/test/resources/xml/soap/invalidMustUnderstandSOAP12.xml b/test/resources/xml/soap/invalidMustUnderstandSOAP12.xml
new file mode 100644
index 0000000..1b5183f
--- /dev/null
+++ b/test/resources/xml/soap/invalidMustUnderstandSOAP12.xml
@@ -0,0 +1,13 @@
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:xml="http://www.w3.org/XML/1998/namespace">
+ <env:Header>
+ <test2:echoOk2 xmlns:test2="http://example2.org/ts-tests"
+ env:role="http://www.w3.org/2003/05/soap-envelope/role/ultimateReceiver"
+ env:mustUnderstand="someOtherValue"
+ env:anyAttribute="any value">
+ foo
+ </test2:echoOk2>
+ </env:Header>
+ <env:Body>
+
+ </env:Body>
+</env:Envelope> \ No newline at end of file
diff --git a/test/resources/xml/soap/minimalMessage.xml b/test/resources/xml/soap/minimalMessage.xml
new file mode 100644
index 0000000..ea76d72
--- /dev/null
+++ b/test/resources/xml/soap/minimalMessage.xml
@@ -0,0 +1,4 @@
+<?xml version='1.0' ?>
+<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
+ <env:Body/>
+</env:Envelope> \ No newline at end of file
diff --git a/test/resources/xml/soap/reallyReallyBigMessage.xml b/test/resources/xml/soap/reallyReallyBigMessage.xml
new file mode 100644
index 0000000..687ed22
--- /dev/null
+++ b/test/resources/xml/soap/reallyReallyBigMessage.xml
@@ -0,0 +1,2529 @@
+<?xml version='1.0' ?>
+<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing">
+ <env:Header>
+
+ <wsdl:definitions targetNamespace="http://echo.services"
+ xmlns="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:impl="http://echo.services-impl"
+ xmlns:intf="http://echo.services"
+ xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
+ xmlns:tns1="http://types.echo.services"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <wsdl:types>
+ <schema targetNamespace="http://types.echo.services"
+ xmlns="http://www.w3.org/2001/XMLSchema">
+ <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
+ <complexType name="MyComplexType">
+ <sequence>
+ <element name="simpleItem" nillable="true"
+ type="xsd:string"/>
+ </sequence>
+ </complexType>
+ <element name="MyElement" nillable="true"
+ type="tns1:MyComplexType"/>
+ </schema>
+ </wsdl:types>
+ <wsdl:message name="echoRequest">
+ <wsdl:part element="tns1:MyElement" name="MyElement"/>
+ </wsdl:message>
+ <wsdl:message name="echoResponse">
+ <wsdl:part element="tns1:MyElement" name="MyElement"/>
+ </wsdl:message>
+ <wsdl:portType name="Echo1">
+ <wsdl:operation name="echo" parameterOrder="MyElement">
+ <wsdl:input message="intf:echoRequest" name="echoRequest"/>
+ <wsdl:output message="intf:echoResponse"
+ name="echoResponse"/>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="ComplexEchoServiceSoapBinding"
+ type="intf:Echo1">
+ <wsdlsoap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http"/>
+ <wsdl:operation name="echo">
+ <wsdlsoap:operation soapAction=""/>
+ <wsdl:input name="echoRequest">
+ <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ namespace="http://types.echo.services"
+ use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="echoResponse">
+ <wsdlsoap:body namespace="http://types.echo.services"
+ use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="ComplexEchoService">
+ <wsdl:port binding="intf:ComplexEchoServiceSoapBinding"
+ name="ComplexEchoService">
+ <wsdlsoap:address
+ location="http://localhost:8080/axis/services/ComplexEchoService"/>
+ </wsdl:port>
+ </wsdl:service>
+ </wsdl:definitions>
+
+
+ </env:Header>
+ <env:Body>
+ <definitions
+ name="comprehensive types test"
+ targetNamespace="urn:comprehensive-service.types.wsdl.test"
+ xmlns:tns="urn:comprehensive-service.types.wsdl.test"
+ xmlns:typens="urn:comprehensive-types.types.wsdl.test"
+ xmlns:typens2="urn:comprehensive-types2.types.wsdl.test"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns="http://schemas.xmlsoap.org/wsdl/">
+
+
+ <types>
+ <xsd:schema
+ targetNamespace="urn:comprehensive-types.types.wsdl.test"
+ xmlns:xsd="http://www.w3.org/1999/XMLSchema"
+ xmlns:xsd2="http://www.w3.org/2001/XMLSchema">
+
+ <xsd:simpleType name="simple">
+ <xsd:restriction base="xsd:string"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="simpleDate">
+ <xsd:restriction base="xsd:date"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="simpleDateTime">
+ <xsd:restriction base="xsd2:dateTime"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="enum">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="one"/>
+ <xsd:enumeration value="two"/>
+ <xsd:enumeration value="three"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:complexType name="array">
+ <xsd:complexContent>
+ <xsd:restriction base="soapenc:Array">
+ <xsd:attribute ref="soapenc:arrayType"
+ wsdl:arrayType="xsd:string[]"/>
+ </xsd:restriction>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:complexType name="array_of_base64">
+ <xsd:complexContent>
+ <xsd:restriction base="soapenc:Array">
+ <xsd:attribute ref="soapenc:arrayType"
+ wsdl:arrayType="xsd:base64Binary[]"/>
+ </xsd:restriction>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:complexType name="complexAll">
+ <xsd:all>
+ <xsd:element name="areaCode" type="xsd:int"/>
+ <xsd:element name="exchange" type="xsd:string"/>
+ <xsd:element name="number" type="xsd:string"/>
+ </xsd:all>
+ </xsd:complexType>
+
+ <xsd:complexType name="complexSequence">
+ <xsd:sequence>
+ <xsd:element name="areaCode" type="xsd:int"/>
+ <xsd:element name="exchange" type="xsd:string"/>
+ <xsd:element name="number" type="xsd:string"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="complexChoice">
+ <xsd:choice>
+ <xsd:element name="choiceA" type="xsd:int"/>
+ <xsd:element name="choiceB" type="xsd:string"/>
+ <xsd:element name="choiceC" type="xsd:string"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="Object">
+ <xsd:sequence>
+ <xsd:element name="test" type="xsd:string"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:complexType name="String">
+ <xsd:sequence>
+ <xsd:element name="test" type="xsd:string"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:complexType name="Class">
+ <xsd:sequence>
+ <xsd:element name="test" type="xsd:string"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:element name="enumValue" type="typens:enum"/>
+
+ <xsd:complexType name="time">
+ <xsd:simpleContent>
+ <xsd:extension base="xsd:string">
+ <xsd:attribute name="DST" type="xsd:boolean"/>
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+
+ <xsd:complexType name="complexWComplex">
+ <xsd:sequence>
+ <xsd:element name="stock_quote">
+ <xsd:complexType>
+ <xsd:attribute name="symbol"
+ type="xsd:string"/>
+ <xsd:sequence>
+
+ <xsd:element name="time"
+ type="typens:time"/>
+ <xsd:element name="change"
+ type="typens:simpleFwd"/>
+ <xsd:element name="pctchange"
+ type="xsd:string"/>
+ <xsd:element name="bid"
+ type="xsd:string"/>
+ <xsd:element name="ask"
+ type="xsd:string"/>
+ <xsd:element name="choice"
+ type="typens:complexChoice"/>
+ </xsd:sequence>
+ <xsd:attribute name="last"
+ type="xsd:string"/>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="outside" type="xsd:int"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="emptyFault">
+ <xsd:sequence/>
+ </xsd:complexType>
+
+ <xsd:element name="faultElement" type="typens:faultType"/>
+ <xsd:complexType name="faultType">
+ <xsd:sequence>
+ <xsd:element name="userData" type="xsd:string"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="emptyComplexType">
+ <xsd:sequence/>
+ </xsd:complexType>
+
+ <xsd:simpleType name="simpleFwd">
+ <xsd:restriction base="typens:simple"/>
+ </xsd:simpleType>
+
+
+ <xsd:complexType name="arrayM">
+ <xsd:complexContent>
+ <xsd:restriction base="soapenc:Array">
+ <xsd:attribute ref="soapenc:arrayType"
+ wsdl:arrayType="typens:arrayM2[]"/>
+ </xsd:restriction>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:complexType name="arrayM2">
+ <xsd:complexContent>
+ <xsd:restriction base="soapenc:Array">
+ <xsd:attribute ref="soapenc:arrayType"
+ wsdl:arrayType="typens:arrayM3[]"/>
+ </xsd:restriction>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:complexType name="arrayM3">
+ <xsd:complexContent>
+ <xsd:restriction base="soapenc:Array">
+ <xsd:attribute ref="soapenc:arrayType"
+ wsdl:arrayType="xsd:int[]"/>
+ </xsd:restriction>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="Animal">
+ <xsd:all>
+ <xsd:element name="Name" nillable="true"
+ type="xsd:string"/>
+ </xsd:all>
+ </xsd:complexType>
+ <xsd:element name="Animal" nillable="true"
+ type="typens:Animal"/>
+ <xsd:complexType name="Cat">
+ <xsd:complexContent>
+ <xsd:extension base="typens:Animal">
+ <xsd:all>
+ <xsd:element name="Purr" nillable="true"
+ type="xsd:string"/>
+ </xsd:all>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:element name="Cat" nillable="true" type="typens:Cat"/>
+
+ <xsd:complexType name="PersionCat">
+ <xsd:complexContent>
+ <xsd:extension base="typens:Cat">
+ <xsd:all>
+ <xsd:element name="Color"
+ type="xsd:string"/>
+ <xsd:element name="Toy"/>
+ </xsd:all>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:complexType name="Yarn">
+ <xsd:all>
+ <xsd:element name="Color" type="xsd:string"/>
+ </xsd:all>
+ </xsd:complexType>
+
+
+ <xsd:simpleType name="enumString">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="Ho Ho Ho"/>
+ <xsd:enumeration value="He He He"/>
+ <xsd:enumeration value="Ha Ha Ha"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:simpleType name="enumInt">
+ <xsd:restriction base="xsd:int">
+ <xsd:enumeration value="1"/>
+ <xsd:enumeration value="2"/>
+ <xsd:enumeration value="3"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:simpleType name="enumLong">
+ <xsd:restriction base="xsd:long">
+ <xsd:enumeration value="1"/>
+ <xsd:enumeration value="2"/>
+ <xsd:enumeration value="3"/>
+ <xsd:enumeration value="-9223372036854775808"/>
+ <xsd:enumeration value="9223372036854775807"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:simpleType name="enumShort">
+ <xsd:restriction base="xsd:short">
+ <xsd:enumeration value="1"/>
+ <xsd:enumeration value="2"/>
+ <xsd:enumeration value="3"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:simpleType name="enumFloat">
+ <xsd:restriction base="xsd:float">
+ <xsd:enumeration value="1.1"/>
+ <xsd:enumeration value="2.2"/>
+ <xsd:enumeration value="3.3"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:simpleType name="enumDouble">
+ <xsd:restriction base="xsd:double">
+ <xsd:enumeration value="1.1"/>
+ <xsd:enumeration value="2.2"/>
+ <xsd:enumeration value="3.3"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:simpleType name="enumByte">
+ <xsd:restriction base="xsd:byte">
+ <xsd:enumeration value="1"/>
+ <xsd:enumeration value="2"/>
+ <xsd:enumeration value="3"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="enumInteger">
+ <xsd:restriction base="xsd:integer">
+ <xsd:enumeration value="1"/>
+ <xsd:enumeration value="2"/>
+ <xsd:enumeration value="3"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="flowDirectionType">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="in"/>
+ <xsd:enumeration value="inOut"/>
+ <xsd:enumeration value="out"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="enumNMTOKEN">
+ <xsd:restriction base="xsd:NMTOKEN">
+ <xsd:enumeration value="NameToken1"/>
+ <xsd:enumeration value="NameToken2"/>
+ <xsd:enumeration value="NameToken3"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="AIDType">
+ <xsd:restriction base="xsd:hexBinary">
+ <xsd:maxLength value="16"/>
+ <xsd:minLength value="5"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="passModeType">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="passByValue"/>
+ <xsd:enumeration value="passByReference"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+
+ <xsd:element name="StringParameter"
+ type="typens:StringParameter"/>
+ <xsd:complexType name="StringParameter">
+ <xsd:simpleContent>
+ <xsd:extension base="xsd:string">
+ <xsd:attribute name="numBytes"
+ type="soapenc:int"/>
+ <xsd:attribute name="storageEncoding"
+ type="xsd:string"/>
+ <xsd:attribute name="direction"
+ type="typens:flowDirectionType"/>
+ <xsd:attribute name="passMode"
+ type="typens:passModeType"/>
+ <xsd:attribute name="description"
+ type="xsd:string"/>
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+
+ </xsd:schema>
+
+
+ <xsd:schema
+ targetNamespace="urn:comprehensive-types2.types.wsdl.test"
+ xmlns:xsd="http://www.w3.org/1999/XMLSchema">
+ <xsd:complexType name="fwd">
+ <xsd:complexContent>
+ <xsd:restriction base="soapenc:Array">
+ <xsd:attribute ref="soapenc:arrayType"
+ wsdl:arrayType="xsd:QName[]"/>
+ </xsd:restriction>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+
+ <xsd:element name="three" type="typens:enum"
+ maxOccurs="unbounded"/>
+
+
+ <xsd:element name="a" type="xsd:short"/>
+ <xsd:complexType name="a">
+ <xsd:sequence>
+ <xsd:element name="c" type="xsd:int"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:complexType name="b">
+ <xsd:sequence>
+ <xsd:element name="d" type="typens2:a"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="SimpleAnyURIType">
+ <xsd:simpleContent>
+ <xsd:extension base="xsd:anyURI">
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+
+ </xsd:schema>
+
+ </types>
+
+ <message name="empty"/>
+
+ <message name="allPrimitives">
+ <part name="string" type="xsd:string"/>
+ <part name="integer" type="xsd:integer"/>
+ <part name="int" type="xsd:int"/>
+ <part name="long" type="xsd:long"/>
+ <part name="short" type="xsd:short"/>
+ <part name="decimal" type="xsd:decimal"/>
+ <part name="float" type="xsd:float"/>
+ <part name="double" type="xsd:double"/>
+ <part name="boolean" type="xsd:boolean"/>
+ <part name="byte" type="xsd:byte"/>
+ <part name="QName" type="xsd:QName"/>
+ <part name="dateTime" type="xsd:dateTime"/>
+ <part name="base64Binary" type="xsd:base64Binary"/>
+ <part name="hexBinary" type="xsd:hexBinary"/>
+ <part name="soapString" type="soapenc:string"/>
+ <part name="soapBoolean" type="soapenc:boolean"/>
+ <part name="soapFloat" type="soapenc:float"/>
+ <part name="soapDouble" type="soapenc:double"/>
+ <part name="soapDecimal" type="soapenc:decimal"/>
+ <part name="soapInt" type="soapenc:int"/>
+ <part name="soapShort" type="soapenc:short"/>
+ <part name="soapBase64" type="soapenc:base64"/>
+ <part name="time" type="xsd:time"/>
+ <part name="unsignedLong" type="xsd:unsignedLong"/>
+ <part name="unsignedInt" type="xsd:unsignedInt"/>
+ <part name="unsignedShort" type="xsd:unsignedShort"/>
+ <part name="unsignedByte" type="xsd:unsignedByte"/>
+ <part name="nonNegativeInteger" type="xsd:nonNegativeInteger"/>
+ <part name="positiveInteger" type="xsd:positiveInteger"/>
+ <part name="nonPositiveInteger" type="xsd:nonPositiveInteger"/>
+ <part name="negativeInteger" type="xsd:negativeInteger"/>
+ <part name="anyURI" type="xsd:anyURI"/>
+ <part name="gYear" type="xsd:gYear"/>
+ <part name="gMonth" type="xsd:gMonth"/>
+ <part name="gDay" type="xsd:gDay"/>
+ <part name="gYearMonth" type="xsd:gYearMonth"/>
+ <part name="gMonthDay" type="xsd:gMonthDay"/>
+ </message>
+ <message name="inputBoolean">
+ <part name="inBoolean" type="xsd:boolean"/>
+ <part name="boolean" type="xsd:boolean"/>
+ </message>
+
+ <message name="outputBoolean">
+ <part name="outBoolean" type="xsd:boolean"/>
+ <part name="boolean" type="xsd:boolean"/>
+ </message>
+
+ <message name="inputByte">
+ <part name="inByte" type="xsd:byte"/>
+ <part name="byte" type="xsd:byte"/>
+ </message>
+
+ <message name="outputByte">
+ <part name="outByte" type="xsd:byte"/>
+ <part name="byte" type="xsd:byte"/>
+ </message>
+
+ <message name="inputShort">
+ <part name="inShort" type="xsd:short"/>
+ <part name="short" type="xsd:short"/>
+ </message>
+
+ <message name="outputShort">
+ <part name="outShort" type="xsd:short"/>
+ <part name="short" type="xsd:short"/>
+ </message>
+
+ <message name="inputInt">
+ <part name="inInt" type="xsd:int"/>
+ <part name="int" type="xsd:int"/>
+ </message>
+
+ <message name="outputInt">
+ <part name="outInt" type="xsd:int"/>
+ <part name="int" type="xsd:int"/>
+ </message>
+
+ <message name="inputLong">
+ <part name="inLong" type="xsd:long"/>
+ <part name="long" type="xsd:long"/>
+ </message>
+
+ <message name="outputLong">
+ <part name="outLong" type="xsd:long"/>
+ <part name="long" type="xsd:long"/>
+ </message>
+
+ <message name="inputFloat">
+ <part name="inFloat" type="xsd:float"/>
+ <part name="float" type="xsd:float"/>
+ </message>
+
+ <message name="outputFloat">
+ <part name="outFloat" type="xsd:float"/>
+ <part name="float" type="xsd:float"/>
+ </message>
+
+ <message name="inputDouble">
+ <part name="inDouble" type="xsd:double"/>
+ <part name="double" type="xsd:double"/>
+ </message>
+
+ <message name="outputDouble">
+ <part name="outDouble" type="xsd:double"/>
+ <part name="double" type="xsd:double"/>
+ </message>
+
+ <message name="inputString">
+ <part name="inString" type="xsd:string"/>
+ <part name="string" type="xsd:string"/>
+ </message>
+
+ <message name="outputString">
+ <part name="outString" type="xsd:string"/>
+ <part name="string" type="xsd:string"/>
+ </message>
+
+ <message name="inputInteger">
+ <part name="inInteger" type="xsd:integer"/>
+ <part name="integer" type="xsd:integer"/>
+ </message>
+
+ <message name="outputInteger">
+ <part name="outInteger" type="xsd:integer"/>
+ <part name="integer" type="xsd:integer"/>
+ </message>
+
+ <message name="inputDecimal">
+ <part name="inDecimal" type="xsd:decimal"/>
+ <part name="decimal" type="xsd:decimal"/>
+ </message>
+
+ <message name="outputDecimal">
+ <part name="outDecimal" type="xsd:decimal"/>
+ <part name="decimal" type="xsd:decimal"/>
+ </message>
+
+ <message name="inputDateTime">
+ <part name="inDateTime" type="xsd:dateTime"/>
+ <part name="dateTime" type="xsd:dateTime"/>
+ </message>
+
+ <message name="outputDateTime">
+ <part name="outDateTime" type="xsd:dateTime"/>
+ <part name="dateTime" type="xsd:dateTime"/>
+ </message>
+
+ <message name="inputBase64Binary">
+ <part name="inBase64Binary" type="xsd:base64Binary"/>
+ <part name="base64Binary" type="xsd:base64Binary"/>
+ </message>
+
+ <message name="outputBase64Binary">
+ <part name="outBase64Binary" type="xsd:base64Binary"/>
+ <part name="base64Binary" type="xsd:base64Binary"/>
+ </message>
+
+ <message name="inputQName">
+ <part name="inQName" type="xsd:QName"/>
+ <part name="qName" type="xsd:QName"/>
+ </message>
+
+ <message name="outputQName">
+ <part name="outQName" type="xsd:QName"/>
+ <part name="qName" type="xsd:QName"/>
+ </message>
+
+ <message name="inputHexBinary">
+ <part name="inHexBinary" type="xsd:hexBinary"/>
+ <part name="hexBinary" type="xsd:hexBinary"/>
+ </message>
+
+ <message name="outputHexBinary">
+ <part name="outHexBinary" type="xsd:hexBinary"/>
+ <part name="hexBinary" type="xsd:hexBinary"/>
+ </message>
+
+ <message name="inputTime">
+ <part name="inTime" type="xsd:time"/>
+ <part name="time" type="xsd:time"/>
+ </message>
+
+ <message name="outputTime">
+ <part name="outTime" type="xsd:time"/>
+ <part name="time" type="xsd:time"/>
+ </message>
+
+ <message name="inputUnsignedLong">
+ <part name="inUnsignedLong" type="xsd:unsignedLong"/>
+ <part name="unsignedLong" type="xsd:unsignedLong"/>
+ </message>
+
+ <message name="outputUnsignedLong">
+ <part name="outUnsignedLong" type="xsd:unsignedLong"/>
+ <part name="unsignedLong" type="xsd:unsignedLong"/>
+ </message>
+
+ <message name="inputUnsignedInt">
+ <part name="inUnsignedInt" type="xsd:unsignedInt"/>
+ <part name="unsignedInt" type="xsd:unsignedInt"/>
+ </message>
+
+ <message name="outputUnsignedInt">
+ <part name="outUnsignedInt" type="xsd:unsignedInt"/>
+ <part name="unsignedInt" type="xsd:unsignedInt"/>
+ </message>
+
+ <message name="inputUnsignedShort">
+ <part name="inUnsignedShort" type="xsd:unsignedShort"/>
+ <part name="unsignedShort" type="xsd:unsignedShort"/>
+ </message>
+
+ <message name="outputUnsignedShort">
+ <part name="outUnsignedShort" type="xsd:unsignedShort"/>
+ <part name="unsignedShort" type="xsd:unsignedShort"/>
+ </message>
+
+ <message name="inputUnsignedByte">
+ <part name="inUnsignedByte" type="xsd:unsignedByte"/>
+ <part name="unsignedByte" type="xsd:unsignedByte"/>
+ </message>
+
+ <message name="outputUnsignedByte">
+ <part name="outUnsignedByte" type="xsd:unsignedByte"/>
+ <part name="unsignedByte" type="xsd:unsignedByte"/>
+ </message>
+
+ <message name="inputNonNegativeInteger">
+ <part name="inNonNegativeInteger"
+ type="xsd:nonNegativeInteger"/>
+ <part name="NonNegativeInteger" type="xsd:nonNegativeInteger"/>
+ </message>
+
+ <message name="outputNonNegativeInteger">
+ <part name="outNonNegativeInteger"
+ type="xsd:nonNegativeInteger"/>
+ <part name="NonNegativeInteger" type="xsd:nonNegativeInteger"/>
+ </message>
+
+ <message name="inputPositiveInteger">
+ <part name="inPositiveInteger" type="xsd:positiveInteger"/>
+ <part name="PositiveInteger" type="xsd:positiveInteger"/>
+ </message>
+
+ <message name="outputPositiveInteger">
+ <part name="outPositiveInteger" type="xsd:positiveInteger"/>
+ <part name="PositiveInteger" type="xsd:positiveInteger"/>
+ </message>
+
+ <message name="inputNonPositiveInteger">
+ <part name="inNonPositiveInteger"
+ type="xsd:nonPositiveInteger"/>
+ <part name="NonPositiveInteger" type="xsd:nonPositiveInteger"/>
+ </message>
+
+ <message name="outputNonPositiveInteger">
+ <part name="outNonPositiveInteger"
+ type="xsd:nonPositiveInteger"/>
+ <part name="NonPositiveInteger" type="xsd:nonPositiveInteger"/>
+ </message>
+
+ <message name="inputNegativeInteger">
+ <part name="inNegativeInteger" type="xsd:negativeInteger"/>
+ <part name="NegativeInteger" type="xsd:negativeInteger"/>
+ </message>
+
+ <message name="outputNegativeInteger">
+ <part name="outNegativeInteger" type="xsd:negativeInteger"/>
+ <part name="NegativeInteger" type="xsd:negativeInteger"/>
+ </message>
+
+ <message name="inputAnyURI">
+ <part name="inAnyURI" type="xsd:anyURI"/>
+ <part name="anyURI" type="xsd:anyURI"/>
+ </message>
+
+ <message name="outputAnyURI">
+ <part name="outAnyURI" type="xsd:anyURI"/>
+ <part name="anyURI" type="xsd:anyURI"/>
+ </message>
+
+ <message name="inputSimpleAnyURI">
+ <part name="inAnyURI" type="typens2:SimpleAnyURIType"/>
+ <part name="anyURI" type="typens2:SimpleAnyURIType"/>
+ </message>
+
+ <message name="outputSimpleAnyURI">
+ <part name="outAnyURI" type="typens2:SimpleAnyURIType"/>
+ <part name="anyURI" type="typens2:SimpleAnyURIType"/>
+ </message>
+
+ <message name="inputYear">
+ <part name="inYear" type="xsd:gYear"/>
+ <part name="Year" type="xsd:gYear"/>
+ </message>
+
+ <message name="outputYear">
+ <part name="outYear" type="xsd:gYear"/>
+ <part name="Year" type="xsd:gYear"/>
+ </message>
+
+ <message name="inputMonth">
+ <part name="inMonth" type="xsd:gMonth"/>
+ <part name="Month" type="xsd:gMonth"/>
+ </message>
+
+ <message name="outputMonth">
+ <part name="outMonth" type="xsd:gMonth"/>
+ <part name="Month" type="xsd:gMonth"/>
+ </message>
+
+ <message name="inputDay">
+ <part name="inDay" type="xsd:gDay"/>
+ <part name="Day" type="xsd:gDay"/>
+ </message>
+
+ <message name="outputDay">
+ <part name="outDay" type="xsd:gDay"/>
+ <part name="Day" type="xsd:gDay"/>
+ </message>
+
+ <message name="inputYearMonth">
+ <part name="inYearMonth" type="xsd:gYearMonth"/>
+ <part name="YearMonth" type="xsd:gYearMonth"/>
+ </message>
+
+ <message name="outputYearMonth">
+ <part name="outYearMonth" type="xsd:gYearMonth"/>
+ <part name="YearMonth" type="xsd:gYearMonth"/>
+ </message>
+
+ <message name="inputMonthDay">
+ <part name="inMonthDay" type="xsd:gMonthDay"/>
+ <part name="MonthDay" type="xsd:gMonthDay"/>
+ </message>
+
+ <message name="outputMonthDay">
+ <part name="outMonthDay" type="xsd:gMonthDay"/>
+ <part name="MonthDay" type="xsd:gMonthDay"/>
+ </message>
+
+ <message name="inputSoapString">
+ <part name="inSoapString" type="soapenc:string"/>
+ <part name="soapencString" type="soapenc:string"/>
+ </message>
+
+ <message name="outputSoapString">
+ <part name="outSoapString" type="soapenc:string"/>
+ <part name="soapencString" type="soapenc:string"/>
+ </message>
+
+ <message name="inputSoapBoolean">
+ <part name="inSoapBoolean" type="soapenc:boolean"/>
+ <part name="soapencBoolean" type="soapenc:boolean"/>
+ </message>
+
+ <message name="outputSoapBoolean">
+ <part name="outSoapBoolean" type="soapenc:boolean"/>
+ <part name="soapencBoolean" type="soapenc:boolean"/>
+ </message>
+
+ <message name="inputSoapFloat">
+ <part name="inSoapFloat" type="soapenc:float"/>
+ <part name="soapencFloat" type="soapenc:float"/>
+ </message>
+
+ <message name="outputSoapFloat">
+ <part name="outSoapFloat" type="soapenc:float"/>
+ <part name="soapencFloat" type="soapenc:float"/>
+ </message>
+
+ <message name="inputSoapDouble">
+ <part name="inSoapDouble" type="soapenc:double"/>
+ <part name="soapencDouble" type="soapenc:double"/>
+ </message>
+
+ <message name="outputSoapDouble">
+ <part name="outSoapDouble" type="soapenc:double"/>
+ <part name="soapencDouble" type="soapenc:double"/>
+ </message>
+
+ <message name="inputSoapDecimal">
+ <part name="inSoapDecimal" type="soapenc:decimal"/>
+ <part name="soapencDecimal" type="soapenc:decimal"/>
+ </message>
+
+ <message name="outputSoapDecimal">
+ <part name="outSoapDecimal" type="soapenc:decimal"/>
+ <part name="soapencDecimal" type="soapenc:decimal"/>
+ </message>
+
+ <message name="inputSoapInt">
+ <part name="inSoapInt" type="soapenc:int"/>
+ <part name="soapencInt" type="soapenc:int"/>
+ </message>
+
+ <message name="outputSoapInt">
+ <part name="outSoapInt" type="soapenc:int"/>
+ <part name="soapencInt" type="soapenc:int"/>
+ </message>
+
+ <message name="inputSoapShort">
+ <part name="inSoapShort" type="soapenc:short"/>
+ <part name="soapencShort" type="soapenc:short"/>
+ </message>
+
+ <message name="outputSoapShort">
+ <part name="outSoapShort" type="soapenc:short"/>
+ <part name="soapencShort" type="soapenc:short"/>
+ </message>
+
+ <message name="inputSoapBase64">
+ <part name="inSoapBase64" type="soapenc:base64"/>
+ <part name="soapencBase64" type="soapenc:base64"/>
+ </message>
+
+ <message name="outputSoapBase64">
+ <part name="outSoapBase64" type="soapenc:base64"/>
+ <part name="soapencBase64" type="soapenc:base64"/>
+ </message>
+
+ <message name="enum">
+ <part name="enum" type="typens:enum"/>
+ </message>
+
+ <message name="enumInt">
+ <part name="enumInt" type="typens:enumInt"/>
+ </message>
+
+ <message name="array">
+ <part name="array" type="typens:array"/>
+ </message>
+
+ <message name="arrayM">
+ <part name="arrayM" type="typens:arrayM"/>
+ </message>
+
+ <message name="complexAll">
+ <part name="complexAll" type="typens:complexAll"/>
+ </message>
+
+ <message name="complexSequence">
+ <part name="complexSequence" type="typens:complexSequence"/>
+ </message>
+
+ <message name="complexWComplex">
+ <part name="complexWComplex" type="typens:complexWComplex"/>
+ </message>
+
+ <message name="any">
+ <part name="any" type="xsd:anyType"/>
+ </message>
+
+ <message name="animal">
+ <part name="animal" type="typens:Animal"/>
+ </message>
+
+ <message name="cat">
+ <part name="cat" type="typens:Cat"/>
+ </message>
+
+ <message name="emptyFault">
+ <part name="theFault" type="typens:emptyFault"/>
+ </message>
+
+ <message name="faultWithElement">
+ <part name="fault2" element="typens:faultElement"/>
+ </message>
+
+ <message name="emptyComplexType">
+ <part name="emptyComplexType" type="typens:emptyComplexType"/>
+ </message>
+
+
+ <portType name="TypeTest">
+ <operation name="allPrimitivesIn">
+ <input message="tns:allPrimitives"/>
+ <output message="tns:empty"/>
+ </operation>
+ <operation name="allPrimitivesInout">
+ <input message="tns:allPrimitives"/>
+ <output message="tns:allPrimitives"/>
+ </operation>
+ <operation name="allPrimitivesOut">
+ <input message="tns:empty"/>
+ <output message="tns:allPrimitives"/>
+ </operation>
+ <operation name="enumIn">
+ <input message="tns:enum"/>
+ <output message="tns:empty"/>
+ </operation>
+ <operation name="enumInout">
+ <input message="tns:enum"/>
+ <output message="tns:enum"/>
+ </operation>
+ <operation name="enumOut" parameterOrder="enum">
+ <input message="tns:empty"/>
+ <output message="tns:enum"/>
+ </operation>
+ <operation name="enumReturn">
+ <input message="tns:empty"/>
+ <output message="tns:enum"/>
+ </operation>
+ <operation name="enumIntIn">
+ <input message="tns:enumInt"/>
+ <output message="tns:empty"/>
+ </operation>
+ <operation name="enumIntInout">
+ <input message="tns:enumInt"/>
+ <output message="tns:enumInt"/>
+ </operation>
+ <operation name="enumIntOut" parameterOrder="enumInt">
+ <input message="tns:empty"/>
+ <output message="tns:enumInt"/>
+ </operation>
+ <operation name="enumIntReturn">
+ <input message="tns:empty"/>
+ <output message="tns:enumInt"/>
+ </operation>
+ <operation name="arrayIn">
+ <input message="tns:array"/>
+ <output message="tns:empty"/>
+ </operation>
+ <operation name="arrayInout">
+ <input message="tns:array"/>
+ <output message="tns:array"/>
+ </operation>
+ <operation name="arrayOut" parameterOrder="array">
+ <input message="tns:empty"/>
+ <output message="tns:array"/>
+ </operation>
+ <operation name="arrayReturn">
+ <input message="tns:empty"/>
+ <output message="tns:array"/>
+ </operation>
+
+ <operation name="arrayMIn">
+ <input message="tns:arrayM"/>
+ <output message="tns:empty"/>
+ </operation>
+ <operation name="arrayMInout">
+ <input message="tns:arrayM"/>
+ <output message="tns:arrayM"/>
+ </operation>
+ <operation name="arrayMOut" parameterOrder="arrayM">
+ <input message="tns:empty"/>
+ <output message="tns:arrayM"/>
+ </operation>
+ <operation name="arrayMReturn">
+ <input message="tns:empty"/>
+ <output message="tns:arrayM"/>
+ </operation>
+
+ <operation name="complexAllIn">
+ <input message="tns:complexAll"/>
+ <output message="tns:empty"/>
+ </operation>
+ <operation name="complexAllInout">
+ <input message="tns:complexAll"/>
+ <output message="tns:complexAll"/>
+ </operation>
+ <operation name="complexAllOut" parameterOrder="complexAll">
+ <input message="tns:empty"/>
+ <output message="tns:complexAll"/>
+ </operation>
+ <operation name="complexAllReturn">
+ <input message="tns:empty"/>
+ <output message="tns:complexAll"/>
+ </operation>
+ <operation name="complexSequenceIn">
+ <input message="tns:complexSequence"/>
+ <output message="tns:empty"/>
+ </operation>
+ <operation name="complexSequenceInout">
+ <input message="tns:complexSequence"/>
+ <output message="tns:complexSequence"/>
+ </operation>
+ <operation name="complexSequenceOut"
+ parameterOrder="complexSequence">
+ <input message="tns:empty"/>
+ <output message="tns:complexSequence"/>
+ </operation>
+ <operation name="complexSequenceReturn">
+ <input message="tns:empty"/>
+ <output message="tns:complexSequence"/>
+ </operation>
+ <operation name="complexWComplexIn">
+ <input message="tns:complexWComplex"/>
+ <output message="tns:empty"/>
+ </operation>
+ <operation name="complexWComplexInout">
+ <input message="tns:complexWComplex"/>
+ <output message="tns:complexWComplex"/>
+ </operation>
+ <operation name="complexWComplexOut"
+ parameterOrder="complexWComplex">
+ <input message="tns:empty"/>
+ <output message="tns:complexWComplex"/>
+ </operation>
+ <operation name="complexWComplexReturn">
+ <input message="tns:empty"/>
+ <output message="tns:complexWComplex"/>
+ </operation>
+ <operation name="emptyComplexTypeIn"
+ parameterOrder="emptyComplexType">
+ <input message="tns:emptyComplexType"/>
+ <output message="tns:empty"/>
+ <fault name="emptyFault" message="tns:emptyFault"/>
+ </operation>
+ <operation name="emptyComplexTypeInout"
+ parameterOrder="emptyComplexType">
+ <input message="tns:emptyComplexType"/>
+ <output message="tns:emptyComplexType"/>
+ <fault name="emptyFault" message="tns:emptyFault"/>
+ </operation>
+ <operation name="emptyComplexTypeOut"
+ parameterOrder="emptyComplexType">
+ <input message="tns:empty"/>
+ <output message="tns:emptyComplexType"/>
+ <fault name="emptyFault" message="tns:emptyFault"/>
+ </operation>
+ <operation name="emptyComplexTypeReturn">
+ <input message="tns:empty"/>
+ <output message="tns:emptyComplexType"/>
+ <fault name="emptyFault" message="tns:emptyFault"/>
+ </operation>
+ <operation name="anyIn">
+ <input message="tns:any"/>
+ <output message="tns:empty"/>
+ </operation>
+ <operation name="anyInout">
+ <input message="tns:any"/>
+ <output message="tns:any"/>
+ </operation>
+ <operation name="anyOut" parameterOrder="any">
+ <input message="tns:empty"/>
+ <output message="tns:any"/>
+ </operation>
+ <operation name="anyReturn">
+ <input message="tns:empty"/>
+ <output message="tns:any"/>
+ </operation>
+ <operation name="animalIn">
+ <input message="tns:animal"/>
+ <output message="tns:empty"/>
+ </operation>
+ <operation name="animalInout">
+ <input message="tns:animal"/>
+ <output message="tns:animal"/>
+ </operation>
+ <operation name="animalOut" parameterOrder="animal">
+ <input message="tns:empty"/>
+ <output message="tns:animal"/>
+ </operation>
+ <operation name="animalReturn">
+ <input message="tns:empty"/>
+ <output message="tns:animal"/>
+ </operation>
+ <operation name="catIn">
+ <input message="tns:cat"/>
+ <output message="tns:empty"/>
+ </operation>
+ <operation name="catInout">
+ <input message="tns:cat"/>
+ <output message="tns:cat"/>
+ </operation>
+ <operation name="catOut" parameterOrder="cat">
+ <input message="tns:empty"/>
+ <output message="tns:cat"/>
+ </operation>
+ <operation name="catReturn">
+ <input message="tns:empty"/>
+ <output message="tns:cat"/>
+ </operation>
+ <operation name="methodBoolean">
+ <input message="tns:inputBoolean"/>
+ <output message="tns:outputBoolean"/>
+ </operation>
+ <operation name="methodByte">
+ <input message="tns:inputByte"/>
+ <output message="tns:outputByte"/>
+ </operation>
+ <operation name="methodShort">
+ <input message="tns:inputShort"/>
+ <output message="tns:outputShort"/>
+ </operation>
+ <operation name="methodInt">
+ <input message="tns:inputInt"/>
+ <output message="tns:outputInt"/>
+ </operation>
+ <operation name="methodLong">
+ <input message="tns:inputLong"/>
+ <output message="tns:outputLong"/>
+ </operation>
+ <operation name="methodFloat">
+ <input message="tns:inputFloat"/>
+ <output message="tns:outputFloat"/>
+ </operation>
+ <operation name="methodDouble">
+ <input message="tns:inputDouble"/>
+ <output message="tns:outputDouble"/>
+ </operation>
+ <operation name="methodString">
+ <input message="tns:inputString"/>
+ <output message="tns:outputString"/>
+ </operation>
+ <operation name="methodInteger">
+ <input message="tns:inputInteger"/>
+ <output message="tns:outputInteger"/>
+ </operation>
+ <operation name="methodDecimal">
+ <input message="tns:inputDecimal"/>
+ <output message="tns:outputDecimal"/>
+ </operation>
+ <operation name="methodDateTime">
+ <input message="tns:inputDateTime"/>
+ <output message="tns:outputDateTime"/>
+ </operation>
+ <operation name="methodQName">
+ <input message="tns:inputQName"/>
+ <output message="tns:outputQName"/>
+ </operation>
+ <operation name="methodTime">
+ <input message="tns:inputTime"/>
+ <output message="tns:outputTime"/>
+ </operation>
+ <operation name="methodUnsignedLong">
+ <input message="tns:inputUnsignedLong"/>
+ <output message="tns:outputUnsignedLong"/>
+ </operation>
+ <operation name="methodUnsignedInt">
+ <input message="tns:inputUnsignedInt"/>
+ <output message="tns:outputUnsignedInt"/>
+ </operation>
+ <operation name="methodUnsignedShort">
+ <input message="tns:inputUnsignedShort"/>
+ <output message="tns:outputUnsignedShort"/>
+ </operation>
+ <operation name="methodUnsignedByte">
+ <input message="tns:inputUnsignedByte"/>
+ <output message="tns:outputUnsignedByte"/>
+ </operation>
+ <operation name="methodNonNegativeInteger">
+ <input message="tns:inputNonNegativeInteger"/>
+ <output message="tns:outputNonNegativeInteger"/>
+ </operation>
+ <operation name="methodPositiveInteger">
+ <input message="tns:inputPositiveInteger"/>
+ <output message="tns:outputPositiveInteger"/>
+ </operation>
+ <operation name="methodNonPositiveInteger">
+ <input message="tns:inputNonPositiveInteger"/>
+ <output message="tns:outputNonPositiveInteger"/>
+ </operation>
+ <operation name="methodNegativeInteger">
+ <input message="tns:inputNegativeInteger"/>
+ <output message="tns:outputNegativeInteger"/>
+ </operation>
+ <operation name="methodAnyURI">
+ <input message="tns:inputAnyURI"/>
+ <output message="tns:outputAnyURI"/>
+ </operation>
+ <operation name="methodSimpleAnyURI">
+ <input message="tns:inputSimpleAnyURI"/>
+ <output message="tns:outputSimpleAnyURI"/>
+ </operation>
+ <operation name="methodYear">
+ <input message="tns:inputYear"/>
+ <output message="tns:outputYear"/>
+ </operation>
+ <operation name="methodMonth">
+ <input message="tns:inputMonth"/>
+ <output message="tns:outputMonth"/>
+ </operation>
+ <operation name="methodDay">
+ <input message="tns:inputDay"/>
+ <output message="tns:outputDay"/>
+ </operation>
+ <operation name="methodYearMonth">
+ <input message="tns:inputYearMonth"/>
+ <output message="tns:outputYearMonth"/>
+ </operation>
+ <operation name="methodMonthDay">
+ <input message="tns:inputMonthDay"/>
+ <output message="tns:outputMonthDay"/>
+ </operation>
+ <operation name="methodSoapString">
+ <input message="tns:inputSoapString"/>
+ <output message="tns:outputSoapString"/>
+ </operation>
+ <operation name="methodSoapBoolean">
+ <input message="tns:inputSoapBoolean"/>
+ <output message="tns:outputSoapBoolean"/>
+ </operation>
+ <operation name="methodSoapFloat">
+ <input message="tns:inputSoapFloat"/>
+ <output message="tns:outputSoapFloat"/>
+ </operation>
+ <operation name="methodSoapDouble">
+ <input message="tns:inputSoapDouble"/>
+ <output message="tns:outputSoapDouble"/>
+ </operation>
+ <operation name="methodSoapDecimal">
+ <input message="tns:inputSoapDecimal"/>
+ <output message="tns:outputSoapDecimal"/>
+ </operation>
+ <operation name="methodSoapInt">
+ <input message="tns:inputSoapInt"/>
+ <output message="tns:outputSoapInt"/>
+ </operation>
+ <operation name="methodSoapShort">
+ <input message="tns:inputSoapShort"/>
+ <output message="tns:outputSoapShort"/>
+ </operation>
+ </portType>
+
+
+ <binding name="TypeTestBinding" type="tns:TypeTest">
+ <soap:binding
+ style="rpc"
+ transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="allPrimitivesIn">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="allPrimitivesInout">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="allPrimitivesOut">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="enumIn">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="enumInout">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="enumOut">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="enumReturn">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="enumIntIn">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="enumIntInout">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="enumIntOut">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="enumIntReturn">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="arrayIn">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="arrayInout">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="arrayOut">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="arrayReturn">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+
+ <operation name="arrayMIn">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="arrayMInout">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="arrayMOut">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="arrayMReturn">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+
+ <operation name="complexAllIn">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="complexAllInout">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="complexAllOut">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="complexAllReturn">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="complexSequenceIn">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="complexSequenceInout">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="complexSequenceOut">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="complexSequenceReturn">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="complexWComplexIn">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="complexWComplexInout">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="complexWComplexOut">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="complexWComplexReturn">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="emptyComplexTypeIn">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ <fault name="emptyFault">
+ <soap:fault name="emptyFault" use="encoded"/>
+ </fault>
+ </operation>
+ <operation name="emptyComplexTypeInout">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ <fault name="emptyFault">
+ <soap:fault name="emptyFault" use="encoded"/>
+ </fault>
+ </operation>
+ <operation name="emptyComplexTypeOut">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ <fault name="emptyFault">
+ <soap:fault name="emptyFault" use="encoded"/>
+ </fault>
+ </operation>
+ <operation name="emptyComplexTypeReturn">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ <fault name="emptyFault">
+ <soap:fault name="emptyFault" use="encoded"/>
+ </fault>
+ </operation>
+ <operation name="anyIn">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="anyInout">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="anyOut">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="anyReturn">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="animalIn">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="animalInout">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="animalOut">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="animalReturn">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="catIn">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="catInout">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="catOut">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="catReturn">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodBoolean">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodByte">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodShort">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodInt">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodLong">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodFloat">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodDouble">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodString">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodInteger">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodDecimal">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodDateTime">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodQName">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodTime">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodUnsignedLong">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodUnsignedInt">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodUnsignedShort">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodUnsignedByte">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodNonNegativeInteger">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodPositiveInteger">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodNonPositiveInteger">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodNegativeInteger">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+
+ <operation name="methodAnyURI">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodSimpleAnyURI">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodYear">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodMonth">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodDay">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodYearMonth">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodMonthDay">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodSoapString">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodSoapBoolean">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodSoapFloat">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodSoapDouble">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodSoapDecimal">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodSoapInt">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodSoapShort">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ </binding>
+
+
+ <service name="TypeTestService">
+ <port name="TypeTest" binding="tns:TypeTestBinding">
+ <soap:address location="http://localhost:8080/axis/services/TypeTest"/>
+ </port>
+ </service>
+
+ </definitions>
+
+ </env:Body>
+</env:Envelope> \ No newline at end of file
diff --git a/test/resources/xml/soap/sample1.txt b/test/resources/xml/soap/sample1.txt
new file mode 100644
index 0000000..a5f7560
--- /dev/null
+++ b/test/resources/xml/soap/sample1.txt
@@ -0,0 +1,12 @@
+POST /axis/services/EchoService HTTP/1.1
+Host: 127.0.0.1
+Content-Type: application/soap+xml; charset="utf-8"
+
+<?xml version='1.0' ?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
+ <env:Header>
+ </env:Header>
+ <env:Body>
+ <axis2:echoVoid xmlns:axis2="http://ws.apache.org/axis2" ></axis2:echoVoid>
+ </env:Body>
+</env:Envelope> \ No newline at end of file
diff --git a/test/resources/xml/soap/sample1.xml b/test/resources/xml/soap/sample1.xml
new file mode 100644
index 0000000..9d74dfe
--- /dev/null
+++ b/test/resources/xml/soap/sample1.xml
@@ -0,0 +1,9 @@
+<?xml version='1.0' ?>
+<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
+ <env:Header>
+ </env:Header>
+ <env:Body>
+ <axis2:echoVoid xmlns:axis2="http://ws.apache.org/axis2">
+ </axis2:echoVoid>
+ </env:Body>
+</env:Envelope> \ No newline at end of file
diff --git a/test/resources/xml/soap/security2-soap.xml b/test/resources/xml/soap/security2-soap.xml
new file mode 100644
index 0000000..4d6c272
--- /dev/null
+++ b/test/resources/xml/soap/security2-soap.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="utf-8"?>
+<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
+ xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/04/secext"
+ xmlns:xenc="http://www.w3.org/2001/04/xmlenc#">
+ <S:Header>
+ <m:path xmlns:m="http://schemas.xmlsoap.org/rp">
+ <m:action>http://fabrikam123.com/getQuote</m:action>
+ <m:to>http://fabrikam123.com/stocks</m:to>
+ <m:from>mailto:johnsmith@fabrikam123.com</m:from>
+ <m:id>uuid:84b9f5d0-33fb-4a81-b02b-5b760641c1d6</m:id>
+ </m:path>
+ <wsse:Security>
+ <wsse:BinarySecurityToken
+ ValueType="wsse:X509v3"
+ EncodingType="wsse:Base64Binary"
+ Id="X509Token">
+ MIIEZzCCA9CgAwIBAgIQEmtJZc0rqrKh5i...
+ </wsse:BinarySecurityToken>
+ <ds:Signature>
+ <ds:SignedInfo>
+ <ds:CanonicalizationMethod Algorithm=
+ "http://www.w3.org/2001/10/xml-exc-c14n#"/>
+ <ds:SignatureMethod Algorithm=
+ "http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
+ <ds:Reference>
+ <ds:Transforms>
+ <ds:Transform Algorithm=
+ "http://...#RoutingTransform"/>
+ <ds:Transform Algorithm=
+ "http://www.w3.org/2001/10/xml-exc-c14n#"/>
+ </ds:Transforms>
+ <ds:DigestMethod Algorithm=
+ "http://www.w3.org/2000/09/xmldsig#sha1"/>
+ <ds:DigestValue>EULddytSo1...</ds:DigestValue>
+ </ds:Reference>
+ </ds:SignedInfo>
+ <ds:SignatureValue>
+ BL8jdfToEb1l/vXcMZNNjPOV...
+ </ds:SignatureValue>
+ <ds:KeyInfo>
+ <wsse:SecurityTokenReference>
+ <wsse:Reference URI="#X509Token"/>
+ </wsse:SecurityTokenReference>
+ </ds:KeyInfo>
+ </ds:Signature>
+ </wsse:Security>
+ </S:Header>
+ <S:Body>
+ <tru:StockSymbol xmlns:tru="http://fabrikam123.com/payloads">
+ QQQ
+ </tru:StockSymbol>
+ </S:Body>
+</S:Envelope> \ No newline at end of file
diff --git a/test/resources/xml/soap/soap11/soap11fault.xml b/test/resources/xml/soap/soap11/soap11fault.xml
new file mode 100644
index 0000000..c9acd34
--- /dev/null
+++ b/test/resources/xml/soap/soap11/soap11fault.xml
@@ -0,0 +1,16 @@
+ <SOAP-ENV:Envelope
+ xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
+ <SOAP-ENV:Header>
+ <TestHeader>Test</TestHeader>
+ </SOAP-ENV:Header>
+ <SOAP-ENV:Body>
+ <SOAP-ENV:Fault>
+ <faultcode>SOAP-ENV:MustUnderstand</faultcode>
+ <faultstring>SOAP Must Understand Error</faultstring>
+ <faultactor>Actor</faultactor>
+ <detail>Detail text
+ <SomeElement>Some Element Text</SomeElement>
+ </detail>
+ </SOAP-ENV:Fault>
+ </SOAP-ENV:Body>
+ </SOAP-ENV:Envelope> \ No newline at end of file
diff --git a/test/resources/xml/soap/soap11/soap11message.xml b/test/resources/xml/soap/soap11/soap11message.xml
new file mode 100644
index 0000000..8a0b231
--- /dev/null
+++ b/test/resources/xml/soap/soap11/soap11message.xml
@@ -0,0 +1,46 @@
+<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing">
+ <soapenv:Header>
+ <wsa:From soapenv:mustUnderstand="0"
+ soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next">
+ <Address xmlns="http://schemas.xmlsoap.org/ws/2004/03/addressing">
+ http://schemas.xmlsoap.org/ws/2004/03/addressing/role/anonymous
+ </Address>
+ </wsa:From>
+ <test:MessageID xmlns:test="http://example.org/ts-tests"
+ soapenv:mustUnderstand="1"
+ soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next"
+ soapenv:anyAttribute="any value">
+ uuid:920C5190-0B8F-11D9-8CED-F22EDEEBF7E5
+ </test:MessageID>
+ <wsa:To soapenv:mustUnderstand="0"
+ soapenv:anyAttribute="any value">
+ http://localhost:8081/axis/services/BankPort
+ </wsa:To>
+ </soapenv:Header>
+ <soapenv:Body>
+ <soapenv:Fault>
+ <soapenv:faultcode>
+ env:Sender
+ </soapenv:faultcode>
+ <soapenv:faultstring>Sender Timeout</soapenv:faultstring>
+ <soapenv:faultactor>
+ http://schemas.xmlsoap.org/soap/envelope/actor/ultimateReceiver
+ </soapenv:faultactor>
+ <soapenv:detail xmlns:m="http://www.sample.org">
+ Details of error
+ <m:MaxTime m:detail="This is only a test">
+ P5M
+ </m:MaxTime>
+ <m:AveTime>
+ <m:Time>
+ P3M
+ </m:Time>
+ </m:AveTime>
+ </soapenv:detail>
+ </soapenv:Fault>
+ </soapenv:Body>
+</soapenv:Envelope>
+
diff --git a/test/resources/xml/soap/soap12message.xml b/test/resources/xml/soap/soap12message.xml
new file mode 100644
index 0000000..5830e6c
--- /dev/null
+++ b/test/resources/xml/soap/soap12message.xml
@@ -0,0 +1,58 @@
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:xml="http://www.w3.org/XML/1998/namespace">
+ <env:Header>
+ <test:echoOk xmlns:test="http://example.org/ts-tests"
+ env:role="http://www.w3.org/2003/05/soap-envelope/role/ultimateReceiver"
+ env:mustUnderstand="true"
+ env:anyAttribute="any value">
+ foo
+ </test:echoOk>
+ <test1:echoOk1 xmlns:test1="http://example1.org/ts-tests"
+ env:role="http://www.w3.org/2003/05/soap-envelope/role/next"
+ env:mustUnderstand="false"
+ env:anyAttribute="any value">
+ foo
+ </test1:echoOk1>
+ <test2:echoOk2 xmlns:test2="http://example2.org/ts-tests"
+ env:role="http://www.w3.org/2003/05/soap-envelope/role/ultimateReceiver"
+ env:mustUnderstand="1"
+ env:anyAttribute="any value">
+ foo
+ </test2:echoOk2>
+ </env:Header>
+ <env:Body>
+ <env:Fault>
+ <env:Code>
+ <env:Value>env:Sender</env:Value>
+ <env:Subcode>
+ <env:Value>m:MessageTimeout In First Subcode</env:Value>
+ <env:Subcode>
+ <env:Value>m:MessageTimeout In Second Subcode</env:Value>
+ <env:Subcode>
+ <env:Value>m:MessageTimeout In Third Subcode</env:Value>
+ </env:Subcode>
+ </env:Subcode>
+ </env:Subcode>
+ </env:Code>
+ <env:Reason>
+ <env:Text xml:lang="en">Sender Timeout</env:Text>
+ </env:Reason>
+ <env:Node>
+ http://www.w3.org/2003/05/soap-envelope/role/ultimateReceiver
+ </env:Node>
+ <env:Role>
+ ultimateReceiver
+ </env:Role>
+ <env:Detail xmlns:m="http:www.sample.org">
+ Details of error
+ <m:MaxTime m:detail="This is only a test">
+ P5M\n
+ </m:MaxTime>
+ <m:AveTime>
+ <m:Time>
+ P3M\n
+ </m:Time>
+ </m:AveTime>
+ </env:Detail>
+ </env:Fault>
+ </env:Body>
+</env:Envelope> \ No newline at end of file
diff --git a/test/resources/xml/soap/soapmessage.txt b/test/resources/xml/soap/soapmessage.txt
new file mode 100644
index 0000000..acae3b5
--- /dev/null
+++ b/test/resources/xml/soap/soapmessage.txt
@@ -0,0 +1,16 @@
+POST /axis/services/EchoService HTTP/1.1
+Host: 127.0.0.1
+Content-Type: application/soap+xml; charset="utf-8"
+
+<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing">
+ <soapenv:Header>
+ <wsa:MessageID soapenv:mustUnderstand="0">uuid:920C5190-0B8F-11D9-8CED-F22EDEEBF7E5</wsa:MessageID>
+ <wsa:To soapenv:mustUnderstand="0">http://localhost:8081/axis/services/BankPort</wsa:To>
+ <wsa:From soapenv:mustUnderstand="0">
+ <Address xmlns="http://schemas.xmlsoap.org/ws/2004/03/addressing">http://schemas.xmlsoap.org/ws/2004/03/addressing/role/anonymous</Address>
+ </wsa:From>
+ </soapenv:Header>
+ <soapenv:Body>
+ <axis2:echoVoid xmlns:axis2="http://ws.apache.org/axis2" ></axis2:echoVoid>
+ </soapenv:Body>
+</soapenv:Envelope> \ No newline at end of file
diff --git a/test/resources/xml/soap/soapmessage.xml b/test/resources/xml/soap/soapmessage.xml
new file mode 100644
index 0000000..0f49778
--- /dev/null
+++ b/test/resources/xml/soap/soapmessage.xml
@@ -0,0 +1,20 @@
+<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing">
+ <soapenv:Header>
+ <wsa:MessageID soapenv:mustUnderstand="0">
+ uuid:920C5190-0B8F-11D9-8CED-F22EDEEBF7E5</wsa:MessageID>
+ <wsa:To soapenv:mustUnderstand="0">
+ http://localhost:8081/axis/services/BankPort</wsa:To>
+ <wsa:From soapenv:mustUnderstand="0">
+ <Address xmlns="http://schemas.xmlsoap.org/ws/2004/03/addressing">
+ http://schemas.xmlsoap.org/ws/2004/03/addressing/role/anonymous
+ </Address>
+ </wsa:From>
+ </soapenv:Header>
+ <soapenv:Body>
+ <axis2:echoVoid xmlns:axis2="http://ws.apache.org/axis2">
+ </axis2:echoVoid>
+ </soapenv:Body>
+</soapenv:Envelope> \ No newline at end of file
diff --git a/test/resources/xml/soap/soapmessage1.xml b/test/resources/xml/soap/soapmessage1.xml
new file mode 100644
index 0000000..3d69585
--- /dev/null
+++ b/test/resources/xml/soap/soapmessage1.xml
@@ -0,0 +1,27 @@
+<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing">
+ <soapenv:Header>
+ <wsa:MessageID soapenv:mustUnderstand="0">
+ uuid:920C5190-0B8F-11D9-8CED-F22EDEEBF7E5</wsa:MessageID>
+ <wsa:To soapenv:mustUnderstand="0">
+ http://localhost:8081/axis/services/BankPort</wsa:To>
+ <wsa:From soapenv:mustUnderstand="0">
+ <Address xmlns="http://schemas.xmlsoap.org/ws/2004/03/addressing">
+ http://schemas.xmlsoap.org/ws/2004/03/addressing/role/anonymous
+ </Address>
+ </wsa:From>
+ </soapenv:Header>
+ <soapenv:Body>
+ <ns1:getBalance soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ xmlns:ns1="http://localhost:8081/axis/services/BankPort">
+ <ns1:accountNo href="#id0"/>
+ </ns1:getBalance>
+ <multiRef xmlns="tempUri" id="id0" soapenc:root="0"
+ soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ xsi:type="xsd:int"
+ xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">1001
+ </multiRef>
+ </soapenv:Body>
+</soapenv:Envelope> \ No newline at end of file
diff --git a/test/resources/xml/soap/test.xml b/test/resources/xml/soap/test.xml
new file mode 100644
index 0000000..3a303d4
--- /dev/null
+++ b/test/resources/xml/soap/test.xml
@@ -0,0 +1,59 @@
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:xml="http://www.w3.org/XML/1998/namespace">
+ <env:Header>
+ <test:echoOk xmlns:test="http://example.org/ts-tests"
+ env:role="http://www.w3.org/2003/05/soap-envelope/role/ultimateReceiver"
+ env:mustUnderstand="true"
+ env:anyAttribute="any value">
+ foo
+ </test:echoOk>
+ <test1:echoOk1 xmlns:test1="http://example1.org/ts-tests"
+ env:role="http://www.w3.org/2003/05/soap-envelope/role/next"
+ env:mustUnderstand="false"
+ env:anyAttribute="any value">
+ foo
+ </test1:echoOk1>
+ <test2:echoOk2 xmlns:test2="http://example2.org/ts-tests"
+ env:role="http://www.w3.org/2003/05/soap-envelope/role/ultimateReceiver"
+ env:mustUnderstand="1"
+ env:anyAttribute="any value">
+ foo
+ </test2:echoOk2>
+ </env:Header>
+ <env:Body>
+ <env:Fault>
+ <env:Code>
+ <env:Value>env:Sender</env:Value>
+ <env:Subcode>
+ <env:Value>m:MessageTimeout In First Subcode</env:Value>
+ <env:Subcode>
+ <env:Value>m:MessageTimeout In Second Subcode</env:Value>
+ <env:Subcode>
+ <env:Value>m:MessageTimeout In Third Subcode</env:Value>
+ </env:Subcode>
+ </env:Subcode>
+ </env:Subcode>
+ </env:Code>
+ <env:Reason>
+ <env:Text xml:lang="en">Sender Timeout</env:Text>
+ </env:Reason>
+ <env:Node>
+ http://www.w3.org/2003/05/soap-envelope/role/ultimateReceiver
+ </env:Node>
+ <env:Role>
+ ultimateReceiver
+ </env:Role>
+ <env:Detail xmlns:m="http:www.sample.org">
+ Details of error
+ <m:MaxTime m:detail="This is only a test">
+ P5M\n
+ </m:MaxTime>
+ <m:AveTime>
+ <m:Time>
+ P3M\n
+ </m:Time>
+ </m:AveTime>
+ </env:Detail>
+ </env:Fault>
+ </env:Body>
+</env:Envelope>
+
diff --git a/test/resources/xml/soap/whitespacedMessage.xml b/test/resources/xml/soap/whitespacedMessage.xml
new file mode 100644
index 0000000..0af632b
--- /dev/null
+++ b/test/resources/xml/soap/whitespacedMessage.xml
@@ -0,0 +1,27 @@
+<?xml version='1.0' ?>
+<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing">
+
+ <env:Header>
+
+
+ <wsa:MessageID env:mustUnderstand="0">
+ uuid:920C5190-0B8F-11D9-8CED-F22EDEEBF7E5</wsa:MessageID>
+ <wsa:To env:mustUnderstand="0">
+ http://localhost:8081/axis/services/BankPort</wsa:To>
+ <wsa:From env:mustUnderstand="0">
+ <Address xmlns="http://schemas.xmlsoap.org/ws/2004/03/addressing">
+ http://schemas.xmlsoap.org/ws/2004/03/addressing/role/anonymous
+ </Address>
+ </wsa:From>
+
+ </env:Header>
+ <env:Body>
+
+
+ <axis2:echoVoid xmlns:axis2="http://ws.apache.org/axis2">
+ </axis2:echoVoid>
+
+
+ </env:Body>
+</env:Envelope> \ No newline at end of file
diff --git a/test/resources/xml/soap/wrongEnvelopeNamespace.xml b/test/resources/xml/soap/wrongEnvelopeNamespace.xml
new file mode 100644
index 0000000..ff81835
--- /dev/null
+++ b/test/resources/xml/soap/wrongEnvelopeNamespace.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<soap:Envelope
+xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
+soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
+
+ <soap:Body xmlns:m="http://www.stock.org/stock">
+ <m:GetStockPrice>
+ <m:StockName>IBM</m:StockName>
+ </m:GetStockPrice>
+ </soap:Body>
+
+</soap:Envelope> \ No newline at end of file