XBRL 解析文件中不存在架构文件

B_R*_*eal 6 xsd r xbrl

我已经从Companies House下载了一个包含大约 200,000 个 html 文件的 zip 文件。

每个文件采用以下两种格式之一:1) 内嵌 XBRL 格式(.html 文件扩展名)或 2) XBRL 格式(.xml 文件扩展名)。查看最新的可用下载(2018 年 12 月 6 日),所有文件似乎都是以前的格式(.html 文件扩展名)。

我在 R 中使用XBRL 包来尝试解析这些文件。

问题 1:XBRL 包是为了解析内联 XBRL 格式 (.html) 文件,还是仅适用于 XBRL (.xml) 格式?如果没有,谁能告诉我在哪里可以解析内联 XBRL 格式文件?我不完全确定内联和非内联有什么区别。

假设 XBRL 包旨在能够解析内联 XBRL 格式文件,我遇到了一个错误,告诉我 xbrl.frc.org.uk/FRS-102/2014-09-01/FRS-102-2014- 09-01.xsd 文件不存在。这是我的代码:

install.packages("XBRL")
library(XBRL)

inst <- "./rawdata/Prod224_0060_00000295_20171130.html" # manually unzipped
options(stringsAsFactors = FALSE)
xbrl.vars <- xbrlDoAll(inst, cache.dir = "XBRLcache", prefix.out = NULL, verbose = TRUE)
Run Code Online (Sandbox Code Playgroud)

和错误:

Schema:  ./rawdata/https://xbrl.frc.org.uk/FRS-102/2014-09-01/FRS-102-2014-09-01.xsd 
Level: 1 ==> ./rawdata/https://xbrl.frc.org.uk/FRS-102/2014-09-01/FRS-102-2014-09-01.xsd 
Error in XBRL::xbrlParse(file) : 
  ./rawdata/https://xbrl.frc.org.uk/FRS-102/2014-09-01/FRS-102-2014-09-01.xsd does not exists. Aborting.
Run Code Online (Sandbox Code Playgroud)

问题 2. 有人可以用基本术语来解释这对我意味着什么吗?我是 XBRL 的新手。我需要去找这个 xsd 文件并把它放在某个地方吗?它似乎位于 here,但我不知道如何处理它或将它放在哪里。

这是一个类似的问题,似乎没有完全回答,链接都是西班牙语,我不会西班牙语。

一旦我能够解析一个单一的 html XBRL 文件,我的计划就是弄清楚如何解析来自该网站的多个 zip 文件中的所有 XBRL 文件。

pdw*_*pdw 1

我不熟悉您正在使用的 XBRL 包,但很明显,它错误地尝试将绝对 URL ( https://... ) 解析为本地文件。

快速浏览一下源代码就可以发现问题所在:

XBRL.R 第 305 行:

fixFileName <- function(dname, file.name) {
if (substr(file.name, 1, 5) != "http:") {
   [...]
Run Code Online (Sandbox Code Playgroud)

也就是说,它通过 URL 是否以“http:”开头来决定 URL 是否是绝对的,而您的 URL 是否以“https:”开头。破解一个修复程序以允许 https URL 也通过此测试是很容易的,我怀疑这会解决您眼前的问题,尽管如果此代码使用 URL 库来确定 URL 是绝对 URL 会好得多不是而不是根据协议进行猜测。

我不确定 iXBRL 文档的状态如何。更改日志中有一条注释说“据报告可与内联 XBRL 文档一起使用”,我对此表示怀疑。虽然它可能会正确找到内联文档的分类法,但我看不到它如何使用我看不到任何迹象的重要附加代码正确提取事实。

您可能想看看 Arelle 项目作为替代开源处理器,它确实支持内联 XBRL。