common_helper/src/main/java/com/xiongyingqi/util/xml/XmlValidationModeDetector.java
public int detectValidationMode(InputStream inputStream) throws IOException {
        // Peek into the file to look for DOCTYPE.
        BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
        try {
            boolean isDtdValidated = false;
            String content;
            while ((content = reader.readLine()) != null) {
                content = consumeCommentTokens(content);
                if (this.inComment || !StringUtils.hasText(content)) {
                    continue;
                }
                if (hasDoctype(content)) {
                    isDtdValidated = true;
                    break;
                }
                if (hasOpeningTag(content)) {
                    // End of meaningful data...
                    break;
                }
            }
            return (isDtdValidated ? VALIDATION_DTD : VALIDATION_XSD);
        } catch (CharConversionException ex) {
            // Choked on some character encoding...
            // Leave the decision up to the caller.
            return VALIDATION_AUTO;
        } finally {
            reader.close();
        }
    }
public int detectValidationMode(InputStream inputStream) throws IOException {
        // Peek into the file to look for DOCTYPE.
        BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
        try {
            boolean isDtdValidated = false;
            String content;
            while ((content = reader.readLine()) != null) {
                content = consumeCommentTokens(content);
                if (this.inComment || !StringUtils.hasText(content)) {
                    continue;
                }
                if (hasDoctype(content)) {
                    isDtdValidated = true;
                    break;
                }
                if (hasOpeningTag(content)) {
                    // End of meaningful data...
                    break;
                }
            }
            return (isDtdValidated ? VALIDATION_DTD : VALIDATION_XSD);
        } catch (CharConversionException ex) {
            // Choked on some character encoding...
            // Leave the decision up to the caller.
            return VALIDATION_AUTO;
        } finally {
            reader.close();
        }
    }
public int detectValidationMode ( InputStream inputStream ) throws IOException { // Peek into the file to look for DOCTYPE. BufferedReader reader = new BufferedReader ( new InputStreamReader ( inputStream ) ) ; try { boolean isDtdValidated = false ; String content ; while ( ( content = reader . readLine ( ) ) != null ) { content = consumeCommentTokens ( content ) ; if ( this . inComment || ! StringUtils . hasText ( content ) ) { continue ; } if ( hasDoctype ( content ) ) { isDtdValidated = true ; break ; } if ( hasOpeningTag ( content ) ) { // End of meaningful data... break ; } } return ( isDtdValidated ? VALIDATION_DTD : VALIDATION_XSD ) ; } catch ( CharConversionException ex ) { // Choked on some character encoding... // Leave the decision up to the caller. return VALIDATION_AUTO ; } finally { reader . close ( ) ; } }
Detect the validation mode for the XML document in the supplied {@link java.io.InputStream}.
Note that the supplied {@link java.io.InputStream} is closed by this method before returning.

@param inputStream the InputStream to parse
@throws java.io.IOException in case of I/O failure
@see #VALIDATION_DTD
@see #VALIDATION_XSD
Detect the validation mode for the XML document in the supplied { @link java . io . InputStream } . Note that the supplied { @link java . io . InputStream } is closed by this method before returning .