Included in SSIS PowerPack

SSIS XML Source

Turn XML files, SOAP responses, and REST API XML into clean tabular data for your SSIS data flow.

Read single or multiple XML files, SOAP or REST web services, or XML stored in an SSIS variable. Extract nested nodes with a path expression, configure authentication and pagination, and send rows to SQL Server or another SSIS destination, all without a script component.

The trial includes XML Source and every other PowerPack component

SSIS XML Source reading XML from a web URL with a path filter
XML files, SOAP / REST APIs & SQL Server

Trusted by data teams worldwide

MicrosoftIBMOracleDell TechnologiesHPCiscoAT&TVerizonDHLFedExUPSWalmart

Also rated on Capterra★★★★★ , Trustpilot★★★★★ and BBBA+ — see why teams trust ZappySys

At a glance

What XML Source can do

XML Source reads XML files, SOAP or REST web service responses, or an XML string, then extracts the nodes you need with a path expression so you can load SQL Server like any other SSIS source, with no script component needed.

Files & wildcards

Read one XML file or many files with a similar structure in a single pass.

  • Wildcard paths such as c:\source\store_*.xml, with an option to include sub folders
  • Multi-path mode reads several paths or URLs (new line or :: separated) as one dataset
  • Optional __FilePath and __FileName output columns for local files
  • Compressed input: GZip, Zip, and TarGZip

See the access modes

SOAP & REST web services

Read XML from any SOAP or REST API using methods such as GET and POST.

  • Set URL, HTTP method, headers, and request body
  • Paste the SOAP URL, body, and headers (e.g. SOAPAction) copied from SoapUI
  • Content types such as text/xml and application/xml

SOAP web service guide

Path expressions

Extract data from any level, such as Orders nested under a Customer node.

  • Expressions start at $; use [*] for all records
  • Slice arrays: first, top N, or a range of rows
  • Include parent columns on every child row

See the filter example

Arrays, flattening & pivot

Control how repeating elements become rows or columns.

  • Treat named elements as arrays even when they appear only once
  • Array flattening (child items as columns)
  • Pivot mode (columns to rows)

See the array option

OAuth 1.0 & 2.0

The security standard adopted by major cloud services.

OAuth articles

Basic, token & HMAC

Call APIs with Basic authorization (UserID / Password) or a dynamic token.

  • HTTP Basic and dynamic token
  • HMAC (SHA256 / SHA512 / MD5)
  • Custom headers, cookies, and proxy
  • HTTPS with TLS 1.2 (SSIS 2014 or higher) or TLS 1.3

Dynamic token guide

REST API pagination

Loop through multiple requests until the API has no more pages.

  • Page by response attribute, URL parameter, URL path, or POST data
  • Stop on a status code, response size, or error string
  • Cancel infinite pagination on UI save

REST API pagination guide

Large files & error handling

Large-file support (3 million rows in 3 mins in the published test).

  • Performance mode (memory optimized) for out-of-memory errors
  • Continue on specific response status codes
  • Redirect bad records to the error output, optionally with the response body

Large-file guide

SQL Server 2012–2025 & ADF

Runs in your environment on SQL Server 2012–2025 and Azure-SSIS.

  • SQL Server 2025, 2022, 2019, 2017, 2016, 2014, 2012 (32/64-bit)
  • Azure Data Factory (SSIS IR)
  • Design packages in Visual Studio 2017, 2019, 2022, or 2026
  • Windows only (64-bit OS): Windows 7–11 or Windows Server 2012–2025

Compatibility and requirements

