protected boolean xmlContentType(String type, InputSource is)
            throws SAXException {
        if ("application/xhtml-voice+xml".equals(type)) {
            if (errorHandler != null) {
                errorHandler.warning(new SAXParseException(
                        "application/xhtml-voice+xml is an obsolete type.",
                        is.getPublicId(), is.getSystemId(), -1, -1));
            }
        }
        boolean typeOk = "application/xml".equals(type)
                || "text/xml".equals(type) || type.endsWith("+xml")
                || "application/xml-external-parsed-entity".equals(type)
                || "text/xml-external-parsed-entity".equals(type)
                || "application/xml-dtd".equals(type)
                || "application/octet-stream".equals(type);
        if (!typeOk && laxContentType) {
            boolean laxOk = "text/plain".equals(type)
                    || "text/html".equals(type) || "text/xsl".equals(type);
            if (laxOk && errorHandler != null) {
                errorHandler.warning(new SAXParseException(
                        "Being lax about non-XML Content-Type: " + type,
                        is.getPublicId(), is.getSystemId(), -1, -1));
            }
            return laxOk;
        } else {
            return typeOk;
        }
    }
@param errorHandler
@param laxContentType
@param allowRnc
@param allowHtml
@param allowXhtml
@param acceptAllKnownXmlTypes
@param allowGenericXml
src/nu/validator/xml/ContentTypeParser.java