# This is the sample we ship to customers
Calculator.xml
Attachment1.xml
# AwkwardErrorResponse.xml - fails everywhere - bug in Axis C++
AxisBench.xml
CombinedAll.xml
CombinedChoice.xml
ComplexLists.xml

# This test does not exist!
#ComplexTypesAll.xml

ConnectionClose.xml
Cookies.xml
DynamicAttachment.xml
DynamicGet_AddAnyObjectTest.xml

# Commented this test out because is currently not supported.
#DynUnrefAttachmentTest.xml

DynamicGetAnyObjectWithAttributesTest.xml
Enumeration.xml
ExceptionTestDoc.xml

# This test does not exist!
#HandlerTest6.xml

HiddenMessageParts.xml
InteropTestRound1.xml
InOut.xml
LargeReturningString.xml
ManyTypeRefRoot.xml
MathOpsDoc.xml
MultiOut.xml
NestedComplex.xml
NilValuesTest.xml
NillableArrays.xml
nillableComplexType.xml
PrimitiveAndArray.xml
RecurseTypes.xml
RefTestDoc.xml
RpcHttpHeaderTest1.xml
RpcHttpHeaderTest2.xml
RpcHttpHeaderTest3.xml
RpcHttpHeaderTest4.xml
RpcHttpHeaderTest5.xml
RpcHttpHeaderTest7.xml
RpcHttpHeaderTest8.xml
RpcSoapHeaderTest2.xml
RpcSoapHeaderTest8.xml
RpcSoapHeaderTest10.xml
SimpleArrays.xml
SimpleRefDoc.xml
TestSoapHeaderBlock2.xml
UnboundedChoice.xml
UnboundedStringChoice.xml
XSDElement.xml
XSDElementNil.xml
XSD_duration.xml
XSD_dateTime.xml
XSD_time.xml
XSD_date.xml
XSD_gYear.xml
XSD_gYearMonth.xml
XSD_gMonth.xml
XSD_gMonthDay.xml
XSD_gDay.xml
XSD_string.xml
XSD_normalizedString.xml
XSD_token.xml
XSD_language.xml
XSD_Name.xml
XSD_NCName.xml
XSD_ID.xml
XSD_IDREF.xml
XSD_IDREFS.xml
XSD_ENTITY.xml
XSD_ENTITIES.xml
XSD_NMTOKEN.xml
XSD_NMTOKENS.xml
XSD_boolean.xml
XSD_base64Binary.xml
XSD_hexBinary.xml
XSD_float.xml
XSD_double.xml
XSD_decimal.xml
XSD_nonPositiveInteger.xml
XSD_negativeInteger.xml
XSD_integer.xml
XSD_long.xml
XSD_int.xml
XSD_short.xml
XSD_byte.xml
XSD_nonNegativeInteger.xml
XSD_unsignedLong.xml
XSD_unsignedInt.xml
XSD_unsignedShort.xml
XSD_unsignedByte.xml
XSD_positiveInteger.xml
XSD_anyURI.xml
XSD_anyURI2.xml

# Should not be in the list as test is incorrect
#XSD_anyURIfault.xml

XSD_QName.xml
XSD_NOTATION.xml
NamespaceTest1.xml
ValidXMLCharIsInterpretedAsCPPCommand.xml
ComplexTypeWithNillableSimpleElement.xml
Arrays.xml
MixedFalseWithMixedTextMessage.xml
MixedTrueWithTextMessage.xml
MixedTrueWithMixedTextMessage.xml
MinOccursIsZero.xml
ElementFormDefaultTest.xml
ShallowAndDeepCopyingInComplexTypeOfSimpleTypes.xml
XSD_base64BinaryTestValidData.xml
Replica.xml
SimpleXSDAny.xml
ComplexTypeChoice1.xml
ComplexTypeChoice2.xml
ComplexTypeChoiceArrayChild.xml
ComplexTypeChoiceComplexChild.xml
ComplexTypeChoiceNestedChoice.xml
# ComplexTypeChoiceNestedSequence.xml
ComplexTypeChoiceSimple.xml
ComplexTypeOptionalChoice.xml

# Commented this test out because is currently not supported.
#SimpleChoiceNillable.xml

ComplexTypeAll.xml
ComplexTypeAll1.xml
ComplexTypeAll2.xml
ComplexTypeAllComplexChild.xml

# Commented this test out because is currently not supported.
#ComplexTypeNillableAll.xml

ComplexTypeOptionalAll.xml

SameComplexTypeAndElementName.xml
SameComplexTypeAndNillableElementName.xml

LargeReturningString2.xml

RestrictedPattern17667.xml

# Tests to test Start/End element tags, with and without attributes.
EmptyArrayOfString.xml
StartEndElement.xml
StartEndElementAttributes.xml

# More extensive fault handling testing
FaultMappingDocDivByZeroActorAndDetail.xml
FaultMappingDocDivByZeroNoActorNoDetail.xml
FaultMappingDocDivByZeroNoActor.xml
FaultMappingDocDivByZeroNoDetail.xml

NamespaceInBindingOperationsRpc.xml
NamespaceInBindingOperationsRpcNoTypeInResponse.xml

OneWayOperation.xml
OneWayOperationUnwrapped.xml

NoInputParams.xml
NoInputParamsUnwrapped.xml

inquire_v2.xml
DocLitNonwrapperTests.xml

# ===================================
# ==== Beginning of C unit tests ====
# ===================================

AxisBenchC.xml
EnumerationC.xml
InOutC.xml
LargeReturningStringC.xml
ManyTypeRefRootC.xml
MultiOutC.xml
NestedComplexC.xml
NilValuesTestC.xml
NillableArraysC.xml
nillableComplexType.xml
PrimitiveAndArrayC.xml
RecurseTypesC.xml
RpcHttpHeaderTest1C.xml
RpcHttpHeaderTest2C.xml
RpcHttpHeaderTest3C.xml
RpcHttpHeaderTest4C.xml
RpcHttpHeaderTest5C.xml
RpcHttpHeaderTest7C.xml
RpcHttpHeaderTest8C.xml
SimpleArraysC.xml
XSD_durationC.xml
XSD_dateTimeC.xml
XSD_timeC.xml
XSD_dateC.xml
XSD_gYearC.xml
XSD_gYearMonthC.xml
XSD_gMonthC.xml
XSD_gMonthDayC.xml
XSD_gDayC.xml
XSD_stringC.xml
XSD_normalizedStringC.xml
XSD_tokenC.xml
XSD_languageC.xml
XSD_NameC.xml
XSD_NCNameC.xml
XSD_IDC.xml
XSD_booleanC.xml
XSD_base64BinaryC.xml
XSD_hexBinaryC.xml
XSD_floatC.xml
XSD_doubleC.xml
XSD_decimalC.xml
XSD_nonPositiveIntegerC.xml
XSD_negativeIntegerC.xml
XSD_integerC.xml
XSD_longC.xml
XSD_intC.xml
XSD_shortC.xml
XSD_byteC.xml
XSD_nonNegativeIntegerC.xml
XSD_unsignedLongC.xml
XSD_unsignedIntC.xml
XSD_unsignedShortC.xml
XSD_unsignedByteC.xml
XSD_positiveIntegerC.xml
XSD_QNameC.xml
SimpleXSDAnyC.xml
ComplexTypeAllC.xml
ComplexTypeAll1C.xml
ComplexTypeAll2C.xml

DocLitNonwrapperTestsC.xml
