Some rules in Schema Part 2 constrain the coexistence of facets only if they were introduced "in the same derivation step". An example is in 4.3.8.4:
It is an ·error· for both ·maxInclusive· and ·maxExclusive· to be specified in the same derivation step of a datatype definition.
Saxon's test for the condition "specified in the same derivation step" is sometimes giving the wrong answer (true instead of false) leading to spurious inconsistencies between facets being reported.
(A curiosity here is that the corresponding rule in 4.3.9.4 reads "It is an ·error· for both ·minInclusive· and ·minExclusive· to be specified for the same datatype." - that is, it is an error whether or not the facets were introduced in the same derivation step. Schema Part 1.1 has corrected this so the wording is the same as in 4.3.9.4. Saxon is attempting to apply this corrected version of the rule, but is getting it wrong.)
The source code on the 9.0 branch has been fixed and will be included in any future maintenance release. The code on the 9.1 branch had already been corrected.
Logged In: YES
user_id=251681
Originator: YES
Fixed in 9.0.0.6