private void printSchemaLocations(final CharBuffer sb, final String validLocations,
                                      final FindXMLSchemaCriteria schemaConstraint) {
        final StringBuilder where = new StringBuilder();

        if (schemaConstraint != null) {
            if (!Strings.isNullOrEmpty(schemaConstraint.getSchemaGroup())) {
                if (where.isEmpty()) {
                    where.append(" where ");
                } else {
                    where.append(" and ");
                }
                where.append("schema group='");
                where.append(schemaConstraint.getSchemaGroup());
                where.append("'");
            }
            if (!Strings.isNullOrEmpty(schemaConstraint.getNamespaceURI())) {
                if (where.isEmpty()) {
                    where.append(" where ");
                } else {
                    where.append(" and ");
                }
                where.append("namespace URI='");
                where.append(schemaConstraint.getNamespaceURI());
                where.append("'");
            }
            if (!Strings.isNullOrEmpty(schemaConstraint.getSystemId())) {
                if (where.isEmpty()) {
                    where.append(" where ");
                } else {
                    where.append(" and ");
                }
                where.append("system id='");
                where.append(schemaConstraint.getSystemId());
                where.append("'");
            }
        }

        sb.append("\nYou must use one of the following schema locations");
        sb.append(where.toString());
        sb.append(":\n");
        sb.append(validLocations);
    }
Sends characters to the current validator handler.

@param ch     Characters.
@param start  Start of char buffer.
@param length Number of chars to send.
@throws SAXException Not thrown.
@see stroom.pipeline.filter.AbstractXMLFilter#characters(char[],
int, int)
stroom-pipeline/src/main/java/stroom/pipeline/filter/SchemaFilter.java