I am using Online Travel Alliance schema to request some data with php soap client,
As per document, i am passing following parameters
['OTA_HotelAvailRQ'] = data()
['OTA_HotelAvailRQ']['xmlns'] = http://www.opentravel.org/OTA/2003/05
['OTA_HotelAvailRQ']['AvailRatesOnly'] = true
['OTA_HotelAvailRQ']['EchoToken'] = single
['OTA_HotelAvailRQ']['ExactMatchOnly'] = true
['OTA_HotelAvailRQ']['PrimaryLangID'] = ENbr>
['OTA_HotelAvailRQ']['RateDetailsInd'] = true
['OTA_HotelAvailRQ']['RateRangeOnly'] = true
['OTA_HotelAvailRQ']['RequestedCurrency'] = GBP
['OTA_HotelAvailRQ']['SummaryOnly'] = OnRequestInd
['OTA_HotelAvailRQ']['Version'] = 6.000
['OTA_HotelAvailRQ']['AvailRequestSegments'] = data()
['OTA_HotelAvailRQ']['AvailRequestSegments']['AvailRequestSegment'] = data()
['OTA_HotelAvailRQ']['AvailRequestSegments']['AvailRequestSegment']['InfoSource'] = Distribution
['OTA_HotelAvailRQ']['AvailRequestSegments']['AvailRequestSegment']['HotelSearchCriteria'] = data()
['OTA_HotelAvailRQ']['AvailRequestSegments']['AvailRequestSegment']['HotelSearchCriteria']['AvailableOnlyIndicator'] = true
['OTA_HotelAvailRQ']['AvailRequestSegments']['AvailRequestSegment']['HotelSearchCriteria']['Criterion'] = data()
['OTA_HotelAvailRQ']['AvailRequestSegments']['AvailRequestSegment']['HotelSearchCriteria']['Criterion']['ExactMatch='] = true
['OTA_HotelAvailRQ']['AvailRequestSegments']['AvailRequestSegment']['HotelSearchCriteria']['Criterion']['HotelRef'] = data()
['OTA_HotelAvailRQ']['AvailRequestSegments']['AvailRequestSegment']['HotelSearchCriteria']['Criterion']['HotelRef']['ChainCode'] = IW
['OTA_HotelAvailRQ']['AvailRequestSegments']['AvailRequestSegment']['HotelSearchCriteria']['Criterion']['HotelRef']['HotelCityCode'] = PAR
['OTA_HotelAvailRQ']['AvailRequestSegments']['AvailRequestSegment']['HotelSearchCriteria']['Criterion']['HotelRef']['HotelCode'] = IWPAR819
['OTA_HotelAvailRQ']['AvailRequestSegments']['AvailRequestSegment']['HotelSearchCriteria']['Criterion']['StayDateRange'] = data()
['OTA_HotelAvailRQ']['AvailRequestSegments']['AvailRequestSegment']['HotelSearchCriteria']['Criterion']['StayDateRange']['Start'] = 23-11-2013
['OTA_HotelAvailRQ']['AvailRequestSegments']['AvailRequestSegment']['HotelSearchCriteria']['Criterion']['StayDateRange']['End'] = 24-11-2013
['OTA_HotelAvailRQ']['AvailRequestSegments']['AvailRequestSegment']['HotelSearchCriteria']['Criterion']['RoomStayCandidates'] = data()
['OTA_HotelAvailRQ']['AvailRequestSegments']['AvailRequestSegment']['HotelSearchCriteria']['Criterion']['RoomStayCandidates']['RoomStayCandidate'] = data()
['OTA_HotelAvailRQ']['AvailRequestSegments']['AvailRequestSegment']['HotelSearchCriteria']['Criterion']['RoomStayCandidates']['RoomStayCandidate']['Quantity'] = 1
['OTA_HotelAvailRQ']['AvailRequestSegments']['AvailRequestSegment']['HotelSearchCriteria']['Criterion']['RoomStayCandidates']['RoomStayCandidate']['GuestCounts'] = data()
['OTA_HotelAvailRQ']['AvailRequestSegments']['AvailRequestSegment']['HotelSearchCriteria']['Criterion']['RoomStayCandidates']['RoomStayCandidate']['GuestCounts']['GuestCount'] = data()
['OTA_HotelAvailRQ']['AvailRequestSegments']['AvailRequestSegment']['HotelSearchCriteria']['Criterion']['RoomStayCandidates']['RoomStayCandidate']['GuestCounts']['GuestCount']['AgeQualifyingCode'] = 10
['OTA_HotelAvailRQ']['AvailRequestSegments']['AvailRequestSegment']['HotelSearchCriteria']['Criterion']['RoomStayCandidates']['RoomStayCandidate']['GuestCounts']['GuestCount']['Count'] = 1
And when soap client generate xml using provided WSDL, it generate
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.opentravel.org/OTA/2003/05" xmlns:ns2="http://xml.amadeus.com/ws/2009/01/WBS_Session-2.0.xsd"><SOAP-ENV:Header><ns2:Session><ns2:SessionId>xxxxxxx</ns2:SessionId><ns2:SequenceNumber>3</ns2:SequenceNumber><ns2:SecurityToken>xxxxxxxxxxxxxxx</ns2:SecurityToken></ns2:Session></SOAP-ENV:Header><SOAP-ENV:Body><ns1:OTA_HotelAvailRQ SummaryOnly="true" AvailRatesOnly="true" RateRangeOnly="true" ExactMatchOnly="true" RequestedCurrency="GBP" RateDetailsInd="true" EchoToken="single" Version="6.000"><ns1:AvailRequestSegments><ns1:AvailRequestSegment InfoSource="Distribution"><ns1:HotelSearchCriteria AvailableOnlyIndicator="true"><ns1:Criterion/></ns1:HotelSearchCriteria></ns1:AvailRequestSegment></ns1:AvailRequestSegments></ns1:OTA_HotelAvailRQ></SOAP-ENV:Body></SOAP-ENV:Envelope>
it simply not including anything after AvailableOnlyIndicator and while criterion parameters as not processed. Now here, its a simple technique that soap client look at WSDL and XSDs and generate xml accordingly, but here something is wrong not sure where.