Search Posts

Visits: 213

[2022-12-12追記]
XBRL Japanでの勉強会の動画を次のアドレスから公開しました。
https://youtu.be/_zBWUsRz5K4
発表で使用しているWebノートは、無為です。

xBRLは、20世紀末のAICPA(the American Institute of CPAs)で、公認会計士がXMLを会計データのデジタル表現に使用しようと構想したことから始まった。

The Association of International Certified Professional Accountants (the Association) is the most influential body of professional accountants, combining the strengths of the American Institute of CPAs (AICPA) and The Chartered Institute of Management Accountants (CIMA) to power opportunity, trust and prosperity for people, businesses and economies worldwide. AICPA & CIMA represents 689,000 members, students and engaged professionals in public and management accounting and advocates for the public interest and business sustainability on current and emerging issues.

XBRLの黎明期については、インタビュー記事がAICPAから公開されていますのでご一読ください。
The story of our new language

xBRLは、当初から証券市場を中心とした公開情報の表現だけでなく、企業内部会計報告もその対象としていた。
2003年に公開されたXBRL 2.1に対応してXBRL General Ledger (Global Ledger)も公開され、世界各地域の税務当局への報告データをデジタル化する際に広く使用されている。

外部報告のタクソノミと異なり、XBRL GLは、XLinkを採用せず、XML Schemaを使用するtuple(タプル)を用いてタクソノミを定義する。XLinkを使用していないため、通常のXMLライブラリだけで処理可能である。

こうした導入の容易さに反して、近年の拡張仕様ではtuple(タプル)をその対象から除外するものが多く、XBRL GLは技術面で時代遅れになりつつある。
XBRL GLの特長については、次のXBRL Japanのページをご確認ください。
https://www.xbrl.or.jp/modules/pico1/index.php?content_id=21

2013年?にPCA会計9V.2の仕訳データをXBRL-GLに変換して出力したもので、架空の企業の1年間の記帳データである(2829件 31,352KB)
xbrlgl/instances/0001-20091231-145-2109-1-4679.xml

記事ページは、こちらです。
この記事では、OIM-CSV等の最新の拡張仕様を活用できるようにXBRL GLを再構築したXBRL-GD(Granular Data)を紹介する。

XMLスキーマcomplexTypeの特長的な機能

  • 複数の要素の組み合わせをcomplexTypeで定義して再利用
  • 要素の繰り返し回数を制限可能(任意/必須、最大繰り返し数指定)
  • 複数の要素の組み合わせに他のcomplexTypeで定義した組み合わせを使用可能

タプルを使用しない場合、これらの制約をタクソノミの定義リンクやフォーミュラリンクベースで定義する。定義の詳細は、最後に紹介する。

XBRLインスタンス文書をOIM-CSVやOIM-JSONに変換するには、Arelleをパラメタ指定したコマンドとして実行する。

今回検討したxBRL-GD

1年間の記帳データ(2829件 31,352KB)XBRL-GLデータをCSVに変換し、それをXMLに再変換した。

OIM-CSV

saveLoadableOIMプラグインを用いて変換する。
python arelleCmdLine.py –plugins ‘saveLoadableOIM’ -f インスタンス文書 –saveLoadableOIM 出力OIM-CSVファイル
実行例
python arelleCmdLine.py –plugins ‘saveLoadableOIM’ -f ../e-invoice/xBRL/TradingPartner/adc-instance.xml –saveLoadableOIM ../e-invoice/xBRL/TradingPartner/adc-instance2.csv

OIM-CSV データadc-instances2-facts.csv (18M)
OIM-CSV 定義 adc-instances2-metadata.json (1.1KB)

OIM-JSON

saveLoadableOIMプラグインを用いて変換する。
python arelleCmdLine.py –plugins ‘saveLoadableOIM’ -f インスタンス文書 –saveLoadableOIM 出力OIM-JSONファイル
実行例
python arelleCmdLine.py –plugins ‘saveLoadableOIM’ -f ../e-invoice/xBRL/TradingPartner/adc-instance.xml –saveLoadableOIM ../e-invoice/xBRL/TradingPartner/adc-instance2.json

OIM-JSON adc-instances2.json (38M)

いづれの場合も元のデータ量が31MBであり、OIM-CSVでは約半分になっているもののOIM-JSONでは逆に38MBと増加している。
これは、contextの値が重複して記載されている事が原因であり、今回のxBRL-GD形式では、かなり重複が排除できたことで約1/10以下とできている。