Файл схемы не существует в файле разбора XBRL - PullRequest
0 голосов
/ 06 декабря 2018

Я скачал zip-файл, содержащий около 200 000 html-файлов из Companies House .

Каждый файл имеет один из двух форматов: 1) встроенный формат XBRL (расширение файла .html)или 2) формат XBRL (расширение файла .xml).Глядя на самую последнюю доступную загрузку ( 6 декабря 2018 ), все файлы выглядят в прежнем формате (расширения файлов .html).

Я использую пакет XBRL в R, чтобы попытаться проанализировать эти файлы.

Вопрос 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)

и ошибка:

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.

Вопрос 2. Кто-нибудь может объяснить, что это значит для меня в основных терминах?Я новичок в XBRL.Мне нужно пойти и найти этот файл xsd и положить его куда-нибудь? Кажется, он находится здесь , но я понятия не имею, что с ним делать и куда его ставить.

Вот похожий вопрос, на который, кажется, не дан полный ответ и все ссылки на испанском, а я не знаю испанского.

После того, как я смог проанализировать один единственный HTML-файл XBRL, я планирую выяснить, как анализировать все файлы XBRL внутри нескольких zip-файлов с этого веб-сайта.

Ответы [ 2 ]

0 голосов
/ 12 декабря 2018

Вот несколько более общих объяснений, чтобы дать некоторый контекст.

Встроенный XBRL против XBRL

Файл XBRL, проще говоря, представляет собой простой список фактов.

Встроенный XBRL - это более современная версия экземпляра XBRL, которая вместо сохранения этих фактов в виде плоского списка сохраняет факты в удобочитаемых документах, «штампуя» значения.С точки зрения абстрактной обработки XBRL и файл XBRL, и встроенный файл XBRL являются экземплярами XBRL и являются просто наборами фактов.

DTS

Экземпляр XBRL (встроенный или нет)кроме того, он связан с несколькими или многими файлами таксономии, известными пользователям XBRL как DTS (набор обнаруживаемых таксономий).Эти файлы представляют собой файлы XML-схемы (.xsd), содержащие элементы отчета (концепции, измерения и т. Д.), Или файлы XML-ссылок (.xml), содержащие базы ссылок (графики элементов отчетов, метки и т. Д.).

Механизм, связывающий экземпляр XBRL с DTS, немного сложен и неоднороден: импорт схемы, включая схему, простые ссылки, указывающие на другие файлы и т. Д. Как пользователю достаточно понять, что DTS состоит из всех файлов в переходном режиме.закрытие экземпляра по этим ссылкам.Задача процессора XBRL (включая пакет R) - разрешить весь DTS.

Хранение файлов DTS

Как правило, экземпляр XBRL указывает на файл (называемый точкой входа)находится на сервере поставщика таксономии, и этот файл сам может указывать на дополнительные файлы на том же и других серверах.

Однако многие процессоры XBRL автоматически кэшируют эти файлы локально, чтобы избежать перегрузки серверов,как это установлено практикой.Обычно вам не нужно делать это самостоятельно.Очень сложно разрешить ссылки самостоятельно, чтобы загрузить все файлы вручную.

Альтернативным способом является загрузка всего DTS (в виде zip-файла в соответствии со стандартом упаковки) с серверов поставщика таксономии и его локальное использование.Однако для этого также требуется процессор XBRL для определения соответствия между удаленными URL-адресами и локальными файлами.

0 голосов
/ 07 декабря 2018

Я не знаком с пакетом XBRL, который вы используете, но кажется очевидным, что он ошибочно пытается разрешить абсолютный URL ( https: //...) Как локальный файл,

Быстрый просмотр исходного кода выявляет проблему:

XBRL.R строка 305:

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

т.е. он решает, является ли URL-адрес абсолютным или нет.он начинает «http:», а ваш URL запускается «https:».Достаточно легко взломать исправление, чтобы разрешить URL-адресам https пройти этот тест, и я подозреваю, что это решит вашу непосредственную проблему, хотя было бы гораздо лучше, если бы этот код использовал библиотеку URL-адресов, чтобы решить, является ли URL-адрес абсолютным илине вместо того, чтобы угадывать на основе протокола.

Я не уверен, что статус относительно документов iXBRL.В журнале изменений есть примечание «сообщается о работе со встроенными документами XBRL», к которому я с подозрением отношусь.Хотя он может правильно найти таксономию для встроенного документа, я не могу понять, как он правильно извлечет факты со значительным дополнительным кодом, который я не вижу никаких признаков.

Возможно, вы захотите взятьпосмотрите на проект Arelle как на альтернативный процессор с открытым исходным кодом, который определенно поддерживает Inline XBRL.

...