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
- Reads very large XML files
- Runs in your environment
- Also runs in Azure Data Factory
- OAuth, paging, TLS 1.2

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
__FilePathand__FileNameoutput columns for local files - Compressed input: GZip, Zip, and TarGZip
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/xmlandapplication/xml
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
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)
OAuth 1.0 & 2.0
The security standard adopted by major cloud services.
- OAuth 1.0 and 2.0 through the OAuth Connection Manager
- Example: QuickBooks Online
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
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
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
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
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
SQL Server 2012–2025
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

Call a REST or SOAP service and land XML as rows.
Paste the URL, then set the HTTP method, headers, and body. For SOAP, copy the request body and headers from SoapUI and paste them into the Headers grid with Raw Edit.
- GET, POST, PUT, and DELETE methods
- Headers such as
Content-Type: text/xml;charset=UTF-8andSOAPAction - Pagination, OAuth, Basic auth, HMAC, cookies, or a proxy when needed

Parse an XML string typed into the editor.
Paste XML, or pick one of the built-in Example links, then set the path filter and preview the rows before you run the package.
- Direct value (XML typed in the editor)
- Built-in Example links load sample XML quickly
- Optional command-line / stdout XML input with
cmd:>

Read the path, URL, or XML from an SSIS variable.
Choose a variable that holds the XML file path or web URL to build a dynamic path, or a variable that holds the XML string itself.
- Path or URL from a variable
- XML string from a variable
- Same filter, preview, and column editor as other modes

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.
-
Input XML
Two customers, each with two orders (shortened).
<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> -
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_Dateto each order row. -
Output rows for your data flow
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.
Articles
Worked examples that use XML Source.
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.
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.
Open Help FileBrowse all SSIS PowerPack tasks
New purchases may be eligible for refund review within 30 days. See the refund policy.
Talk to an engineer before or during your trial.