public static boolean validSchemaFilename(String fn) {
        if (! fn.endsWith(SD_NAME_SUFFIX)) {
            return false;
        }
        int lastSlash = fn.lastIndexOf('/');
        if (lastSlash >= 0) {
            fn = fn.substring(lastSlash+1);
        }
        if (fn.startsWith(".")) {
            return false;
        }
        return true;
    }
@Test
    public void testValidSchemaFilename() {
        checkValid("foo.sd");
        checkValid("schemas/foo.sd");
        checkValid("./foo.sd");
        checkValid("./schemas/foo.sd");
        checkInvalid("foo");
        checkInvalid("foo.ds");
        checkInvalid(".foo.sd");
        checkInvalid("schemas/.foo.sd");
        checkInvalid("schemas/subdir/._foo.sd");
    }