Introduction
Wolfgang.Etl.Xml provides extractors and loaders for reading and writing XML files, built on Wolfgang.Etl.Abstractions.
Overview
This library implements the Extract-Transform-Load (ETL) pattern for XML data. It provides four components that plug into any Wolfgang.Etl pipeline:
- XmlSingleStreamExtractor<T> — Reads multiple items from a single XML document with a root element wrapper (e.g.
<ArrayOfPerson><Person/>...</ArrayOfPerson>). - XmlSingleStreamLoader<T> — Writes multiple items into a single XML document with a root element wrapper.
- XmlMultiStreamExtractor<T> — Reads items from multiple XML streams, one document per stream.
- XmlMultiStreamLoader<T> — Writes items to multiple XML streams via a factory function, one document per stream.
Key Features
- Streaming deserialization — Uses
XmlReaderfor memory-efficient forward-only parsing of large XML files. - Progress reporting — Built-in
IProgress<XmlReport>support with configurable reporting intervals. - Skip and maximum —
SkipItemCountandMaximumItemCountproperties for paging through large XML sources. - Custom XML settings — Accepts
XmlReaderSettingsandXmlWriterSettingsfor full control over XML behavior. - Structured logging — High-performance
LoggerMessage-based logging with categorized event IDs. - Multi-TFM support — Targets .NET Framework 4.6.2+, .NET Standard 2.0, .NET 8.0, and .NET 10.0.
Getting Help
If you need help with Wolfgang.Etl.Xml, please:
- Check the Getting Started guide
- Review the API Reference
- Visit the GitHub repository
- Open an issue on GitHub Issues