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 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.
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:
msxsl:node-set
function).xsl:for-each-group
element.xsl:result-document
element).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:
if
, for
, some
, every
.As well as the core languages, XmlPrime implements a number of other specifications
The XmlPrime team take standards very seriously. We have been members of the World Wide Web Consortium (W3C) for many years and several of the development team have been 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.
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.
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
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!
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.
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 commercial licenses are available from only £179 per annum.