<?xml version="1.0" encoding="UTF-8"?>
<!--

    Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved.

    This program and the accompanying materials are made available under the
    terms of the Eclipse Public License v. 2.0, which is available at
    http://www.eclipse.org/legal/epl-2.0.

    This Source Code may also be made available under the following Secondary
    Licenses when the conditions for such availability set forth in the
    Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
    version 2 with the GNU Classpath Exception, which is available at
    https://www.gnu.org/software/classpath/license.html.

    SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0

-->

<java-wsdl-mapping version="1.1" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee    http://www.ibm.com/webservices/xsd/j2ee_jaxrpc_mapping_1_1.xsd">
  <package-mapping>
    <package-type>ns2package</package-type>
    <namespaceURI>http://ns2package.org/ns2package.wsdl</namespaceURI>
  </package-mapping>
  <java-xml-type-mapping>
    <class-type>ns2package.RepeatedWildcardType</class-type>
    <root-type-qname xmlns:typeNS="http://ns2package.org/secondimport/types">typeNS:RepeatedWildcardType</root-type-qname>
    <qname-scope>element</qname-scope>
    <variable-mapping>
      <java-variable-name>foo</java-variable-name>
      <xml-element-name>foo</xml-element-name>
    </variable-mapping>
    <variable-mapping>
      <java-variable-name>bar</java-variable-name>
      <xml-element-name>bar</xml-element-name>
    </variable-mapping>
  </java-xml-type-mapping>
  <java-xml-type-mapping>
    <class-type>ns2package.Test1RequestType</class-type>
    <root-type-qname xmlns:typeNS="http://ns2package.org/secondimport/types">typeNS:Test1RequestType</root-type-qname>
    <qname-scope>element</qname-scope>
    <variable-mapping>
      <java-variable-name>a</java-variable-name>
      <xml-element-name>a</xml-element-name>
    </variable-mapping>
    <variable-mapping>
      <java-variable-name>c</java-variable-name>
      <xml-element-name>c</xml-element-name>
    </variable-mapping>
    <variable-mapping>
      <java-variable-name>d</java-variable-name>
      <xml-element-name>d</xml-element-name>
    </variable-mapping>
  </java-xml-type-mapping>
  <java-xml-type-mapping>
    <class-type>ns2package.Test1ResponseType</class-type>
    <root-type-qname xmlns:typeNS="http://ns2package.org/secondimport/types">typeNS:Test1ResponseType</root-type-qname>
    <qname-scope>element</qname-scope>
    <variable-mapping>
      <java-variable-name>a</java-variable-name>
      <xml-element-name>a</xml-element-name>
    </variable-mapping>
  </java-xml-type-mapping>
  <java-xml-type-mapping>
    <class-type>ns2package.SingleWildcardType</class-type>
    <root-type-qname xmlns:typeNS="http://ns2package.org/secondimport/types">typeNS:SingleWildcardType</root-type-qname>
    <qname-scope>element</qname-scope>
    <variable-mapping>
      <java-variable-name>foo</java-variable-name>
      <xml-element-name>foo</xml-element-name>
    </variable-mapping>
    <variable-mapping>
      <java-variable-name>bar</java-variable-name>
      <xml-element-name>bar</xml-element-name>
    </variable-mapping>
    <variable-mapping>
      <java-variable-name>voo</java-variable-name>
      <xml-element-name>voo</xml-element-name>
    </variable-mapping>
  </java-xml-type-mapping>
  <service-interface-mapping>
    <service-interface>ns2package.TestService</service-interface>
    <wsdl-service-name xmlns:serviceNS="http://ns2package.org/ns2package.wsdl">serviceNS:TestService</wsdl-service-name>
    <port-mapping>
      <port-name>TestPort</port-name>
      <java-port-name>TestPort</java-port-name>
    </port-mapping>
  </service-interface-mapping>
  <service-endpoint-interface-mapping>
    <service-endpoint-interface>ns2package.Test</service-endpoint-interface>
    <wsdl-port-type xmlns:portTypeNS="http://ns2package.org/firstimport/FirstImport.wsdl">portTypeNS:Test</wsdl-port-type>
    <wsdl-binding xmlns:bindingNS="http://ns2package.org/firstimport/FirstImport.wsdl">bindingNS:TestBinding</wsdl-binding>
    <service-endpoint-method-mapping>
      <java-method-name>test1</java-method-name>
      <wsdl-operation>test1</wsdl-operation>
      <wrapped-element/>
      <method-param-parts-mapping>
        <param-position>0</param-position>
        <param-type>int</param-type>
        <wsdl-message-mapping>
          <wsdl-message xmlns:wsdlMsgNS="http://ns2package.org/firstimport/FirstImport.wsdl">wsdlMsgNS:Test1Request</wsdl-message>
          <wsdl-message-part-name>a</wsdl-message-part-name>
          <parameter-mode>IN</parameter-mode>
        </wsdl-message-mapping>
      </method-param-parts-mapping>
      <method-param-parts-mapping>
        <param-position>1</param-position>
        <param-type>ns2package.SingleWildcardType</param-type>
        <wsdl-message-mapping>
          <wsdl-message xmlns:wsdlMsgNS="http://ns2package.org/firstimport/FirstImport.wsdl">wsdlMsgNS:Test1Request</wsdl-message>
          <wsdl-message-part-name>c</wsdl-message-part-name>
          <parameter-mode>IN</parameter-mode>
        </wsdl-message-mapping>
      </method-param-parts-mapping>
      <method-param-parts-mapping>
        <param-position>2</param-position>
        <param-type>ns2package.RepeatedWildcardType</param-type>
        <wsdl-message-mapping>
          <wsdl-message xmlns:wsdlMsgNS="http://ns2package.org/firstimport/FirstImport.wsdl">wsdlMsgNS:Test1Request</wsdl-message>
          <wsdl-message-part-name>d</wsdl-message-part-name>
          <parameter-mode>IN</parameter-mode>
        </wsdl-message-mapping>
      </method-param-parts-mapping>
      <wsdl-return-value-mapping>
        <method-return-value>int</method-return-value>
        <wsdl-message xmlns:wsdlMsgNS="http://ns2package.org/firstimport/FirstImport.wsdl">wsdlMsgNS:Test1Response</wsdl-message>
        <wsdl-message-part-name>a</wsdl-message-part-name>
      </wsdl-return-value-mapping>
    </service-endpoint-method-mapping>
  </service-endpoint-interface-mapping>
</java-wsdl-mapping>
