在阅读了关于XBRL验证的文章之后,它将是一个很好的特性,可以添加到正在进行的工作中。但是,由于性能限制,我无法将整个文档读入系统进行验证,因为大量文档可能流入系统进行处理,或者文档本身可能很大。
我想,也许通过读取文档的前几个字节,我们可以识别文档是否是xbrl。假设在xbrl文档中,xbrl的前几个字节(没有xml声明)总是以"xbrl“或"xbrli:xbrl”开头
假设XBRL文档由文档的根标记定义为"xbrl“或"xbrli:xbrl”,这是安全的吗?或者,是否有更好的方法来识别xbrl文档而不必解析整个文档?
谢谢!
发布于 2015-09-02 09:13:09
假设这一点是不安全的。不过,如果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
https://stackoverflow.com/questions/32344903
复制相似问题