Changes specific to .NET

Spellout numbering ("one", "two"; "first", "second"; etc) is now implemented in SaxonCS, using the ICU4N library (and therefore for all languages supported by ICU4N). The features and interfaces are essentially the same as for SaxonJ.

As with SaxonJ, there are API changes to allow multiple schemas to be compiled and used for validation, rather than allowing only one schema per Configuration as before. For details, see the description of the S9API Schema API changes - most of these changes apply equally to the Saxon.Api interface in SaxonCS.

New capabilities are available when an XDM document is constructed by wrapping a DOM (an instance of class System.Xml.XmlDocument). Provided DTD processing is enabled when constructing the DOM, the XPath id() function will now locate elements based on DTD-identified ID attributes, and the XSLT unparsed-entity-uri and unparsed-entity-uri functions can be used to obtain information about unparsed entities declared in the DTD. However, the Microsoft DOM does not provide information enabling IDREF or IDREFS attributes, so the XPath idref() function remains inoperative. These new capabilities are not available in an XDM tree built using the System.Xml.XmlReader parser, because this parser does not provide the application with sufficient information about the DTD.