XmlPrime 1.4

XmlPrime is an XML Processor for the Microsoft .NET platform versions 2.0 or later. It builds upon the classes in the System.XmlSystem.XmlSystem.Xml namespace and provides up-to-date standards compliant implementations of XQuery 1.0 and XPath 2.0.

Change log

Version 1.4.0

  • Modules of functions can now be written in .NET and used in XQuery programs and XPath expressions.
  • Intermediate (constructed) nodes are now serialized directly into XdmDocumentXdmDocumentXdmDocument instances, rather than building temporary trees. This should lead to improved performance of queries performing further processing on constructed nodes.
  • Some more improvements to join analysis - left outer joins and group-by expressions are spotted (and hence optimized) more often.
  • typeswitch expressions are now more efficient when the argument is a single item.
  • ToStringToStringToString now returns the value cast to a string.
  • Many small fixes.

Breaking changes

Version 1.3.0

  • The XmlPrime DLL can now be precompiled with ngen. Previously ngen would crash.
  • Improved unboxed evaluation, especially for aggregate functions.
  • Many small performance improvements.
  • Internal changes in preparation for compiling queries to dynamic methods

Version 1.2.0

  • Queries can now be evaluated directly to a serializer, avoiding building an intermediate representation.
  • Push-based evaluation has been implemented for all expressions, and is used for all expressions that are determined to be strict.
  • Added the (# xp:eager #) pragma to force eager evaluation.
  • import schema now ignores location hints if the namespace is already statically available.
  • Imported schemas that fail to compile are no longer added to the available schema set.
  • Fixed an exception when evaluating treat as empty-sequence() in some circumstances, and improved optimization of type constraints.
  • Corrected behaviour of MoveToIdMoveToIdMoveToId for constructed nodes.
  • Updated liveness analysis to fix problems when using partially evaluated lazy variables in join operations.
  • Avoided distinct-doc-order for unions such as (@*|node()).
  • Minor improvements to error messages.
  • Many small performance improvements.

Version 1.1.0

Version 1.0.2

Version 1.0.1

  • First full release.