Beispiel-4: Validieren von XBRL
Im folgenden Beispiel wird gezeigt, wie Sie eine XBRL-Datei validieren. Dabei kann es vorkommen, dass eine oder mehrere Taxonomien fehlen. In diesem Fall werden Sie von RaptorXML+XBRL Server darauf hingewiesen und Sie erhalten einen Vorschlag zur Behebung des Problems.
Validierung von XBRL über die Befehlszeile
Die Validierung kann aufgrund fehlender Taxonomien fehlschlagen. So könnte etwa folgender Fehler auftreten, wenn Sie eine Validierung unter Verwendung von PowerShell durchführen:
PS C:\temp\Nanonull> raptorxmlxbrl valxbrl nanonull.xbrl
file:///C:/temp/Nanonull/nanonull.xbrl: runtime="141ms" result="Failed"
Error: file:///C:/temp/Nanonull/nanonull.xsd:52:
Unable to load a schema with target namespace 'http://fasb.org/us-types/2013-01-31'
from 'http://xbrl.fasb.org/us-gaap/2013/elts/us-types-2013-01-31.xsd'.
FatalError: I/O operation on file 'http://xbrl.fasb.org/us-gaap/2013/elts/us-types-2013-01-31.xsd' failed.
Details: I/O Error 1001: File 'us-types-2013-01-31.xsd' is part of missing taxonomy 'US GAAP 2013.01'.
Call 'C:\ProgramData\Altova\SharedBetweenVersions\taxonomymanager.exe install us-gaap-2013.0'.
Führen Sie in diesem Fall den vorgeschlagenen Altova Taxonomie-Manager-Befehl aus:
PS C:\temp\Nanonull> C:\ProgramData\Altova\SharedBetweenVersions\taxonomymanager.exe install us-gaap-2013.0
Install ratings-2015.0.0, us-gaap-2013.0.0.
Create folder C:\ProgramData\Altova\pkgs\xbrl\ratings\.
Download from Altova taxonomy store: ratings-2015-03-31_0.zip.
Create folder C:\ProgramData\Altova\pkgs\xbrl\us-gaap\.
Download from Altova taxonomy store: country-2012-01-31_0.zip.
Download from Altova taxonomy store: country-2013-01-31_0.zip.
Download from Altova taxonomy store: edgartaxonomies-2013_0.xml.
Download from Altova taxonomy store: dei-2012-01-31_0.zip.
Download from Altova taxonomy store: currency-2011-01-31_0.zip.
Download from Altova taxonomy store: dei-2013-01-31_0.zip.
Download from Altova taxonomy store: currency-2012-01-31_0.zip.
Download from Altova taxonomy store: invest-2012-01-31_0.zip.
Download from Altova taxonomy store: rr-2010-02-28_0.zip.
Download from Altova taxonomy store: exch-2013-01-31_0.zip.
Download from Altova taxonomy store: invest-2013-01-31_0.zip.
Download from Altova taxonomy store: naics-2011-01-31_0.zip.
Download from Altova taxonomy store: rr-2012-01-31_0.zip.
Download from Altova taxonomy store: sic-2011-01-31_0.zip.
Download from Altova taxonomy store: stpr-2011-01-31_0.zip.
Download from Altova taxonomy store: us-gaap-2013-01-31_0.zip.
OK.
Bestätigen Sie die installierten Taxonomien mit Hilfe des Taxonomie-Managers:
PS C:\temp\Nanonull> taxonomymanager list -i
PKGID NAME VERSION STATUS
ratings-2015.0 "Ratings 2015" installed: ratings-2015.0.0 "2015.03"
us-gaap-2013.0 "US GAAP 2013" installed: us-gaap-2013.0.0 "2013.01"
2 packages, 0 upgradeable
OK.
Nachdem die Taxonomien nun vom Taxonomie-Manager korrekt installiert wurden, sollte die Validierung erfolgreich sein.
PS C:\temp\Nanonull> raptorxmlxbrl valxbrl nanonull.xbrl
file:///C:/temp/Nanonull/nanonull.xbrl: runtime="787ms" result="OK"
Testen von POST-Requests mit CURL
Ein POST-Request kann nun mit CURL getestet werden:
PS C:\temp\Nanonull> curl.exe -F 'msg={\"command\": \"xbrl\", ["args\":[\"file:///C:/temp/Nanonull/nanonull.xbrl\"], \"options\":{}};type=application/json' http://localhost:8087/v1/queue
Das Ergebnis ist:
"state": "OK"
Laden Sie die Instanzdatei unter Verwendung des additional-files-Schemas mittels POST hoch:
PS C:\temp\Nanonull> curl.exe -F 'msg={\"command\": \"xbrl\", \"args\":[\"additional-files:///nanonull.xbrl\"], \"options\":{}};type=application/json'
-F "additional-files=@nanonull.xbrl;type=application/xml" http://localhost:8087/v1/queue
Angenommen, die Taxonomie nanonull.xsd wurde nicht gefunden: Wir erhalten:
Error: additional-files:///nanonull.xbrl:3: Value 'nanonull.xsd' of attribute 'xlink:href' on element <link:schemaRef> must point to a valid taxonomy schema.
Error: I/O operation on file 'additional-files:///nanonull.xsd' failed.
Details: System Error 2: The system cannot find the file specified.
I/O Error 400: Don't know how to deal with relative URI (scheme name is missing).
FatalError: additional-files:///nanonull.xbrl:2: The DTS discovered starting from XBRL instance <xbrli:xbrl> is not valid.
Daher inkludieren wir im POST-Request die Taxonomie und die damit verknüpften Dateien wie folgt:
PS C:\temp\Nanonull> curl.exe -F 'msg={\"command\": \"xbrl\", \"args\":[\"additional-files:///nanonull.xbrl\"], \"options\":{}};type=application/json' -F "additional-files=@nanonull.xbrl;type=application/xml" -F "additional-files=@nanonull.xsd;type=application/xml" -F "additional-files=@nanonull_cal.xml;type=application/xml" -F "additional-files=@nanonull_def.xml;type=application/xml" -F "additional-files=@nanonull_for.xml;type=application/xml" -F "additional-files=@nanonull_lab.xml;type=application/xml" -F "additional-files=@nanonull_pre.xml;type=application/xml" -F "additional-files=@nanonull_tab.xml;type=application/xml" http://localhost:8087/v1/queue
Wir können nun das gesamte Nanonull.zip-Archiv bereitstellen.
PS C:\temp\Nanonull> curl.exe -F 'msg={\"command\": \"xbrl\", \"args\":[\"additional-files:///Nanonull.zip%7Czip/nanonull.xbrl\"], \"options\":{}};type=application/json' -F "additional-files=@Nanonull.zip;type=application/octet-stream" http://localhost:8087/v1/queue