diff --git c/arelle/CntlrProfiler.py i/arelle/CntlrProfiler.py index a64bb1b..dc0299d 100644 --- c/arelle/CntlrProfiler.py +++ i/arelle/CntlrProfiler.py @@ -1,5 +1,6 @@ -import Cntlr, ModelManager, FileSource, time +from arelle import Cntlr, ModelManager, FileSource +import time from optparse import OptionParser import cProfile import gettext diff --git c/arelle/ValidateFilingText.py i/arelle/ValidateFilingText.py index 12dbbbb..c0e98c3 100644 --- c/arelle/ValidateFilingText.py +++ i/arelle/ValidateFilingText.py @@ -16,7 +16,7 @@ XMLdeclaration = re.compile(r"<\?xml.*\?>", re.DOTALL) XMLpattern = re.compile(r".*(<|<|<|<)[A-Za-z_]+[A-Za-z0-9_:]*[^>]*(/>|>|>|/>).*", re.DOTALL) CDATApattern = re.compile(r",_?/=\t\n\r\m\f]") # won't match &#nnn; +docCheckPattern = re.compile(r"&\w+;|[^0-9A-Za-z`~!@#$%&\*\(\)\.\-+ \[\]\{\}\|\\:;\"'<>,_?/=\t\n\r\f]") # won't match &#nnn; namedEntityPattern = re.compile("&[_A-Za-z\xC0-\xD6\xD8-\xF6\xF8-\xFF\u0100-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]" r"[_\-\.:" "\xB7A-Za-z0-9\xC0-\xD6\xD8-\xF6\xF8-\xFF\u0100-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u0300-\u036F\u203F-\u2040]*;") @@ -904,4 +904,4 @@ def referencedFiles(modelXbrl, localFilesOnly=True): # footnote or other elements for elt in modelXbrl.modelDocument.xmlRootElement.iter("{http://www.w3.org/1999/xhtml}a", "{http://www.w3.org/1999/xhtml}img"): addReferencedFile(elt, elt) - return referencedFiles \ No newline at end of file + return referencedFiles