Validating versus non-Validating XML Processors

The XML Processor can be either validating or non-validating, depending on whether it has an optional schema cache as specified in a module designated as a Schema Cache Dictionary. If it is created to have a schema cache, it is a validating processor.

A non-validating XML Processor checks the XML supplied to it for being "well-formed", meaning that the XML is syntactically correct.

A validating XML Processor goes further by checking that the structure of the supplied XML conforms to the structuring rules specified by the schemas. To do this, the XML Processor’s schema cache must be given all the schemas referenced by the XML, and all the schemas referenced by the added schemas. (Note:  the root XML schemas are excepted since these are already built-in to the XML Processor)

A validating XML Processor also creates type definitions for all structures described by the schemas. These type definitions are added to the Namespace Schema Cache.

When a non-validating XML Processor successfully parses the XML supplied, it generates an XMLNode Tree.

When a validating XML Processor successfully parses the XML supplied, it generates an XMLNode tree. Any type definitions encountered will be added to the Namespace Schema Cache.

For further information on XML Schemas, refer to the following two resources:

http://www.w3.org/2001/XMLSchema

http://www.w3.org/2001/XMLSchema-instance