Bosak.XPath.Compiler
1.23.8
Prefix Reserved
See the version list below for details.
dotnet add package Bosak.XPath.Compiler --version 1.23.8
NuGet\Install-Package Bosak.XPath.Compiler -Version 1.23.8
<PackageReference Include="Bosak.XPath.Compiler" Version="1.23.8" />
<PackageVersion Include="Bosak.XPath.Compiler" Version="1.23.8" />
<PackageReference Include="Bosak.XPath.Compiler" />
paket add Bosak.XPath.Compiler --version 1.23.8
#r "nuget: Bosak.XPath.Compiler, 1.23.8"
#:package Bosak.XPath.Compiler@1.23.8
#addin nuget:?package=Bosak.XPath.Compiler&version=1.23.8
#tool nuget:?package=Bosak.XPath.Compiler&version=1.23.8
<div align="center"> <img src="assets/logos/fytala-logo-color-dark.svg" width="100" alt="Fytala Bosak XPath, XSLT and XQuery for .NET"> <br><br><h1>Bosak</h1> <p>Query XML. Transform documents. Build visual XSLT workflows.</p> </div>
<details> <summary>About FYTALA: the people and purpose behind Bosak</summary>
About FYTALA
FYTALA — Feeling Young, Thriving, Active, Learning Always — is a personal initiative founded after retirement, driven by the belief that curiosity, enthusiasm, and learning have no age limit.
It is about staying engaged, exploring new ideas, and sharing the excitement of technology and innovation with others. A special ambition of FYTALA is to spark that enthusiasm in young people and encourage them to discover how fascinating technology can be—not just by talking about technology, but by making it visible, tangible, surprising, and fun.
My dream captures that ambition perfectly: to walk into a classroom one day, side by side with a humanoid robot, and make my enthusiasm for technology and innovation contagious.
If that experience inspires even a few young minds to start asking questions, experimenting, building, programming, or imagining what might be possible, FYTALA has achieved something worthwhile.
Technology, after all, is not just about machines, electronics, or software. It is about curiosity, creativity, and turning ideas into reality. FYTALA therefore takes a deliberately broad perspective, embracing software, electronics, engineering, science, artificial intelligence, robotics, and whatever comes next.
Experimenting matters.
Making mistakes matters.
Understanding why something works matters even more.
Every project is an opportunity to learn something new and, hopefully, to help someone else learn as well.
The cable-stayed bridge in the FYTALA logo represents that philosophy. A bridge connects places, but it can also connect people, ideas, generations, and fields of knowledge. Its strength comes from many individual elements working together—much like technology itself.
FYTALA wants to help build those bridges: between experience and youthful curiosity, theory and practice, and imagination and real-world creation. It encourages looking beyond the obvious, asking questions, taking things apart, and building them again in new ways.
Above all, FYTALA is about keeping the desire to discover alive—and passing that desire on to the next generation.
Because we never have to stop being curious.
We never have to stop creating.
And we are never too old—or too young—to learn something new.
</details>
Bosak brings XPath 3.1, XSLT 3.0 and XQuery 3.1 to .NET 10, on one shared XQuery Data Model (XDM). Embed queries and transformations in your application, work in VS Code, or explore the visual-authoring foundation in Bosak.Braid.
The engine is free and open source under Apache-2.0. Optional commercial products extend the ecosystem: Bosak.Schema adds XSD complex-type schema awareness, and Bosak.Braid is developing a bidirectional visual/source XSLT builder.
Get started | Integration guide | Worked examples | Latest release
Why and when to use XSLT
Keep document-mapping rules together, test them against real inputs and reuse them across your .NET applications.
| Your task | What you can build |
|---|---|
| Business document exchange | Map supplier invoices into ERP XML, validate fields and produce exception reports. |
| Publishing | Transform XML manuals into HTML while retaining headings, inline content and cross-references. |
| Reporting and migration | Group records, calculate totals and move older XML vocabularies to new formats. |
| Data interchange | Query XML and produce XML, HTML, JSON or text through explicit transformation rules. |
Start with the invoice-to-ERP walkthrough, manual publishing or order reconciliation. They include source documents, stylesheets, expected output and executable checks. PDF output from XSL-FO requires a separate formatter.
Why Bosak
- One engine for three languages. XPath, XSLT and XQuery share the same XDM types and expression runtime. Maps, arrays, higher-order functions and JSON processing fit alongside XML.
- Compile once, evaluate repeatedly. Reuse compiled expressions and transformations; connect existing XML or custom
IXdmNodeproviders through the layered .NET APIs. - Control execution and resources. Supported preview/capture APIs provide explicit resource policies, output capture, provenance and cooperative execution limits. See the integration guide for supported profiles and boundaries.
- Preserve source while authoring. Engine-issued inspection and edit candidates retain original bytes outside declared changes, supporting reviewable visual-authoring workflows. Create bounded output containers, populate them through reviewed text/value-of operations, replace an existing literal text body, delete a supported text instruction, or create, update and delete supported literal result attributes; see the authoring guide.
- Explore newer language features explicitly. XPath/XSLT 4.0 support is opt-in and bounded to the documented implemented draft features; default XPath compilation remains 3.1. See 4.0 coverage.
Quick start
Install the .NET 10 SDK, then create a console application:
dotnet new console -n BosakDemo
cd BosakDemo
dotnet add package Bosak.XPath.Api --version 1.23.7
Replace Program.cs with:
using Bosak.XPath.Api;
using Bosak.XPath.Runtime.Vm;
var expression = XPathExpression.Compile("sum((10, 20, 30))");
var result = expression.Evaluate(new EvaluationContext());
Console.WriteLine(result.IntegerValue); // 60
Run it with dotnet run. Reuse expression for subsequent evaluations. For transformation or query applications, choose the matching package:
| Package | Use it for |
|---|---|
| Bosak.XPath.Api | Compile and evaluate XPath. |
| Bosak.Xslt | Compile stylesheets and transform documents. |
| Bosak.XQuery | Compile and evaluate XQuery. |
Continue with the API integration guide and feature catalog.
Bosak.Schema: let your schemas guide transformations
Bosak.Schema is the optional commercial add-on for XSD complex-type schema awareness. It plugs into the core's schema extension interfaces, adding schema import and typed validation without maintaining a separate engine fork.
Use named complex types with instance of and treat as, import schemas with xsl:import-schema, and construct schema-validated output in the supported profile. That helps catch structural mistakes at a schema boundary and lets transformations work with typed XML rather than relying entirely on manual field checks. The free core retains its built-in simple-type support and works without activating the add-on.
See the Schema integration and licensing guide or request a trial. Confirm package access and compatibility for your Bosak version with Fytala; the add-on has its own release and licensing lifecycle.
Bosak.Braid: a visual/source XSLT builder taking shape
Development of the bidirectional GUI/source XSLT builder has started. Bosak.Braid connects the source, a visual containment view and engine-owned editing operations so you can inspect a transformation and review a change before applying it.
The delivered foundation includes source/outline navigation in both directions, highlighted source review, reviewed expression edits, bounded xsl:value-of and literal xsl:text insertion, value-of deletion, and one-step Undo/Redo. Validation, preview, restricted new-file export and reopen workflows support checking the result against expected output.
The larger goal is synchronized free-form source editing and richer visual composition. Full live bidirectional editing and arbitrary structural construction are still under development; the current workflow uses individually supported, reviewed operations. Braid is a separate application with its own licensing and delivery gates. Read the ecosystem and builder overview, explore the engine authoring roadmap, or contact Fytala about Braid.
<a id="bosak-ecosystem"></a>
flowchart LR
Apps[".NET applications and VS Code"] --> Core["Bosak: XPath / XSLT / XQuery"]
Schema["Bosak.Schema: optional commercial add-on"] -->|Schema awareness| Core
Braid["Bosak.Braid: visual builder in development"] -->|Source-preserving authoring and execution| Core
classDef current fill:#F0FFF0,stroke:#518D8F,color:#2F4F4F,stroke-width:2px
classDef platform fill:#E8F4EE,stroke:#5178A8,color:#2F4F4F
classDef external fill:#FFFFFF,stroke:#293F5F,color:#2F4F4F
classDef planned fill:#FDF2CF,stroke:#556B2F,color:#2F4F4F,stroke-dasharray:5 5
class Core current
class Schema platform
class Apps external
class Braid planned
<p class="fytala-figure-caption"><strong>The Bosak ecosystem.</strong> The open-source engine supports applications, the Schema add-on and Braid's developing visual-authoring workflow.</p>
Work in VS Code
Install Bosak XPath / XSLT for syntax highlighting, diagnostics, completion, hover, navigation and evaluate/run commands. The extension has its own bundled-engine release cycle; consult the extension guide for installation and version details.
Documentation and development
| Start here | What you will find |
|---|---|
| Architecture | Layers, execution pipeline and extension points. |
| Integration | Public APIs, supported profiles and consumer guidance. |
| Roadmap and feature requests | Planned work and current delivery status. |
| 1.19.0 release notes | Release scope, compatibility and limitations. |
| Development history | Archived implementation checkpoints and the former README reference material. |
Build and test from a source checkout with the .NET 10 SDK:
git submodule update --init --recursive
dotnet build Bosak.sln
dotnet test Bosak.sln
Selected XSLT 4.0 native runs support a configurable Windows timeout and retained receipts; see the harness guide.
Language-server tests and manual conformance gates have separate commands in AGENTS.md. Use the release verification record for exact test counts and artifact provenance.
Support and contribute
Ask questions in Discussions, report bugs in Issues, or support development through GitHub Sponsors. Commercial support is available through Fytala. The engine remains Apache-2.0; commercial add-ons have their own terms.
| 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
- Bosak.XPath.Core (>= 1.23.8)
- Bosak.XPath.Parser (>= 1.23.8)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on Bosak.XPath.Compiler:
| Package | Downloads |
|---|---|
|
Bosak.XPath.Runtime
Bosak: register-based virtual machine that executes compiled XPath 3.1 / XSLT 3.0 / XQuery 3.1 programs. Runtime layer of the Bosak stack for .NET. |
|
|
Bosak.XPath.Api
Bosak: compile and evaluate XPath 3.1 expressions in .NET — full XPath 3.1 with maps, arrays, JSON and higher-order functions. The entry-point package of the Bosak XPath 3.1 / XSLT 3.0 / XQuery 3.1 stack. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.26.0 | 0 | 10/25/2026 |
| 1.25.1 | 31 | 10/24/2026 |
| 1.25.0 | 56 | 10/24/2026 |
| 1.24.0 | 58 | 10/23/2026 |
| 1.23.8 | 56 | 10/23/2026 |
| 1.23.7 | 71 | 10/23/2026 |
| 1.23.4 | 73 | 10/22/2026 |
| 1.23.2 | 85 | 10/21/2026 |
| 1.23.0 | 87 | 10/21/2026 |
| 1.22.0 | 135 | 10/19/2026 |
| 1.21.0 | 136 | 10/18/2026 |
| 1.20.0 | 145 | 10/18/2026 |
| 1.19.1 | 132 | 10/18/2026 |
| 1.19.0 | 144 | 10/17/2026 |
| 1.18.0 | 136 | 10/17/2026 |
| 1.17.0 | 140 | 10/17/2026 |
| 1.16.5 | 148 | 10/16/2026 |
| 1.8.0 | 133 | 10/16/2026 |
| 1.7.1 | 132 | 10/15/2026 |
| 1.7.0 | 132 | 10/15/2026 |