@Override
    Object mapKeyForSystemInfo(final SchemaKey key) {
        if (key == null) {
            return null;
        } else {
            final FindXMLSchemaCriteria schemaCriteria = key.getFindXMLSchemaCriteria();
            final Builder<Object, Object> builder = ImmutableMap.builder();

            NullSafe.consume(schemaCriteria,
                    FindXMLSchemaCriteria::getNamespaceURI,
                    str -> builder.put("namespaceURI", str));
            NullSafe.consume(schemaCriteria,
                    FindXMLSchemaCriteria::getSystemId,
                    str -> builder.put("systemId", str));
            NullSafe.consume(schemaCriteria,
                    FindXMLSchemaCriteria::getSchemaGroup,
                    str -> builder.put("schemaGroup", str));
            NullSafe.consume(schemaCriteria,
                    FindXMLSchemaCriteria::getUserRef,
                    str -> builder.put("userRef", str));

            return builder.build();
        }
    }
We will clear the schema pool if there are any changes to any schemas.
stroom-pipeline/src/main/java/stroom/pipeline/cache/SchemaPoolImpl.java