<?xml version="1.0" encoding="utf-8"?>
<wsdl:definitions xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://www.BargeEx.com/BargeExService" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" targetNamespace="http://www.BargeEx.com/BargeExService" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
  <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">This web service provides an interface which allows trading partners to interact with BargeEx.</wsdl:documentation>
  <wsdl:types>
    <s:schema elementFormDefault="qualified" targetNamespace="http://www.BargeEx.com/BargeExService">
      <s:element name="Test">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="TestValue" type="s:string" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="TestResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="TestResult" type="tns:StandardReturnCode" />
            <s:element minOccurs="0" maxOccurs="1" name="TestValue" type="s:string" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:simpleType name="StandardReturnCode">
        <s:restriction base="s:string">
          <s:enumeration value="UnknownError" />
          <s:enumeration value="Success" />
          <s:enumeration value="FailedAuthentication" />
        </s:restriction>
      </s:simpleType>
      <s:element name="TradingPartnerCredentials" type="tns:TradingPartnerCredentials" />
      <s:complexType name="TradingPartnerCredentials">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="1" name="UserName" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="Password" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="TradingPartnerNumber" type="s:string" />
        </s:sequence>
        <s:anyAttribute />
      </s:complexType>
      <s:element name="GetDataMappings">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="DataMapType" type="tns:DataMapType" />
            <s:element minOccurs="0" maxOccurs="1" name="MasterValue" type="s:string" />
            <s:element minOccurs="0" maxOccurs="1" name="CustomValue" type="s:string" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:simpleType name="DataMapType">
        <s:restriction base="s:string">
          <s:enumeration value="Barge" />
          <s:enumeration value="Boat" />
          <s:enumeration value="Commodity" />
          <s:enumeration value="Location" />
          <s:enumeration value="Ship" />
          <s:enumeration value="Waterway" />
        </s:restriction>
      </s:simpleType>
      <s:element name="GetDataMappingsResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="GetDataMappingsResult" type="tns:StandardReturnCode" />
            <s:element minOccurs="0" maxOccurs="1" name="DataMappings" type="tns:ArrayOfDataMapPair" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:complexType name="ArrayOfDataMapPair">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="unbounded" name="DataMapPair" nillable="true" type="tns:DataMapPair" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="DataMapPair">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="1" name="MasterValue" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="CustomValue" type="s:string" />
        </s:sequence>
      </s:complexType>
      <s:element name="UpdateDataMapping">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="DataMapType" type="tns:DataMapType" />
            <s:element minOccurs="0" maxOccurs="1" name="ValueToMap" type="s:string" />
            <s:element minOccurs="0" maxOccurs="1" name="CustomValue" type="s:string" />
            <s:element minOccurs="0" maxOccurs="1" name="SenderTradingPartnerNumber" type="s:string" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="UpdateDataMappingResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="UpdateDataMappingResult" type="tns:UpdateDataMappingReturnCode" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:simpleType name="UpdateDataMappingReturnCode">
        <s:restriction base="s:string">
          <s:enumeration value="UnknownError" />
          <s:enumeration value="Success" />
          <s:enumeration value="FailedAuthentication" />
          <s:enumeration value="MasterValueRecordNotFound" />
          <s:enumeration value="DuplicateCustomValue" />
          <s:enumeration value="ValueToMapTooLong" />
          <s:enumeration value="CustomValueTooLong" />
          <s:enumeration value="InvalidSenderTradingPartnerNumber" />
        </s:restriction>
      </s:simpleType>
      <s:element name="SendDocument">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="Document">
              <s:complexType mixed="true">
                <s:sequence>
                  <s:any />
                </s:sequence>
              </s:complexType>
            </s:element>
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="SendDocumentResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="SendDocumentResult" type="tns:SendDocumentReturnCode" />
            <s:element minOccurs="0" maxOccurs="1" name="ErrorDetails" type="s:string" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:simpleType name="SendDocumentReturnCode">
        <s:restriction base="s:string">
          <s:enumeration value="UnknownError" />
          <s:enumeration value="Success" />
          <s:enumeration value="FailedAuthentication" />
          <s:enumeration value="UnauthorizedTradingPair" />
          <s:enumeration value="FailedSchemaValidation" />
          <s:enumeration value="UnsupportedNamespace" />
          <s:enumeration value="DuplicateInstanceIdentifier" />
        </s:restriction>
      </s:simpleType>
      <s:element name="GetNextDocument">
        <s:complexType />
      </s:element>
      <s:element name="GetNextDocumentResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="GetNextDocumentResult" type="tns:GetNextDocumentReturnCode" />
            <s:element minOccurs="0" maxOccurs="1" name="Document">
              <s:complexType mixed="true">
                <s:sequence>
                  <s:any />
                </s:sequence>
              </s:complexType>
            </s:element>
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:simpleType name="GetNextDocumentReturnCode">
        <s:restriction base="s:string">
          <s:enumeration value="UnknownError" />
          <s:enumeration value="Success" />
          <s:enumeration value="FailedAuthentication" />
          <s:enumeration value="NoMoreDocuments" />
        </s:restriction>
      </s:simpleType>
      <s:element name="AcknowledgeDocument">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="SenderTradingPartnerNumber" type="s:string" />
            <s:element minOccurs="0" maxOccurs="1" name="InstanceIdentifier" type="s:string" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="AcknowledgeDocumentResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="AcknowledgeDocumentResult" type="tns:StandardReturnCode" />
          </s:sequence>
        </s:complexType>
      </s:element>
    </s:schema>
  </wsdl:types>
  <wsdl:message name="TestSoapIn">
    <wsdl:part name="parameters" element="tns:Test" />
  </wsdl:message>
  <wsdl:message name="TestSoapOut">
    <wsdl:part name="parameters" element="tns:TestResponse" />
  </wsdl:message>
  <wsdl:message name="TestTradingPartnerCredentials">
    <wsdl:part name="TradingPartnerCredentials" element="tns:TradingPartnerCredentials" />
  </wsdl:message>
  <wsdl:message name="GetDataMappingsSoapIn">
    <wsdl:part name="parameters" element="tns:GetDataMappings" />
  </wsdl:message>
  <wsdl:message name="GetDataMappingsSoapOut">
    <wsdl:part name="parameters" element="tns:GetDataMappingsResponse" />
  </wsdl:message>
  <wsdl:message name="GetDataMappingsTradingPartnerCredentials">
    <wsdl:part name="TradingPartnerCredentials" element="tns:TradingPartnerCredentials" />
  </wsdl:message>
  <wsdl:message name="UpdateDataMappingSoapIn">
    <wsdl:part name="parameters" element="tns:UpdateDataMapping" />
  </wsdl:message>
  <wsdl:message name="UpdateDataMappingSoapOut">
    <wsdl:part name="parameters" element="tns:UpdateDataMappingResponse" />
  </wsdl:message>
  <wsdl:message name="UpdateDataMappingTradingPartnerCredentials">
    <wsdl:part name="TradingPartnerCredentials" element="tns:TradingPartnerCredentials" />
  </wsdl:message>
  <wsdl:message name="SendDocumentSoapIn">
    <wsdl:part name="parameters" element="tns:SendDocument" />
  </wsdl:message>
  <wsdl:message name="SendDocumentSoapOut">
    <wsdl:part name="parameters" element="tns:SendDocumentResponse" />
  </wsdl:message>
  <wsdl:message name="SendDocumentTradingPartnerCredentials">
    <wsdl:part name="TradingPartnerCredentials" element="tns:TradingPartnerCredentials" />
  </wsdl:message>
  <wsdl:message name="GetNextDocumentSoapIn">
    <wsdl:part name="parameters" element="tns:GetNextDocument" />
  </wsdl:message>
  <wsdl:message name="GetNextDocumentSoapOut">
    <wsdl:part name="parameters" element="tns:GetNextDocumentResponse" />
  </wsdl:message>
  <wsdl:message name="GetNextDocumentTradingPartnerCredentials">
    <wsdl:part name="TradingPartnerCredentials" element="tns:TradingPartnerCredentials" />
  </wsdl:message>
  <wsdl:message name="AcknowledgeDocumentSoapIn">
    <wsdl:part name="parameters" element="tns:AcknowledgeDocument" />
  </wsdl:message>
  <wsdl:message name="AcknowledgeDocumentSoapOut">
    <wsdl:part name="parameters" element="tns:AcknowledgeDocumentResponse" />
  </wsdl:message>
  <wsdl:message name="AcknowledgeDocumentTradingPartnerCredentials">
    <wsdl:part name="TradingPartnerCredentials" element="tns:TradingPartnerCredentials" />
  </wsdl:message>
  <wsdl:portType name="BargeExServiceSoap">
    <wsdl:operation name="Test">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">This method can be used to verify a BargeEx web services method can be successfully called. It will take an input string, reverse it, and return it back to the caller.</wsdl:documentation>
      <wsdl:input message="tns:TestSoapIn" />
      <wsdl:output message="tns:TestSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="GetDataMappings">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">This method returns current data mapping information for the indicated trading partner and data map type. All Master values will be returned, even if they do not have a Custom value defined.  An optional Master value or Custom value can be specified to limit the results.</wsdl:documentation>
      <wsdl:input message="tns:GetDataMappingsSoapIn" />
      <wsdl:output message="tns:GetDataMappingsSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="UpdateDataMapping">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">This method either modifies the Custom value that maps to a particular Master value record or creates a temporary custom data mapping.</wsdl:documentation>
      <wsdl:input message="tns:UpdateDataMappingSoapIn" />
      <wsdl:output message="tns:UpdateDataMappingSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="SendDocument">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">This method sends a document to a trading partner.</wsdl:documentation>
      <wsdl:input message="tns:SendDocumentSoapIn" />
      <wsdl:output message="tns:SendDocumentSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="GetNextDocument">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">This method retrieves the oldest document that is ready for pickup or returns NoMoreDocuments if no documents are ready for pickup.</wsdl:documentation>
      <wsdl:input message="tns:GetNextDocumentSoapIn" />
      <wsdl:output message="tns:GetNextDocumentSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="AcknowledgeDocument">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">This method is used to indicate the document returned by the GetNextDocument method has been successfully retrieved by the trading partner. If it is not called, the GetNextDocument method will return the same document every time it is called.</wsdl:documentation>
      <wsdl:input message="tns:AcknowledgeDocumentSoapIn" />
      <wsdl:output message="tns:AcknowledgeDocumentSoapOut" />
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="BargeExServiceSoap" type="tns:BargeExServiceSoap">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
    <wsdl:operation name="Test">
      <soap:operation soapAction="http://www.BargeEx.com/BargeExService/Test" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
        <soap:header message="tns:TestTradingPartnerCredentials" part="TradingPartnerCredentials" use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="GetDataMappings">
      <soap:operation soapAction="http://www.BargeEx.com/BargeExService/GetDataMappings" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
        <soap:header message="tns:GetDataMappingsTradingPartnerCredentials" part="TradingPartnerCredentials" use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="UpdateDataMapping">
      <soap:operation soapAction="http://www.BargeEx.com/BargeExService/UpdateDataMapping" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
        <soap:header message="tns:UpdateDataMappingTradingPartnerCredentials" part="TradingPartnerCredentials" use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="SendDocument">
      <soap:operation soapAction="http://www.BargeEx.com/BargeExService/SendDocument" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
        <soap:header message="tns:SendDocumentTradingPartnerCredentials" part="TradingPartnerCredentials" use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="GetNextDocument">
      <soap:operation soapAction="http://www.BargeEx.com/BargeExService/GetNextDocument" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
        <soap:header message="tns:GetNextDocumentTradingPartnerCredentials" part="TradingPartnerCredentials" use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="AcknowledgeDocument">
      <soap:operation soapAction="http://www.BargeEx.com/BargeExService/AcknowledgeDocument" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
        <soap:header message="tns:AcknowledgeDocumentTradingPartnerCredentials" part="TradingPartnerCredentials" use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:binding name="BargeExServiceSoap12" type="tns:BargeExServiceSoap">
    <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" />
    <wsdl:operation name="Test">
      <soap12:operation soapAction="http://www.BargeEx.com/BargeExService/Test" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
        <soap12:header message="tns:TestTradingPartnerCredentials" part="TradingPartnerCredentials" use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="GetDataMappings">
      <soap12:operation soapAction="http://www.BargeEx.com/BargeExService/GetDataMappings" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
        <soap12:header message="tns:GetDataMappingsTradingPartnerCredentials" part="TradingPartnerCredentials" use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="UpdateDataMapping">
      <soap12:operation soapAction="http://www.BargeEx.com/BargeExService/UpdateDataMapping" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
        <soap12:header message="tns:UpdateDataMappingTradingPartnerCredentials" part="TradingPartnerCredentials" use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="SendDocument">
      <soap12:operation soapAction="http://www.BargeEx.com/BargeExService/SendDocument" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
        <soap12:header message="tns:SendDocumentTradingPartnerCredentials" part="TradingPartnerCredentials" use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="GetNextDocument">
      <soap12:operation soapAction="http://www.BargeEx.com/BargeExService/GetNextDocument" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
        <soap12:header message="tns:GetNextDocumentTradingPartnerCredentials" part="TradingPartnerCredentials" use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="AcknowledgeDocument">
      <soap12:operation soapAction="http://www.BargeEx.com/BargeExService/AcknowledgeDocument" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
        <soap12:header message="tns:AcknowledgeDocumentTradingPartnerCredentials" part="TradingPartnerCredentials" use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="BargeExService">
    <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">This web service provides an interface which allows trading partners to interact with BargeEx.</wsdl:documentation>
    <wsdl:port name="BargeExServiceSoap" binding="tns:BargeExServiceSoap">
      <soap:address location="https://www.bargeex.com/3.0/Production/BargeExService.asmx" />
    </wsdl:port>
    <wsdl:port name="BargeExServiceSoap12" binding="tns:BargeExServiceSoap12">
      <soap12:address location="https://www.bargeex.com/3.0/Production/BargeExService.asmx" />
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>