XML Schema 1.1 implementation

The implementation of XSD unique, key, and keyref constraints has been changed so that it should be far more memory-efficient, making it possible to validate such constraints on gigabyte-sized documents. The implementation is specifically optimized for constraints involving a key that is a single atomic string value, which is the most common case.