When a user-defined simple type is derived from a built-in (but not primitive) type such as xs:short or xs:NCName, validation against the user-defined simple type does not check the value against the constraints imposed by the built-in type. For example, if a user-defined type derived from xs:NCName has <minLength value="12"/>, then values will be checked to ensure they have a minimum length of 12 characters, but they will not be checked against the rules for xs:NCName.
This bug is present in 9.1 and all known previous releases. It appears that the W3C test suite has no tests that pick up this condition. A patch is being added to the Subversion source for 9.1 (module StringValue, which is in the Saxon-B source code).