Flowthru.Extensions.Xml
0.28.0-preview.121
See the version list below for details.
dotnet add package Flowthru.Extensions.Xml --version 0.28.0-preview.121
NuGet\Install-Package Flowthru.Extensions.Xml -Version 0.28.0-preview.121
<PackageReference Include="Flowthru.Extensions.Xml" Version="0.28.0-preview.121" />
<PackageVersion Include="Flowthru.Extensions.Xml" Version="0.28.0-preview.121" />
<PackageReference Include="Flowthru.Extensions.Xml" />
paket add Flowthru.Extensions.Xml --version 0.28.0-preview.121
#r "nuget: Flowthru.Extensions.Xml, 0.28.0-preview.121"
#:package Flowthru.Extensions.Xml@0.28.0-preview.121
#addin nuget:?package=Flowthru.Extensions.Xml&version=0.28.0-preview.121&prerelease
#tool nuget:?package=Flowthru.Extensions.Xml&version=0.28.0-preview.121&prerelease
Flowthru.Extensions.Xml
Read and write Flowthru Catalog Items as XML documents. Adds the XML format to the Catalog
builder, so an Item backed by a single object serializes to and from one .xml file with a
one-line declaration. Unlike the row-oriented formats (Csv, Excel, Parquet), XML here is
document-mode: one file holds one whole object — a nested tree, not a flat row sequence — so
it's the right fit for hierarchical documents like config, manifests, or coverage reports.
Mental model
Storage in Flowthru is three independent axes: format (how bytes serialize) × medium
(where bytes live) × container (the in-memory shape). This package supplies one format — XML —
in its document shape. Bring the System.Xml.Serialization mental model: you annotate your type
with [XmlRoot], [XmlAttribute], [XmlElement], and [XmlArray], and the framework maps the
document tree onto that shape. One file is one document of type T; to read a whole folder of
like documents, lift the format with .Directory(file => file.Xml()). XML is filesystem-backed
today — a non-file path is rejected at build time.
Install
dotnet add package Flowthru.Extensions.Xml
Declare an XML-backed Item over a serializable type. Note the container is the type itself
(IItem<CoberturaReport>), not IEnumerable<...>:
public IItem<CoberturaReport> CoverageReport =>
CreateItem(() => Item.Of<CoberturaReport>("CoverageReport")
.Xml()
.AtPath($"{_basePath}/Data/_01_Raw/coverage.xml")
.Build());
To read a directory of like documents as one Item, lift the format with the universal
.Directory(...):
public IItem<DirectoryOf<CoberturaReport>> CoverageXmlFiles =>
CreateItem(() => Item.Of<DirectoryOf<CoberturaReport>>("CoverageXmlFiles")
.Directory(file => file.Xml())
.AtPath($"{_basePath}/Data/_01_Raw/Datasets")
.Build());
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Flowthru.Core (>= 0.28.0-preview.121)
- Microsoft.Extensions.Configuration (>= 10.0.4)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.4)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.4)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.4)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.4)
- Microsoft.Extensions.Options (>= 10.0.4)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.28.1-preview.122 | 0 | 7/9/2026 |
| 0.28.0 | 55 | 7/7/2026 |
| 0.28.0-preview.121 | 38 | 7/7/2026 |
| 0.27.1 | 108 | 7/2/2026 |
| 0.27.1-preview.120 | 53 | 7/2/2026 |
| 0.27.0 | 90 | 7/1/2026 |
| 0.27.0-preview.119 | 46 | 7/1/2026 |
| 0.26.0-preview.112 | 52 | 6/5/2026 |
| 0.25.0 | 102 | 6/2/2026 |
| 0.25.0-preview.110 | 55 | 6/2/2026 |
| 0.24.0-preview.108 | 53 | 6/2/2026 |
| 0.21.0 | 104 | 5/24/2026 |
| 0.21.0-preview.101 | 60 | 5/24/2026 |
| 0.20.0 | 102 | 5/23/2026 |
| 0.20.0-preview.100 | 54 | 5/23/2026 |
| 0.19.0-preview.99 | 68 | 5/23/2026 |
| 0.18.5-preview.98 | 60 | 5/22/2026 |
| 0.18.4-preview.97 | 49 | 5/22/2026 |
| 0.18.3 | 96 | 5/20/2026 |