Changes in XML Schema support
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
Saxon imposes limits on the values of
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