XML Schema 1.0 implementation
The code for parsing and validating schema documents has been extensively refactored. It is now tree-based rather than event-based, which generally makes it more robust, and makes the functional changes listed below possible. There is now no residual code from Castor.
Saxon now supports xs:notation
declarations and values of type xs:NOTATION
. As with QName support,
there are still some restrictions: for example, notations cannot be used as default or fixed values, or used in
key and uniqueness constraints.
Chameleon includes and redefines are now implemented: that is, includes and redefines in which a schema document with a target namespace includes or redefines one without a target namespace.
Cyclic imports (where A imports B and B imports A) are now permitted, though the coverage of this feature in test cases is rather sparse (none of the W3C test cases cover it).
Multiple inclusion (where A includes B and C, while B and C both include D) is now handled: again, test coverage is sparse.
Saxon imposes limits on the values of minOccurs
and maxOccurs
in particles
of a content model. These limits are now documented; a warning is output when the limits are exceeded; and the
limits are now configurable by a new method on the SchemaAwareConfiguration
class.