> ## Documentation Index
> Fetch the complete documentation index at: https://docs.apinizer.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Multiple Schema Port WSDL

> You can create SOAP Web Service. You can upload WSDL files containing multiple schemas and multiple ports

## Uploading WSDL as File

A common problem in SOAP services is that even though the WSDL is accessible via an https address, the XSD files inside it remain accessible via an http address, which causes file resolution problems.

<Warning>
  In cases where such SOAP Services need to be added to Apinizer, especially when there is no option to fix the service definition file, the file upload feature enables us to add the service to Apinizer.
</Warning>

<Info>
  If the method of defining the service to Apinizer with the WSDL file upload option is selected, there are points to be noted that differ from other upload options.
</Info>

<AccordionGroup>
  <Accordion title="Identifying and Downloading XSD Files">
    Due to WSDL structure, it can reference different XSD files, and these references also need to be uploaded to the system.

    <Steps>
      <Step title="Find XSD Files">
        It is necessary to find which XSD files need to be uploaded together with the WSDL.
      </Step>

      <Step title="Download XSD Files">
        The contents of these XSD files need to be downloaded as files.
      </Step>

      <Step title="Update WSDL">
        After the files are downloaded, each one's location within the WSDL must be updated.

        **Updating WSDL alone may not be sufficient, if there are places in XSD that reference another XSD, these must also be updated.**
      </Step>
    </Steps>

    **Updating WSDL alone may not be sufficient, if there are places in XSD that reference another XSD, these must also be updated.**

    **Visual showing the updating of locations within WSDL is shown below:**

    <img src="https://mintcdn.com/apinizer/Ku5drz7BLIhaC8K7/images/develop/api-proxy-olusturma/wsdl-guncelleme.png?fit=max&auto=format&n=Ku5drz7BLIhaC8K7&q=85&s=ad4bdcb06741330a26b156b04be63aa2" alt="WSDL update" width="800" data-path="images/develop/api-proxy-olusturma/wsdl-guncelleme.png" />
  </Accordion>

  <Accordion title="Preparing Files as ZIP">
    For XSD files shown as references to be uploaded to the system together with the WSDL, Apinizer requires the files to be "zipped" together.

    <Warning>
      For files to be zipped, all files must be at the same file path level. If files are placed in a folder and the folder is zipped, the WSDL cannot be parsed properly.
    </Warning>

    **Example visual showing file directory paths is shown below:**

    <img src="https://mintcdn.com/apinizer/brWu4H3JyK0OgbJV/images/develop/api-proxy-olusturma/dosya-dizin-yollari.png?fit=max&auto=format&n=brWu4H3JyK0OgbJV&q=85&s=553a01a9f9bbc0bb619e7b7533ff056b" alt="File directory paths" width="600" data-path="images/develop/api-proxy-olusturma/dosya-dizin-yollari.png" />

    The visual of these files in zipped form is as follows:

    <img src="https://mintcdn.com/apinizer/Ku5drz7BLIhaC8K7/images/develop/api-proxy-olusturma/zip-dosyalari.png?fit=max&auto=format&n=Ku5drz7BLIhaC8K7&q=85&s=d73df1799d5aed0ddaaac21b25747e63" alt="ZIP files" width="600" data-path="images/develop/api-proxy-olusturma/zip-dosyalari.png" />
  </Accordion>
</AccordionGroup>

## Multiple Ports in SOAP Service

SOAP services can have multiple ports as shown in the following visual.

<img src="https://mintcdn.com/apinizer/brWu4H3JyK0OgbJV/images/develop/api-proxy-olusturma/coklu-port.png?fit=max&auto=format&n=brWu4H3JyK0OgbJV&q=85&s=7df6c341f3d83d9dc7f369a301f43901" alt="Multiple ports" width="800" data-path="images/develop/api-proxy-olusturma/coklu-port.png" />

<Info>
  In this case, Apinizer uses the first of these ports.
</Info>

<Warning>
  If API Proxy is also desired to be created for other ports, for each port for which an API Proxy is desired to be created, the service's definition file (WSDL) must be updated so that only the relevant port remains in it and uploaded to Apinizer.
</Warning>

<Steps>
  <Step title="Edit WSDL">
    Create a separate WSDL file for each port. Edit the WSDL so that only the relevant port remains in it.
  </Step>

  <Step title="Upload WSDL">
    Upload the edited WSDL file to Apinizer.
  </Step>

  <Step title="Create API Proxy">
    Create a separate API Proxy for each port.
  </Step>
</Steps>
