boolean (XmlDocument doc) { if (doc == null) { return false; } XmlProlog prolog = doc.getProlog(); XmlDoctype doctype = prolog != null ? prolog.getDoctype() : null; final PsiFile htmlFile = doc.getContainingFile(); final String htmlFileFullName; if (htmlFile != null) { final VirtualFile vFile = htmlFile.getVirtualFile(); htmlFileFullName = vFile == null ? htmlFile.getName() : vFile.getPath(); } else { htmlFileFullName = "unknown"; } if (doctype == null) { LOG.debug("DOCTYPE for " + htmlFileFullName + " is null"); return isHtmlTagContainingFile(doc) && Html5SchemaProvider.getHtml5SchemaLocation() .equals(ExternalResourceManagerEx.getInstanceEx().getDefaultHtmlDoctype(doc.getProject())); } final boolean html5Doctype = isHtml5Doctype(doctype); final String doctypeDescription = "text: " + doctype.getText() + ", dtdUri: " + doctype.getDtdUri() + ", publicId: " + doctype.getPublicId() + ", markupDecl: " + doctype.getMarkupDecl(); LOG.debug("DOCTYPE for " + htmlFileFullName + "; " + doctypeDescription + "; HTML5: " + html5Doctype); return html5Doctype; }