See all features
  • Read XML data from any SOAP/REST API web service using methods such as GET/POST
  • Read XML data from single or multiple XML files (wildcards allowed, e.g. c:\data\*.xml)
  • Fast performance with large files (see how we processed 3 million rows in 3 mins)
  • Path expressions to extract data from any level (e.g. Orders nested under a Customer node)
  • Custom headers for SOAP or REST web services
  • Support for OAuth 1.0 and 2.0, the security standard adopted by major cloud services
  • Call APIs using Dynamic Token authentication or Basic authorization (i.e. UserID / Password)
  • Loop through multiple files using a wildcard pattern (e.g. *.xml)
  • REST API pagination to loop through multiple requests (explained here and here)
  • Support for HMAC authentication (SHA256, SHA512, MD5)
  • Support for passing cookies
  • Option to cancel infinite pagination when saving in the UI
  • Option to parse output from a command-line standard output stream (e.g. cmd:>curl -k http://httpbin.org/get)
  • Continue on error for specific response status codes (Error Handling tab)
  • Support for SQL Server 2025, 2022, 2019, 2017, 2016, 2014, 2012 (32/64-bit) and Azure Data Factory

Runs in your environment ·

SQL Server 2012–2025

and Azure-SSIS · Read the FAQ

Four access modes

One component for XML files, web services, and XML in a variable.

Pick how the document arrives. Preview rows in the UI, then map columns to SQL like a normal data flow.

Load XML files into a SQL table, including wildcards.

Set Access Mode to File path or web URL and point at one file or a pattern such as c:\source\store_*.xml.

  • Single file or many files without a Foreach loop
  • Optionally include sub folders
  • Files should share a similar structure
SSIS XML Source reading single or multiple XML files with a wildcard pattern in the path

Inside the UI

Key settings, as they appear in SSDT.

Real screens from the XML Source help and SOAP guide. Step through URLs, SOAP, files, arrays, and errors, or open any shot at full size.

Read XML from a web URL

Set Access Mode to File path or web URL, paste the URL, then enter a path such as $.CATALOG.PLANT[*]. Click Preview to confirm the rows before you map a destination.

Filter example

Point at the nodes you want. Leave the rest behind.

Expressions start at $. Use a dot to separate levels, brackets for arrays, and * for all records. Below: the sample XML from the help file, the expression, and the output rows.

  1. Input XML

    Two customers, each with two orders (shortened).

    sample.xml

    <Root Ver="1">
      <DocInfo>
        <Date>2015-01-01</Date>
        ...
      </DocInfo>
      <Customer CustId="1">
        <Order OrderId="1000">
          <OrderDate>2005-02-01T10:00:09</OrderDate>
          <Item ProdId="101">...</Item>
        </Order>
        <Order OrderId="1001">...</Order>
      </Customer>
      <Customer CustId="2">
        <Order OrderId="2000">...</Order>
        <Order OrderId="2001">...</Order>
      </Customer>
    </Root>
  2. Set the path filter

    Filter$.Root.Customer[*].Order[*]

    Each Order under every Customer becomes one row.

    Include Parent Columns: On Adds parent values such as P_Root_DocInfo_Date to each order row.

  3. Output rows for your data flow

    Output rows from the sample XML (selected columns)
    P_Root_DocInfo_Date parent @OrderId OrderDate
    2015-01-01 1000 2005-02-01T10:00:09
    2015-01-01 1001 2005-04-01T21:59:20
    2015-01-01 2000 2005-02-01T21:59:20
    2015-01-01 2001 2005-01-01T21:59:20

    Selected columns shown. Connect these rows to SQL Server or another SSIS destination.

Other expressions on the same input

Expression What you get
$ (or blank) Get all records
$.Root.Customer[*] Get all customers
$.Root.Customer[*].@CustId Only the customer ID of each customer
$.Root.Customer[*].Order[:3] Top 3 orders for each customer
$.Root.Customer[*].Order[2] 3rd order for each customer

Sample and expressions from the XML Source help file. Need more than one output? Pair XML Source with XML Parser Transform.

Compatibility and requirements

Designed to stay inside your SSIS runtime.

  • SQL Server 2012 through 2025, 32-bit and 64-bit
  • Windows only, 64-bit OS required. SQL Server Express and Web editions do not include SSIS
  • Azure Data Factory SSIS Integration Runtime
  • Self-hosted: credentials and data stay in your environment (external API calls still reach that service)
  • Fully functional 30-day trial of SSIS PowerPack

FAQ

Questions teams ask before they drop XML Source on the canvas.

What XML inputs does XML Source support?

XML from a local file (including wildcards), a REST or SOAP web URL, a direct XML string, or a path, URL, or XML string stored in an SSIS variable. Command-line / stdout XML input is also available with cmd:>.

How do I read many XML files without a loop?

Use a wildcard path such as c:\source\store_*.xml. Optional __FileName and __FilePath output columns identify which local file produced each row. See file path mode above.

Can it call a SOAP web service?

Yes. Use POST, paste the SOAP request body, and add the Content-Type and SOAPAction headers. The SOAP web service guide walks through it with SoapUI.

A repeating element appears only once. How do I keep it as an array?

By default an element is treated as an array only when it repeats at the same level. List its name on the Array Handling tab (ElementsToTreatAsArray) to always treat it as an array.

Can it page through a REST API?

Yes. Page by response attribute, URL parameter, URL path, or POST data, and stop on a status code, response size, or error string. Read the REST API pagination guide.

Which SQL Server versions can I run it on?

SQL Server 2025, 2022, 2019, 2017, 2016, 2014, and 2012 (32- and 64-bit), plus Azure Data Factory with an SSIS Integration Runtime (packages must target SQL Server 2017). See Compatibility and requirements.

Where is the full property reference?

Open the XML Source help file for properties, path expressions, and error handling. System requirements are on the installation page.

Independent ratings

Trusted by data teams, recognized by the industry

See why teams trust ZappySys (opens in new tab)

What customers say

  • Customer story

    ZappySys has been a fantastic way to bring our small company into the world of APIs, automation, and systems integration by providing tools within an easy-to-use framework.

    Ben KingeryOxspring Paul
  • Customer story

    At Synchronous Customers, we need to connect various types of data quickly. The super handy ZappySys connectors and great documentation let us do it without writing a lot of code.

    Joel ConnerSynchronous Customers
  • Customer story

    I looked everywhere for a product that could integrate to a web portal backend API via JSON. After many attempts, ZappySys was the only solution that gave me all the options I needed in a quick & clean interface within SSIS.

    Maz DunicSave the Children Australia
  • Customer story

    We have worked with the ZappySys support team for over a year and have consistently found them extremely helpful — resourceful and creative in offering multiple solutions to our challenges.

    Senthil SekarPublicis Groupe
  • Trustpilot

    I’ve been using ZappySys for over 6 years — it makes development faster, and I introduced it to my current company.

    Anna JohnsonTrustpilot review
  • Trustpilot

    I’m integrating data from APIs into database tables with SSIS/ZappySys — very easy to use, fast, and highly efficient without writing complex code.

    Carolyn S.Trustpilot review
  • Customer quote

    I submitted a support request and had someone logged in and fixing things within 2 hours.

    Barry Wilson
  • Customer quote

    The REST source is very powerful — the only thing I found I could use after trying components from major vendors.

    Jes KirkupKTC
  • Customer quote

    Whenever we run into an obstacle, ZappySys has a solution for us. We are so glad that we chose ZappySys PowerPack.

    Kevin ChenBerricle

Start your free trial today

Install SSIS PowerPack and drag XML Source onto a Data Flow.

Preview real data before you map a destination, with no script component required.

  • Data Flow Source in SSISXML Source appears in the toolbox after you install PowerPack.
  • Fully functional 30-day trialSSIS PowerPack, running in your environment.
  • Live supportHelp during your trial and after purchase.

New purchases may be eligible for refund review within 30 days. See the refund policy.

Talk to an engineer before or during your trial.

1 / 9