PhoenixmlDb.Core 2.1.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package PhoenixmlDb.Core --version 2.1.0
                    
NuGet\Install-Package PhoenixmlDb.Core -Version 2.1.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="PhoenixmlDb.Core" Version="2.1.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="PhoenixmlDb.Core" Version="2.1.0" />
                    
Directory.Packages.props
<PackageReference Include="PhoenixmlDb.Core" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add PhoenixmlDb.Core --version 2.1.0
                    
#r "nuget: PhoenixmlDb.Core, 2.1.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package PhoenixmlDb.Core@2.1.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=PhoenixmlDb.Core&version=2.1.0
                    
Install as a Cake Addin
#tool nuget:?package=PhoenixmlDb.Core&version=2.1.0
                    
Install as a Cake Tool

PhoenixmlDb.Core

Core types, interfaces, and XDM (XQuery Data Model) implementation for PhoenixmlDb — a modern embedded XML/JSON document database for .NET.

What's in this package

  • Database interfaces — IDocumentDatabase, IContainer, IDocument for storing and retrieving XML/JSON documents
  • XDM node types — XdmElement, XdmAttribute, XdmDocument, etc. — the W3C XQuery Data Model
  • Transaction model — IReadTransaction, IWriteTransaction with MVCC snapshot isolation
  • Index configuration — path, value, full-text, and metadata indexes for fast queries
  • XML parser and serializer — parse XML into XDM trees and serialize back
  • Atomic value types — dates, times, durations, and other XSD types with correct semantics

When to use this package

Directly: If you're building a storage provider, query engine integration, or tooling that works with XDM types.

Indirectly: This package is a dependency of PhoenixmlDb.XQuery, PhoenixmlDb.Xslt, and the CLI tools. You typically don't reference it alone unless you need the core types without query/transform capabilities.

Quick example

using PhoenixmlDb.Core;
using PhoenixmlDb.Xdm.Parsing;

// Parse XML into an XDM tree
var parser = new XmlDocumentParser();
var result = parser.Parse("<order><item>Widget</item></order>");
var doc = result.Document;

// Navigate the tree
var root = doc.Children[0]; // <order> element
Console.WriteLine(root.StringValue); // "Widget"
Package Description
PhoenixmlDb.XQuery XQuery 4.0 query engine
PhoenixmlDb.Xslt XSLT 4.0 transformation engine
PhoenixmlDb.XQuery.Cli xquery command-line tool
PhoenixmlDb.Xslt.Cli xslt command-line tool

Documentation

Full documentation at phoenixml.dev

License

Apache 2.0

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net10.0

    • No dependencies.
  • net8.0

    • No dependencies.

NuGet packages (3)

Showing the top 3 NuGet packages that depend on PhoenixmlDb.Core:

Package Downloads
PhoenixmlDb.XQuery

XQuery 4.0 query engine for PhoenixmlDb

PhoenixmlDb.Xslt

XSLT 4.0 transformation engine for PhoenixmlDb

Phoenixml.Platform.Editor.Xml

XML/XSD vocabulary binding for Phoenixml.Platform — concrete IDocument and ITreeNodeProvider implementations against PhoenixmlDb.Core's XDM, XSD schema validation pipeline.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.3.0 0 10/8/2026
2.2.0 85 10/6/2026
2.1.0 151 10/5/2026
2.0.0 1,649 9/15/2026
1.7.0 942 9/11/2026
1.6.7 889 8/24/2026
1.6.6 195 8/23/2026
1.6.5 193 8/21/2026
1.6.0 171 8/7/2026
1.5.0 127 8/6/2026
1.4.0 117 8/4/2026
1.3.0 372 7/27/2026
1.2.2 307 7/9/2026
1.2.1 169 7/8/2026
1.2.0 340 6/28/2026
1.1.9 339 6/17/2026
1.1.8 219 6/14/2026
1.1.7 148 6/9/2026
1.1.6 126 6/9/2026
1.1.5 331 5/23/2026
Loading failed

- **Indented serialization writes LF on every OS.** `XmlSerializer` used `Environment.NewLine`, so
 indented output was CRLF on Windows and LF elsewhere, and the same document serialized to
 different bytes per OS. It now writes LF everywhere, matching the engines (phoenixmldb-xslt #249,
 phoenixmldb-xquery #142). The CI now also runs the test suites on Windows, and that job gates
 publishing.
- **`XdmValue.From(DateTime)` works.** It threw `NotSupportedException` while `DateTimeOffset` was
 accepted. A `DateTime` with `Kind` `Utc` is stored as an `xs:dateTime` at offset Z, and one with
 `Kind` `Local` at the machine's offset for that moment. `Kind` `Unspecified` throws
 `ArgumentException`: it names no instant, and a stored `xs:dateTime` always carries an offset, so
 guessing one would store a plausible wrong value. `XdmValue.To<DateTime>` returns the stored
 instant as a UTC `DateTime`.
- **`From`'s error names the value's runtime type,** not the call site's type argument (which was
 `Object` for every value passed through `object`).
- **Documentation:** `ContainerOptions.DefaultMetadataNamespace`, when unset, resolves unqualified
 metadata names to `https://schemas.phoenixml.dev/2026/app`, the engine's namespace for
 application data. The 2.0.0 notes below said `.../2026/meta`, which is reserved for metadata the
 engine itself sets and is never the default.
- **Documentation:** `IStorageEngine.BackupTo`'s `destinationPath` is the full path of the backup
 file to create or replace, not a directory; its parent directories are created. The backup is a
 consistent point-in-time snapshot, and `compact` omits free pages. The 2.0.0 docs said
 "directory", which the engine and every caller contradict: an implementation that followed them
 failed with an IOException, and only after the full copy.