0

在阅读了有关 XBRL 验证的内容后,将其添加到正在进行的程序中将是一个很棒的功能。但是,由于性能限制,我无法将整个文档读入系统进行验证,因为大量文档可能流入系统进行处理,或者文档本身可能很大。

我想,也许通过读取文档的前几个字节,我们可以识别文档是否是 xbrl。假设在 xbrl 文档中,xbrl 的前几个字节(没有 xml 声明)总是以“xbrl”或“xbrli:xbrl”开头

假设 XBRL 文档由文档的根标记定义为“xbrl”或“xbrli:xbrl”是否安全?或者有没有更好的方法来识别 xbrl 文档而无需解析整个文档?

谢谢!

4

1 回答 1

1

假设这一点是不安全的。不过,如果 95% 的命中率对你来说已经足够好了,那就太好了。

如果您明确检查前缀,那几乎是 100% 安全的:

  1. 检查xmlns:prefix="http://www.xbrl.org/2003/instance"和根<prefix:xbrl ...>
  2. 检查xmlns="http://www.xbrl.org/2003/instance"和根<xbrl ...>

也许,您会找到一个有效的正则表达式来匹配这些。关键是,您不能假设前缀始终为 none 或 xbrli。

安全的方法是使用 SAX 解析器(它不会解析整个文档)。例如看这个问题:Determine root Element during SAX parsing

于 2015-09-02T09:13:09.917 回答