posted 22 years ago
An XML parser is anything that reads in XML, and provides your application with the nodes and attributes (OK, and PI's etc.) W3C has recommendations for validating and non-validating parsers and what they should return to the application.
A validating parser, validates XML against a schema or DTD. Which means, it checks that the elements and attributes follow certain rules that are expressed in the schema or DTD.
The interesting question here, is what happens to entities (those things defined with & or %) in a validating vs. non-validating parser. But you can read the W3C recommendation if you are interested.
XSLT uses a parser internally, but does not require a schema or DTD. Therefore XSLT processors do not rely on validating parsers. On the other hand if either the XML or XSL document refers to an external entity, you had better hope that the XSLT processor dereferences it properly (something that a validating parser is required to do, but non-validating parsers may do but are not required to do, confusing isn't it?)
Most validating parsers can have their validations turned off programatically.
Does this help?