dap4/d4lib/src/main/java/dap4/dap4lib/HttpDSP.java
public boolean dspMatch(String url, DapContext context)
    {
        try {
            XURI xuri = new XURI(url);
            if(true) {
                boolean found = false;
                for(String scheme : DAP4SCHEMES) {
                    if(scheme.equalsIgnoreCase(xuri.getBaseProtocol())
                            || scheme.equalsIgnoreCase(xuri.getFormatProtocol())) {
                        found = true;
                        break;
                    }
                }
                if(!found) return false;
                // Might still be a non-dap4 url
                String formatproto = xuri.getFormatProtocol();
                if(DAP4PROTO.equalsIgnoreCase(formatproto))
                    return true;
                for(String[] pair : DAP4QUERYMARKERS) {
                    String tag = xuri.getQueryFields().get(pair[0]);
                    if(tag != null
                            && (pair[1] == null
                            || pair[1].equalsIgnoreCase(tag)))
                        return true;
                }
                for(String[] pair : DAP4FRAGMARKERS) {
                    String tag = xuri.getFragFields().get(pair[0]);
                    if(tag != null
                            && (pair[1] == null
                            || pair[1].equalsIgnoreCase(tag)))
                        return true;
                }
            } else
                return true;
        } catch (URISyntaxException use) {
            return false;
        }
        return false;
    }
public boolean dspMatch(String url, DapContext context)
    {
        try {
            XURI xuri = new XURI(url);
            if(true) {
                boolean found = false;
                for(String scheme : DAP4SCHEMES) {
                    if(scheme.equalsIgnoreCase(xuri.getBaseProtocol())
                            || scheme.equalsIgnoreCase(xuri.getFormatProtocol())) {
                        found = true;
                        break;
                    }
                }
                if(!found) return false;
                // Might still be a non-dap4 url
                String formatproto = xuri.getFormatProtocol();
                if(DAP4PROTO.equalsIgnoreCase(formatproto))
                    return true;
                for(String[] pair : DAP4QUERYMARKERS) {
                    String tag = xuri.getQueryFields().get(pair[0]);
                    if(tag != null
                            && (pair[1] == null
                            || pair[1].equalsIgnoreCase(tag)))
                        return true;
                }
                for(String[] pair : DAP4FRAGMARKERS) {
                    String tag = xuri.getFragFields().get(pair[0]);
                    if(tag != null
                            && (pair[1] == null
                            || pair[1].equalsIgnoreCase(tag)))
                        return true;
                }
            } else
                return true;
        } catch (URISyntaxException use) {
            return false;
        }
        return false;
    }
A path is a DAP4 path if at least one of the following is true.
1. it has "dap4:" as its leading protocol
2. it has #protocol=dap4 in its fragment

@param url
@param context Any parameters that may help to decide.
@return true if this url appears to be processible by this DSP