title: Parsing WSDL complexType and choice with PHP/SOAP
body: <p>Below is a request I am sending to the SOAP webservice. According to the WSDL, when I am using PostTransaction it allows 1 instance of 'CheckDetailEntries' per transaction.</p>
  
  <pre><code>&lt;s:complexType name="PostTransactionRequest"&gt;
          &lt;s:sequence&gt;
            &lt;s:element minOccurs="1" maxOccurs="1" name="RequestHeader" nillable="true" type="tns:RequestHeader" /&gt;
  
            &lt;s:element minOccurs="1" maxOccurs="1" name="CheckDetailEntries" nillable="true" type="tns:ArrayOfChoice1" /&gt;
            &lt;s:element minOccurs="1" maxOccurs="1" name="CheckHeaderRequest" nillable="true" type="tns:CheckHeaderRequest" /&gt;
            &lt;s:element minOccurs="1" maxOccurs="1" name="OrderTypeNumber" type="s:unsignedByte" /&gt;
          &lt;/s:sequence&gt;
  </code></pre>
  
  <p>It says that CheckDetailEntries is type="tns:ArrayOfChoice1" . How do I put in the array of choices? Currently I Initiate CheckDetailEntries via <code>$request-&gt;REQ-&gt;CheckDetailEntries = new CheckDetailEntries();</code> which works for one item, but when I try to do two items I am getting errors. Am I missing something?</p>
  
  <p>My PHP code:</p>
  
  <pre><code>$request = new PostTransaction();
          $request-&gt;REQ = new PostTransactionRequest();
          $request-&gt;REQ-&gt;RequestHeader = new RequestHeader();
  
          $request-&gt;REQ-&gt;RequestHeader-&gt;InterfaceVersion = $this-&gt;GetVersion($clientName)-&gt;data-&gt;interfaceVersion;
          $request-&gt;REQ-&gt;RequestHeader-&gt;ClientName = $clientName;
  
          $request-&gt;REQ-&gt;CheckDetailEntries = new CheckDetailEntries();
  
          $request-&gt;REQ-&gt;CheckDetailEntries-&gt;MenuItem = new MenuItem();
          $request-&gt;REQ-&gt;CheckDetailEntries-&gt;MenuItem-&gt;ReferenceEntry = "Item";
          $request-&gt;REQ-&gt;CheckDetailEntries-&gt;MenuItem-&gt;Count = "1";
          $request-&gt;REQ-&gt;CheckDetailEntries-&gt;MenuItem-&gt;Price = "1.67";
          $request-&gt;REQ-&gt;CheckDetailEntries-&gt;MenuItem-&gt;ItemNumber = "112001";
          $request-&gt;REQ-&gt;CheckDetailEntries-&gt;MenuItem-&gt;PriceLevel = "1";
          // Here is the problem. How can I have multiple Items?
          $request-&gt;REQ-&gt;CheckDetailEntries-&gt;MenuItem = new MenuItem();
          $request-&gt;REQ-&gt;CheckDetailEntries-&gt;MenuItem-&gt;ReferenceEntry = "Item";
          $request-&gt;REQ-&gt;CheckDetailEntries-&gt;MenuItem-&gt;Count = "1";
          $request-&gt;REQ-&gt;CheckDetailEntries-&gt;MenuItem-&gt;Price = "1.67";
          $request-&gt;REQ-&gt;CheckDetailEntries-&gt;MenuItem-&gt;ItemNumber = "125004";
          $request-&gt;REQ-&gt;CheckDetailEntries-&gt;MenuItem-&gt;-&gt;MenuItem-&gt;PriceLevel = "1";
  </code></pre>
  
  <p><strong>The WSDL(had to strip some out for it to fit in the body 30,000 char requirement):</strong>
      
      
        
          </p>
  
  <pre><code>      &lt;s:complexType name="RequestHeader"&gt;
  
          &lt;s:sequence&gt;
            &lt;s:element minOccurs="1" maxOccurs="1" name="InterfaceVersion" nillable="true" type="s:string" /&gt;
            &lt;s:element minOccurs="1" maxOccurs="1" name="ClientName" nillable="true" type="s:string" /&gt;
          &lt;/s:sequence&gt;
        &lt;/s:complexType&gt;
        &lt;s:element name="RawPMSSendResponse"&gt;
          &lt;s:complexType&gt;
            &lt;s:sequence&gt;
              &lt;s:element minOccurs="0" maxOccurs="1" name="RawPMSSendResponse" type="tns:RawPMSSendResponse" /&gt;
  
            &lt;/s:sequence&gt;
          &lt;/s:complexType&gt;
        &lt;/s:element&gt;
  
        &lt;s:element name="PostTransaction"&gt;
  
          &lt;s:complexType&gt;
            &lt;s:sequence&gt;
              &lt;s:element minOccurs="0" maxOccurs="1" name="REQ" type="tns:PostTransactionRequest" /&gt;
            &lt;/s:sequence&gt;
          &lt;/s:complexType&gt;
        &lt;/s:element&gt;
        &lt;s:complexType name="PostTransactionRequest"&gt;
          &lt;s:sequence&gt;
            &lt;s:element minOccurs="1" maxOccurs="1" name="RequestHeader" nillable="true" type="tns:RequestHeader" /&gt;
  
            &lt;s:element minOccurs="1" maxOccurs="1" name="CheckDetailEntries" nillable="true" type="tns:ArrayOfChoice1" /&gt;
            &lt;s:element minOccurs="1" maxOccurs="1" name="CheckHeaderRequest" nillable="true" type="tns:CheckHeaderRequest" /&gt;
            &lt;s:element minOccurs="1" maxOccurs="1" name="OrderTypeNumber" type="s:unsignedByte" /&gt;
          &lt;/s:sequence&gt;
        &lt;/s:complexType&gt;
        &lt;s:complexType name="ArrayOfChoice1"&gt;
          &lt;s:choice minOccurs="0" maxOccurs="unbounded"&gt;
            &lt;s:element minOccurs="1" maxOccurs="1" name="MenuItem" nillable="true" type="tns:MenuItem" /&gt;
            &lt;s:element minOccurs="1" maxOccurs="1" name="ServiceCharge" nillable="true" type="tns:ServiceCharge" /&gt;
  
            &lt;s:element minOccurs="1" maxOccurs="1" name="CreditCardTender" nillable="true" type="tns:CreditCardTender" /&gt;
            &lt;s:element minOccurs="1" maxOccurs="1" name="EnhancedServiceCharge" nillable="true" type="tns:EnhancedServiceCharge" /&gt;
            &lt;s:element minOccurs="1" maxOccurs="1" name="Information" nillable="true" type="tns:Information" /&gt;
            &lt;s:element minOccurs="1" maxOccurs="1" name="Condiment" nillable="true" type="tns:Condiment" /&gt;
            &lt;s:element minOccurs="1" maxOccurs="1" name="CashTender" nillable="true" type="tns:CashTender" /&gt;
            &lt;s:element minOccurs="1" maxOccurs="1" name="EnhancedTender" nillable="true" type="tns:EnhancedTender" /&gt;
            &lt;s:element minOccurs="1" maxOccurs="1" name="EnhancedMenuItem" nillable="true" type="tns:EnhancedMenuItem" /&gt;
          &lt;/s:choice&gt;
        &lt;/s:complexType&gt;
  
        &lt;s:complexType name="MenuItem"&gt;
          &lt;s:sequence&gt;
            &lt;s:element minOccurs="1" maxOccurs="1" name="ReferenceEntry" nillable="true" type="s:string" /&gt;
            &lt;s:element minOccurs="1" maxOccurs="1" name="Count" type="s:short" /&gt;
            &lt;s:element minOccurs="1" maxOccurs="1" name="Price" type="s:decimal" /&gt;
            &lt;s:element minOccurs="1" maxOccurs="1" name="ItemNumber" type="s:long" /&gt;
            &lt;s:element minOccurs="1" maxOccurs="1" name="PriceLevel" type="s:unsignedByte" /&gt;
            &lt;s:element minOccurs="1" maxOccurs="1" name="Seat" nillable="true" type="s:unsignedByte" /&gt;
          &lt;/s:sequence&gt;
  
        &lt;/s:complexType&gt;
        &lt;s:complexType name="EnhancedMenuItem"&gt;
          &lt;s:complexContent mixed="false"&gt;
            &lt;s:extension base="tns:MenuItem"&gt;
              &lt;s:sequence&gt;
                &lt;s:element minOccurs="1" maxOccurs="1" name="InterfaceNumber" type="s:int" /&gt;
                &lt;s:element minOccurs="1" maxOccurs="1" name="Service" nillable="true" type="s:string" /&gt;
                &lt;s:element minOccurs="1" maxOccurs="1" name="ServiceData" nillable="true"&gt;
                  &lt;s:complexType mixed="true"&gt;
  
                    &lt;s:sequence&gt;
                      &lt;s:any /&gt;
                    &lt;/s:sequence&gt;
                  &lt;/s:complexType&gt;
                &lt;/s:element&gt;
              &lt;/s:sequence&gt;
            &lt;/s:extension&gt;
          &lt;/s:complexContent&gt;
        &lt;/s:complexType&gt;
  
        &lt;s:complexType name="Condiment"&gt;
          &lt;s:complexContent mixed="false"&gt;
            &lt;s:extension base="tns:MenuItem"&gt;
              &lt;s:sequence&gt;
                &lt;s:element minOccurs="1" maxOccurs="1" name="Level" nillable="true" type="s:unsignedByte" /&gt;
              &lt;/s:sequence&gt;
            &lt;/s:extension&gt;
          &lt;/s:complexContent&gt;
        &lt;/s:complexType&gt;
  
        &lt;s:complexType name="ServiceCharge"&gt;
          &lt;s:sequence&gt;
            &lt;s:element minOccurs="1" maxOccurs="1" name="ReferenceEntry" nillable="true" type="s:string" /&gt;
            &lt;s:element minOccurs="1" maxOccurs="1" name="Count" type="s:short" /&gt;
            &lt;s:element minOccurs="1" maxOccurs="1" name="Price" type="s:decimal" /&gt;
            &lt;s:element minOccurs="1" maxOccurs="1" name="ItemNumber" type="s:long" /&gt;
            &lt;s:element minOccurs="1" maxOccurs="1" name="Item" type="s:decimal" /&gt;
            &lt;s:element minOccurs="1" maxOccurs="1" name="ItemChoiceType" type="tns:ItemChoiceType" /&gt;
          &lt;/s:sequence&gt;
  
        &lt;/s:complexType&gt;
  
  
        &lt;s:element name="PostTransactionResponse"&gt;
          &lt;s:complexType&gt;
  
            &lt;s:sequence&gt;
              &lt;s:element minOccurs="0" maxOccurs="1" name="PostTransactionResponse" type="tns:PostTransactionResponse" /&gt;
            &lt;/s:sequence&gt;
          &lt;/s:complexType&gt;
        &lt;/s:element&gt;
        &lt;s:complexType name="PostTransactionResponse"&gt;
          &lt;s:sequence&gt;
            &lt;s:element minOccurs="1" maxOccurs="1" name="OperationResult" nillable="true" type="tns:OperationResult" /&gt;
            &lt;s:element minOccurs="1" maxOccurs="1" name="OrderAccepted" type="s:boolean" /&gt;
  
            &lt;s:element minOccurs="0" maxOccurs="1" name="CredCardAuthCode" type="s:string" /&gt;
            &lt;s:element minOccurs="0" maxOccurs="1" name="CheckHeaderResponse" type="tns:CheckHeaderResponse" /&gt;
            &lt;s:element minOccurs="0" maxOccurs="1" name="PMSResponse" type="tns:ArrayOfString" /&gt;
          &lt;/s:sequence&gt;
        &lt;/s:complexType&gt;
        &lt;s:complexType name="CheckHeaderResponse"&gt;
          &lt;s:sequence&gt;
            &lt;s:element minOccurs="1" maxOccurs="1" name="CheckNumber" type="s:short" /&gt;
            &lt;s:element minOccurs="0" maxOccurs="1" name="CheckGuid" type="s:string" /&gt;
  
            &lt;s:element minOccurs="0" maxOccurs="1" name="CheckID" type="s:string" /&gt;
            &lt;s:element minOccurs="1" maxOccurs="1" name="GuestCount" type="s:short" /&gt;
            &lt;s:element minOccurs="1" maxOccurs="1" name="EmployeeNumber" type="s:int" /&gt;
            &lt;s:element minOccurs="1" maxOccurs="1" name="Cashier" type="s:int" /&gt;
            &lt;s:element minOccurs="1" maxOccurs="1" name="UwsNumber" type="s:int" /&gt;
            &lt;s:element minOccurs="1" maxOccurs="1" name="CheckOpenTime" type="s:dateTime" /&gt;
            &lt;s:element minOccurs="0" maxOccurs="1" name="CheckClosedTime" type="s:dateTime" /&gt;
            &lt;s:element minOccurs="1" maxOccurs="1" name="OrderTypeNumber" type="s:unsignedByte" /&gt;
            &lt;s:element minOccurs="0" maxOccurs="1" name="CheckAutofireTime" type="s:dateTime" /&gt;
  
            &lt;s:element minOccurs="1" maxOccurs="1" name="CheckSubtotal" type="s:decimal" /&gt;
            &lt;s:element minOccurs="1" maxOccurs="1" name="CheckTaxTotal" type="s:decimal" /&gt;
            &lt;s:element minOccurs="1" maxOccurs="1" name="CheckAutogratuityTotal" type="s:decimal" /&gt;
            &lt;s:element minOccurs="1" maxOccurs="1" name="CheckOtherTotal" type="s:decimal" /&gt;
            &lt;s:element minOccurs="1" maxOccurs="1" name="CheckPaymentTotal" type="s:decimal" /&gt;
            &lt;s:element minOccurs="1" maxOccurs="1" name="CheckAmountDueTotal" type="s:decimal" /&gt;
            &lt;s:element minOccurs="1" maxOccurs="1" name="NumberOfCheckDetails" type="s:short" /&gt;
            &lt;s:element minOccurs="0" maxOccurs="1" name="GuestInformation" type="tns:GuestInformation" /&gt;
            &lt;s:element minOccurs="0" maxOccurs="1" name="CheckStatus" type="tns:ArrayOfBoolean" /&gt;
  
          &lt;/s:sequence&gt;
        &lt;/s:complexType&gt;
  
  
        &lt;s:element name="HeartBeatResponse"&gt;
  
          &lt;s:complexType&gt;
            &lt;s:sequence&gt;
              &lt;s:element minOccurs="1" maxOccurs="1" name="bool" type="s:boolean" /&gt;
            &lt;/s:sequence&gt;
          &lt;/s:complexType&gt;
        &lt;/s:element&gt;
        &lt;s:element name="GetOpenCheckList"&gt;
          &lt;s:complexType&gt;
            &lt;s:sequence&gt;
  
              &lt;s:element minOccurs="0" maxOccurs="1" name="REQ" type="tns:GetOpenCheckSLUListRequest" /&gt;
            &lt;/s:sequence&gt;
          &lt;/s:complexType&gt;
        &lt;/s:element&gt;
        &lt;s:complexType name="GetOpenCheckSLUListRequest"&gt;
          &lt;s:sequence&gt;
            &lt;s:element minOccurs="1" maxOccurs="1" name="RequestHeader" nillable="true" type="tns:RequestHeader" /&gt;
          &lt;/s:sequence&gt;
        &lt;/s:complexType&gt;
  
        &lt;s:element name="GetOpenCheckListResponse"&gt;
          &lt;s:complexType&gt;
            &lt;s:sequence&gt;
              &lt;s:element minOccurs="0" maxOccurs="1" name="GetOpenCheckSLUListResponse" type="tns:GetOpenCheckSLUListResponse" /&gt;
            &lt;/s:sequence&gt;
          &lt;/s:complexType&gt;
        &lt;/s:element&gt;
        &lt;s:complexType name="GetOpenCheckSLUListResponse"&gt;
          &lt;s:sequence&gt;
  
            &lt;s:element minOccurs="1" maxOccurs="1" name="index" type="s:int" /&gt;
            &lt;s:element minOccurs="1" maxOccurs="1" name="status" type="s:short" /&gt;
            &lt;s:element minOccurs="1" maxOccurs="1" name="num_entries" type="s:short" /&gt;
            &lt;s:element minOccurs="0" maxOccurs="1" name="OpenCheckDetails" type="tns:ArrayOfOpenCheckSLUEntry" /&gt;
            &lt;s:element minOccurs="1" maxOccurs="1" name="OperationResult" nillable="true" type="tns:OperationResult" /&gt;
          &lt;/s:sequence&gt;
        &lt;/s:complexType&gt;
        &lt;s:complexType name="ArrayOfOpenCheckSLUEntry"&gt;
          &lt;s:sequence&gt;
  
            &lt;s:element minOccurs="0" maxOccurs="unbounded" name="OpenCheckSLUEntry" nillable="true" type="tns:OpenCheckSLUEntry" /&gt;
          &lt;/s:sequence&gt;
        &lt;/s:complexType&gt;
        &lt;s:complexType name="OpenCheckSLUEntry"&gt;
          &lt;s:sequence&gt;
            &lt;s:element minOccurs="1" maxOccurs="1" name="emp_status" type="s:short" /&gt;
            &lt;s:element minOccurs="1" maxOccurs="1" name="Autofire_Check" type="s:boolean" /&gt;
            &lt;s:element minOccurs="0" maxOccurs="1" name="id" type="s:string" /&gt;
            &lt;s:element minOccurs="1" maxOccurs="1" name="tbl" type="s:int" /&gt;
  
            &lt;s:element minOccurs="1" maxOccurs="1" name="grp" type="s:int" /&gt;
            &lt;s:element minOccurs="1" maxOccurs="1" name="number" type="s:int" /&gt;
            &lt;s:element minOccurs="0" maxOccurs="1" name="check_open_Time" type="s:string" /&gt;
            &lt;s:element minOccurs="1" maxOccurs="1" name="amt_due_ttl" type="s:decimal" /&gt;
            &lt;s:element minOccurs="1" maxOccurs="1" name="check_empl" type="s:int" /&gt;
            &lt;s:element minOccurs="0" maxOccurs="1" name="guid" type="s:string" /&gt;
          &lt;/s:sequence&gt;
        &lt;/s:complexType&gt;
        &lt;s:element name="AddToCheck"&gt;
  
          &lt;s:complexType&gt;
            &lt;s:sequence&gt;
              &lt;s:element minOccurs="0" maxOccurs="1" name="REQ" type="tns:PostTransactionRequest" /&gt;
              &lt;s:element minOccurs="0" maxOccurs="1" name="Check_Guid" type="s:string" /&gt;
            &lt;/s:sequence&gt;
          &lt;/s:complexType&gt;
        &lt;/s:element&gt;
        &lt;s:element name="AddToCheckResponse"&gt;
          &lt;s:complexType&gt;
  
            &lt;s:sequence&gt;
              &lt;s:element minOccurs="0" maxOccurs="1" name="PostTransactionResponse" type="tns:PostTransactionResponse" /&gt;
            &lt;/s:sequence&gt;
          &lt;/s:complexType&gt;
        &lt;/s:element&gt;
        &lt;s:element name="CalculateTotalsAddToCheck"&gt;
          &lt;s:complexType&gt;
            &lt;s:sequence&gt;
              &lt;s:element minOccurs="0" maxOccurs="1" name="REQ" type="tns:CalculateTotalsRequest" /&gt;
  
              &lt;s:element minOccurs="0" maxOccurs="1" name="CheckGUID" type="s:string" /&gt;
            &lt;/s:sequence&gt;
          &lt;/s:complexType&gt;
        &lt;/s:element&gt;
        &lt;s:element name="CalculateTotalsAddToCheckResponse"&gt;
          &lt;s:complexType&gt;
            &lt;s:sequence&gt;
              &lt;s:element minOccurs="0" maxOccurs="1" name="CalculateTotalsResponse" type="tns:CalculateTotalsExResponse" /&gt;
            &lt;/s:sequence&gt;
  
          &lt;/s:complexType&gt;
        &lt;/s:element&gt;
      &lt;/s:schema&gt;
    &lt;/wsdl:types&gt;
  
    &lt;/wsdl:message&gt;
    &lt;wsdl:message name="PostTransactionSoapIn"&gt;
      &lt;wsdl:part name="parameters" element="tns:PostTransaction" /&gt;
    &lt;/wsdl:message&gt;
    &lt;wsdl:message name="PostTransactionSoapOut"&gt;
      &lt;wsdl:part name="parameters" element="tns:PostTransactionResponse" /&gt;
    &lt;/wsdl:message&gt;
    &lt;wsdl:message name="CalculateTotalsSoapIn"&gt;
      &lt;wsdl:part name="parameters" element="tns:CalculateTotals" /&gt;
  
    &lt;/wsdl:message&gt;
  
    &lt;wsdl:portType name="TransactionServices6Soap"&gt;
      &lt;wsdl:operation name="RawPMSSend"&gt;
        &lt;wsdl:input message="tns:RawPMSSendSoapIn" /&gt;
        &lt;wsdl:output message="tns:RawPMSSendSoapOut" /&gt;
      &lt;/wsdl:operation&gt;
      &lt;wsdl:operation name="PostTransaction"&gt;
        &lt;wsdl:input message="tns:PostTransactionSoapIn" /&gt;
        &lt;wsdl:output message="tns:PostTransactionSoapOut" /&gt;
  
      &lt;/wsdl:operation&gt;
      &lt;wsdl:operation name="CalculateTotals"&gt;
        &lt;wsdl:input message="tns:CalculateTotalsSoapIn" /&gt;
        &lt;wsdl:output message="tns:CalculateTotalsSoapOut" /&gt;
      &lt;/wsdl:operation&gt;
      &lt;wsdl:operation name="CalculateTotalsEx"&gt;
        &lt;wsdl:input message="tns:CalculateTotalsExSoapIn" /&gt;
        &lt;wsdl:output message="tns:CalculateTotalsExSoapOut" /&gt;
      &lt;/wsdl:operation&gt;
  
      &lt;wsdl:operation name="SimInquiry"&gt;
        &lt;wsdl:input message="tns:SimInquirySoapIn" /&gt;
        &lt;wsdl:output message="tns:SimInquirySoapOut" /&gt;
      &lt;/wsdl:operation&gt;
      &lt;wsdl:operation name="GetVersion"&gt;
        &lt;wsdl:input message="tns:GetVersionSoapIn" /&gt;
        &lt;wsdl:output message="tns:GetVersionSoapOut" /&gt;
      &lt;/wsdl:operation&gt;
      &lt;wsdl:operation name="HeartBeat"&gt;
  
        &lt;wsdl:input message="tns:HeartBeatSoapIn" /&gt;
        &lt;wsdl:output message="tns:HeartBeatSoapOut" /&gt;
      &lt;/wsdl:operation&gt;
      &lt;wsdl:operation name="GetOpenCheckList"&gt;
        &lt;wsdl:input message="tns:GetOpenCheckListSoapIn" /&gt;
        &lt;wsdl:output message="tns:GetOpenCheckListSoapOut" /&gt;
      &lt;/wsdl:operation&gt;
      &lt;wsdl:operation name="AddToCheck"&gt;
        &lt;wsdl:input message="tns:AddToCheckSoapIn" /&gt;
  
        &lt;wsdl:output message="tns:AddToCheckSoapOut" /&gt;
      &lt;/wsdl:operation&gt;
      &lt;wsdl:operation name="CalculateTotalsAddToCheck"&gt;
        &lt;wsdl:input message="tns:CalculateTotalsAddToCheckSoapIn" /&gt;
        &lt;wsdl:output message="tns:CalculateTotalsAddToCheckSoapOut" /&gt;
      &lt;/wsdl:operation&gt;
    &lt;/wsdl:portType&gt;
    &lt;wsdl:binding name="TransactionServices6Soap" type="tns:TransactionServices6Soap"&gt;
      &lt;soap:binding transport="http://schemas.xmlsoap.org/soap/http" /&gt;
  
      &lt;wsdl:operation name="RawPMSSend"&gt;
        &lt;soap:operation soapAction="http://www.micros.com/pos/les/TransactionServices/RawPMSSend" style="document" /&gt;
        &lt;wsdl:input&gt;
          &lt;soap:body use="literal" /&gt;
        &lt;/wsdl:input&gt;
        &lt;wsdl:output&gt;
          &lt;soap:body use="literal" /&gt;
        &lt;/wsdl:output&gt;
      &lt;/wsdl:operation&gt;
  
      &lt;wsdl:operation name="PostTransaction"&gt;
        &lt;soap:operation soapAction="http://www.micros.com/pos/les/TransactionServices/PostTransaction" style="document" /&gt;
        &lt;wsdl:input&gt;
          &lt;soap:body use="literal" /&gt;
        &lt;/wsdl:input&gt;
        &lt;wsdl:output&gt;
          &lt;soap:body use="literal" /&gt;
        &lt;/wsdl:output&gt;
      &lt;/wsdl:operation&gt;
  
  
  
      &lt;wsdl:operation name="GetOpenCheckList"&gt;
        &lt;soap:operation soapAction="http://www.micros.com/pos/les/TransactionServices/GetOpenCheckList" style="document" /&gt;
        &lt;wsdl:input&gt;
          &lt;soap:body use="literal" /&gt;
        &lt;/wsdl:input&gt;
        &lt;wsdl:output&gt;
          &lt;soap:body use="literal" /&gt;
        &lt;/wsdl:output&gt;
      &lt;/wsdl:operation&gt;
  
      &lt;wsdl:operation name="AddToCheck"&gt;
        &lt;soap:operation soapAction="http://www.micros.com/pos/les/TransactionServices/AddToCheck" style="document" /&gt;
        &lt;wsdl:input&gt;
          &lt;soap:body use="literal" /&gt;
        &lt;/wsdl:input&gt;
        &lt;wsdl:output&gt;
          &lt;soap:body use="literal" /&gt;
        &lt;/wsdl:output&gt;
      &lt;/wsdl:operation&gt;
  
  
  
    &lt;/wsdl:binding&gt;
    &lt;wsdl:binding name="TransactionServices6Soap12" type="tns:TransactionServices6Soap"&gt;
      &lt;soap12:binding transport="http://schemas.xmlsoap.org/soap/http" /&gt;
      &lt;wsdl:operation name="RawPMSSend"&gt;
        &lt;soap12:operation soapAction="http://www.micros.com/pos/les/TransactionServices/RawPMSSend" style="document" /&gt;
        &lt;wsdl:input&gt;
          &lt;soap12:body use="literal" /&gt;
        &lt;/wsdl:input&gt;
        &lt;wsdl:output&gt;
  
          &lt;soap12:body use="literal" /&gt;
        &lt;/wsdl:output&gt;
      &lt;/wsdl:operation&gt;
      &lt;wsdl:operation name="PostTransaction"&gt;
        &lt;soap12:operation soapAction="http://www.micros.com/pos/les/TransactionServices/PostTransaction" style="document" /&gt;
        &lt;wsdl:input&gt;
          &lt;soap12:body use="literal" /&gt;
        &lt;/wsdl:input&gt;
        &lt;wsdl:output&gt;
  
          &lt;soap12:body use="literal" /&gt;
        &lt;/wsdl:output&gt;
      &lt;/wsdl:operation&gt;
      &lt;wsdl:operation name="CalculateTotals"&gt;
        &lt;soap12:operation soapAction="http://www.micros.com/pos/les/TransactionServices/CalculateTotals" style="document" /&gt;
        &lt;wsdl:input&gt;
          &lt;soap12:body use="literal" /&gt;
        &lt;/wsdl:input&gt;
        &lt;wsdl:output&gt;
          &lt;soap12:body use="literal" /&gt;
        &lt;/wsdl:output&gt;
      &lt;/wsdl:operation&gt;
      &lt;wsdl:operation name="CalculateTotalsEx"&gt;
        &lt;soap12:operation soapAction="http://www.micros.com/pos/les/TransactionServices/CalculateTotalsEx" style="document" /&gt;
        &lt;wsdl:input&gt;
          &lt;soap12:body use="literal" /&gt;
        &lt;/wsdl:input&gt;
        &lt;wsdl:output&gt;
          &lt;soap12:body use="literal" /&gt;
        &lt;/wsdl:output&gt;
      &lt;/wsdl:operation&gt;
      &lt;wsdl:operation name="SimInquiry"&gt;
        &lt;soap12:operation soapAction="http://www.micros.com/pos/les/TransactionServices/SimInquiry" style="document" /&gt;
        &lt;wsdl:input&gt;
          &lt;soap12:body use="literal" /&gt;
        &lt;/wsdl:input&gt;
        &lt;wsdl:output&gt;
  
          &lt;soap12:body use="literal" /&gt;
        &lt;/wsdl:output&gt;
      &lt;/wsdl:operation&gt;
      &lt;wsdl:operation name="GetVersion"&gt;
        &lt;soap12:operation soapAction="http://www.micros.com/pos/les/TransactionServices/GetVersion" style="document" /&gt;
        &lt;wsdl:input&gt;
          &lt;soap12:body use="literal" /&gt;
        &lt;/wsdl:input&gt;
        &lt;wsdl:output&gt;
  
          &lt;soap12:body use="literal" /&gt;
        &lt;/wsdl:output&gt;
      &lt;/wsdl:operation&gt;
      &lt;wsdl:operation name="HeartBeat"&gt;
        &lt;soap12:operation soapAction="http://www.micros.com/pos/les/TransactionServices/HeartBeat" style="document" /&gt;
        &lt;wsdl:input&gt;
          &lt;soap12:body use="literal" /&gt;
        &lt;/wsdl:input&gt;
        &lt;wsdl:output&gt;
  
          &lt;soap12:body use="literal" /&gt;
        &lt;/wsdl:output&gt;
      &lt;/wsdl:operation&gt;
      &lt;wsdl:operation name="GetOpenCheckList"&gt;
        &lt;soap12:operation soapAction="http://www.micros.com/pos/les/TransactionServices/GetOpenCheckList" style="document" /&gt;
        &lt;wsdl:input&gt;
          &lt;soap12:body use="literal" /&gt;
        &lt;/wsdl:input&gt;
        &lt;wsdl:output&gt;
  
          &lt;soap12:body use="literal" /&gt;
        &lt;/wsdl:output&gt;
      &lt;/wsdl:operation&gt;
      &lt;wsdl:operation name="AddToCheck"&gt;
        &lt;soap12:operation soapAction="http://www.micros.com/pos/les/TransactionServices/AddToCheck" style="document" /&gt;
        &lt;wsdl:input&gt;
          &lt;soap12:body use="literal" /&gt;
        &lt;/wsdl:input&gt;
        &lt;wsdl:output&gt;
  
          &lt;soap12:body use="literal" /&gt;
        &lt;/wsdl:output&gt;
      &lt;/wsdl:operation&gt;
      &lt;wsdl:operation name="CalculateTotalsAddToCheck"&gt;
        &lt;soap12:operation soapAction="http://www.micros.com/pos/les/TransactionServices/CalculateTotalsAddToCheck" style="document" /&gt;
        &lt;wsdl:input&gt;
          &lt;soap12:body use="literal" /&gt;
        &lt;/wsdl:input&gt;
        &lt;wsdl:output&gt;
  
          &lt;soap12:body use="literal" /&gt;
        &lt;/wsdl:output&gt;
      &lt;/wsdl:operation&gt;
    &lt;/wsdl:binding&gt;
    &lt;wsdl:service name="TransactionServices6"&gt;
      &lt;wsdl:port name="TransactionServices6Soap" binding="tns:TransactionServices6Soap"&gt;
        &lt;soap:address location="http://localhost:8080/TransactionServices/TransactionServices6.asmx" /&gt;
      &lt;/wsdl:port&gt;
      &lt;wsdl:port name="TransactionServices6Soap12" binding="tns:TransactionServices6Soap12"&gt;
  
        &lt;soap12:address location="http://localhost:8080/TransactionServices/TransactionServices6.asmx" /&gt;
      &lt;/wsdl:port&gt;
    &lt;/wsdl:service&gt;
  &lt;/wsdl:definitions&gt;
  </code></pre>