# XML Parsing in .NET

When you run Saxon on the .NET platform, there are two XML parsers available: the `System.Xml` parser supplied with the .NET platform, and the JAXP parser that comes with the GNU Classpath library, which is supplied as part of the Saxon product.

Saxon generally uses the Microsoft `System.Xml` parser by preference. However, if you invoke the product using Java interfaces, for example by supplying a JAXP `SAXSource` as input, then the GNU Classpath parser will be used.

Note that the Microsoft parser does not notify ID or IDREF values from the DTD, or expand attributes with fixed or default values, unless DTD validation is requested. This can be requested using the -v option on the command line, or via the API. (See the `DtdValidation` property of the `DocumentBuilder` class)

At present, unparsed entities are being ignored. The XSLT functions `unparsed-entity-system-id()` and `unparsed-entity-public-id()` are therefore not working.