XmlPrime is an essential tool for any .NET developer who deals with XML.

XmlPrime brings complete, versatile, fast, easy to use and standards-compliant implementations of XSLT 2.0, XQuery 1.0, XQuery 3.1, XPath 2.0 and XPath 3.1 as well as several other W3C standards to the Microsoft .NET Framework. It also includes partial support for XSLT 3.0.

As of version 3.0, the commercially licensed XmlPrime allows compilation of XSLT, XQuery and XPath to CIL byte code for even greater performance.


XQuery 1.0 and XQuery 3.1

XQuery 3.1 is the latest version of the XQuery programming language developed by the World Wide Web Consortium (W3C) for querying and processing XML data. Some of the main features are listed below.

  • An innovative blend of declarative and functional programming styles allows for concise queries with high performance.
  • The modular design of XQuery allows you to create libraries of functions that can be shared between queries.
  • A powerful concise syntax, including expressive FLWOR expressions, higher-order functions, full composability with XPath 3.1 and inline XML snippets.
  • XQuery is easy to learn, especially for anyone who has used similar XML technologies, like XPath or XSLT.

XSLT 2.0

XSLT is a language designed for transforming XML documents. Whilst .NET already includes an implementation of XSLT, XSLT 2.0 adds many much desired features. Among many of the new features available are:

  • XSLT 2.0 is built on XPath 2.0, which brings with it the enhanced data model and extensive function library.
  • Constructing temporary output trees (without relying on implementation-specific hacks, for example the msxsl:node-set function).
  • powerful grouping functionality, including the xsl:for-each-group element.
  • Easily process multiple input documents and create multiple output documents (with the xsl:result-document element).

XPath 1.0 and XPath 3.1

XPath is used to select nodes in XML documents. It underpins the XQuery and XSLT languages. The .NET framework already contains an implementation of XPath, but XPath 3.1 adds many new features to the table:

  • A new data model which is built upon XML Schema, which can be extended by importing schemas.
  • All expressions now evaluate to sequences which can be arbitrarily composed of nodes and atomic values.
  • A large library of functions and operators.
  • New expressions like if, for, some, every.
  • Support for higher order functions.

Other XML Technologies

As well as the core languages, XmlPrime implements a number of other specifications

  • XSLT and XQuery Serialization 3.1 is fully supported, providing a highly configurable interface for serializing your XML and HTML files.
  • XQuery Update Facility 1.0 is fully supported, providing a means to update XML documents.
  • XInclude processing allows you to easily break up complex XML documents into smaller parts.
  • A streaming implementation of XML Canonicalization allows you to normalize your XML documents without reading them into memory.

Standards-compliant

The XmlPrime team take standards very seriously. We are members of the World Wide Web Consortium (W3C) and several of the development team are active participants in the XQuery Working Group, helping to create the standards that we implement. We regularly test against the XQuery Test Suite and demonstrate exemplary results.

Complete

All the standards that we implement are implemented in full, and are 100% compliant.

XmlPrime is a schema aware processor, implements all optional features in the specifications, and allows customization of all the parameters exposed by the specifications.

Backwards-compatible

The XPath 1.0 backwards compatibility feature enables you to use your legacy XSLT and XPath code with XmlPrime. We also implement the msxsl:script element from XslCompiledTransfrom. This means that you can start to reap the benefits of XmlPrime without having to migrate your code to XSLT 2.0


Easy to Use API

The XmlPrime API is designed wherever possible to mimic and expand the classes in the System.Xml, System.Xml.Xsl and System.Xml.XPath namespaces. It follows Microsoft's style guidelines and is provided with IntelliSense documentation. Wherever possible we have tried to keep the interfaces as similar as possible to the standard classes. Although we do provide newer versions of some classes (for example our XdmWriter provides many advantages over the built in XmlWriter), you can carry on using the built in versions. XmlPrime operates on instances of the XPathNavigator class, and writes results to instances of the XmlWriter class, so can be combined with any other libraries that uses these interfaces. Migrating to XmlPrime can be as easy as changing the name of the class you use in your source file!

Extensible

XmlPrime provides a large number of customization points, and so can be moulded to fit your environment. By implementing your own document resolvers you could for example modify the doc and collection functions to access documents from within a database.

XmlPrime allows new function libraries to be implemented by .NET classes. These can then be imported and used from within your XQuery, XSLT and XPath programs. Our XSLT processor also includes a new xp:script extension which allows you to write functions in .NET languages directly in your XSLT source code.

You can examine the API documentation here.


Performance

By taking advantage of both traditional and cutting-edge techniques from the database, functional programming and XML communities we have managed to create a world-class query optimizer which means that your queries and transformations will run lightning fast. XmlPrime uses techniques such as lazy evaluation, tail recursion, join optimization, strictness analysis, unboxing, common subexpression elimination, variable dereferencing, function specialization, constant folding, structural sort elimination to rewrite queries to be more efficient.

This means that you can write your code to be readable and maintainable, and XmlPrime will ensure that it is also high performance.


XmlPrime is free for non-commercial use, and commercial licenses are available from only £179.

Download Free Trial