在阅读了有关XBRL验证之后,添加到正在进行的工作计划中将是一个很棒的功能。但是,由于性能的限制,我无法将整个文档读入系统进行验证,因为大量文档可能会流入系统进行处理,或者文档本身可能很大。
我想,也许通过阅读文档的前几个字节,我们可以确定文档是否是xbrl。假设在xbrl文档中,xbrl的前几个字节(没有xml声明)将始终以" xbrl"开头。或" xbrli:xbrl"
可以安全地假设,XBRL文档由文档的根标签定义为" xbrl"或" xbrli:xbrl"?或者是否有更好的方法来识别xbrl文档而无需解析整个文档?
谢谢!
答案 0 :(得分:1)
假设这是不安全的。但是,如果95%的命中率对你来说足够好,那就好了。
如果您明确检查前缀,那将几乎100%安全:
xmlns:prefix="http://www.xbrl.org/2003/instance"
和根<prefix:xbrl ...>
xmlns="http://www.xbrl.org/2003/instance"
和根<xbrl ...>
也许,你会发现一个有效的正则表达式来匹配那些。关键是,您不能假设前缀始终为none或xbrli。
安全的方法是使用SAX解析器(不解析整个文档)。例如,请参阅此问题:Determine root Element during SAX parsing