なぜXBRLはこうできているのか #2|定義を四つの報告書にコピーしない――タクソノミとインスタンスを分けた理由
議論参加:レン (初学者の視点で確認する読者) / サキ (財務報告の作成実務を知る担当者) / コウ (XML・JSON・データベース設計者) / ユウ (XBRLタクソノミ設計者) / ミユ (AIとデータ基盤を扱う技術者) / ナオ (企業開示を検証するリサーチャー) / テツオ (一般読者向けの記事を点検する編集者)
A社とB社が、それぞれ2025年と2026年の報告を作る。報告は全部で四つある。
四つのファイルへ「売上高」の定義をコピーした後、日本語ラベルに誤りが見つかった。どのファイルを直すべきだろう。四つとも直せばよいように見える。しかし、一つを直し忘れた瞬間、同じつもりだった定義が二種類になる。
逆に、四つの報告が一つの共有辞書を参照していれば、定義の重複は避けられる。では、共有辞書が翌年に更新されたら、2025年の報告の意味まで変わってしまうのだろうか。
ここで、データベースを使う人なら別の疑問を持つ。運用データベースでは、列を追加・変更し、必要ならデータを移行して、アプリケーションを現行スキーマへ合わせる。過去のスキーマを毎回読み込んでから現在のデータを使う、という運用は一般的ではない。なぜXBRLだけは、古いタクソノミを残さなければならないのか。
これが、XBRLのインスタンスとタクソノミを分ける設計が解こうとした問題であり、同時に生んだ問題でもある。
インスタンスは、企業が報告した値を持つ。
タクソノミは、その値に使うコンセプトと関係を定義する。
分けることで定義を再利用できるが、過去の報告を再現するには当時のタクソノミも必要になる。
この記事は、XBRL EssentialsとXBRL 2.1を基本仕様の土台にし、Taxonomy Packageと版管理の公式資料、金融庁が公開する過年度のEDINETタクソノミで実際の運用を確認した。各資料が何を裏付けるかは末尾で整理している。
四つの報告に、定義を四回書く
まずXBRLを使わず、自己完結したJSONを四つ作る場合を考える。各ファイルに値と定義を一緒に入れれば、単体では分かりやすい。
| ファイル | 値 | ファイル内へコピーする定義 |
|---|---|---|
| A社・2025年 | 100 | revenue は通常の営業活動から得た収益 |
| A社・2026年 | 110 | revenue は通常の営業活動から得た収益 |
| B社・2025年 | 80 | revenue は通常の営業活動から得た収益 |
| B社・2026年 | 95 | revenue は通常の営業活動から得た収益 |
四つだけなら、これでも困らないかもしれない。ファイルを一つ保存すれば、値と定義を一緒に読める利点もある。
問題は、会社数、年度数、言語、検証規則が増えたときだ。同じ文章をコピーしたつもりでも、A社だけ表現を変える、B社だけ古い定義を残す、一つだけデータ型を直し忘れる、といったずれが生まれる。
コウ(XML・JSON・データベース設計者)は、ここでXBRLだけを特別扱いすべきではないと反論した。
コウ(XML・JSON・データベース設計者)
値のテーブルと定義のマスターを分ける設計は、データベースでもできます。XBRLでなければ分離や再利用ができない、という説明は正しくありません。
その通りである。XBRLの特徴は「定義と値を分ける発想を発明したこと」ではない。異なる組織のソフトウェアが、その分離された定義を同じ方法で発見し、解釈できる標準を用意したことにある。
インスタンスは値を持ち、タクソノミは意味を持つ
XBRL 2.1の基本形を、説明用に大幅に簡略化すると次のようになる。
<!-- インスタンス側:参照先と、実際に報告する値 -->
<link:schemaRef xlink:href="taxonomy-2026.xsd" />
<example:Revenue contextRef="FY2026" unitRef="JPY">110</example:Revenue>
<!-- タクソノミ側:Revenueというコンセプトの定義 -->
<xsd:element
name="Revenue"
type="xbrli:monetaryItemType"
xbrli:periodType="duration" />
実際のタクソノミは一つのスキーマだけとは限らない。スキーマから別のスキーマやリンクベースをたどり、必要な定義の集合を作る。この集合が**DTS(Discoverable Taxonomy Set)**である。日本語に無理に置き換えず、「参照をたどって見つかるタクソノミ一式」と考えるとよい。
同じ年の報告は定義を共有し、年版が変われば入口も分ける
インスタンス
エントリーポイント
計算、参照など
インスタンス
エントリーポイント
計算、参照など
この図はXBRL 2.1とTaxonomy Packageの説明を単純化した編集部の整理である。すべての報告が同じ版を参照するとは限らず、企業拡張が加わることもある。
再利用で共有するのは、文章ではなく「同じ定義であること」
定義をコピーした二つのファイルが一字一句同じでも、後から別々に変更できるなら、同一性は維持されない。共有タクソノミでは、報告がどのコンセプトを使ったかを名前空間とコンセプト名などから機械的に識別できる。名前空間は、同じ Revenue という名前でも、どの発行者・どのタクソノミに属する定義かを区別するための識別情報だと考えればよい。
この違いは、単なるファイル容量の節約ではない。
| 共有できるもの | 作成者側の利点 | 利用者側の利点 |
|---|---|---|
| コンセプト | 同じ項目を毎年再定義しない | どの定義を使ったか識別できる |
| ラベル | 日本語・英語などを定義へ結び付ける | 表示名が違っても同じコンセプトを追える |
| データ型・期間の性質 | 金額、文字列、一定期間、時点などを再利用する | 明らかな型違いを検証できる |
| 計算・ディメンション等 | 報告要件を機械可読な形で配る | 同じ規則を使って検証・集計する出発点になる |
ただし、同じコンセプトを使ったからといって、二社の数字が無条件で比較可能になるわけではない。会計方針、連結範囲、期間、ディメンション、企業拡張、タグ付けの適否は別途確認が必要だ。
データベースは古いスキーマを残さないのに、なぜXBRLは残すのか
この問いには、まず前提を少し正確にする必要がある。データベースでも、監査ログ、バックアップ、移行スクリプト、データウェアハウスなどに過去の構造を残すことはある。ただし、一般的な運用データベースでは、利用者が日々問い合わせる対象は現在のデータと現在のスキーマである。管理者はテーブル構造を変更し、既存データを新しい形へ移し、アプリケーションも一緒に更新できる。
XBRLの開示書類は、同じ場所で更新し続ける業務データとは性格が違う。提出時点の内容として企業、規制当局、投資家、情報会社などへ複製・配布された当時の報告である。誤りがあれば訂正報告書などが別途提出されることはあるが、過去のコピーすべてを新しい構造へ一斉移行するわけではない。古い報告を新しいタクソノミへ変換したファイルは、便利な二次データにはなっても、「提出時に使われた定義で同じ報告を読むこと」とは別物である。
「管理中の現在データ」と「提出時点の内容として配布された報告」は違う
違いを整理すると、次のようになる。
| 比較点 | 一般的な運用データベース | XBRLによる開示書類 |
|---|---|---|
| 主な対象 | 現在も更新中の業務データ | ある提出時点の報告 |
| 変更を管理する人 | 一つの組織がDBとアプリを調整できる | タクソノミ作成者、提出者、受領者が別々 |
| スキーマ変更時 | データを現行構造へ移行できる | 過去の提出物を一方的に書き換えられない |
| 古い意味の扱い | 必要なら履歴基盤や変換規則で再現 | 当時のタクソノミ版との対応が提出時点の解釈に必要 |
| 新旧比較 | 組織内の移行ロジックで吸収できる | 版間の変更とコンセプトの対応を明示して比較する |
たとえば、2025年版の Revenue が金額・期間項目として定義され、2026年版でラベル、データ型、計算関係、検証規則のいずれかが変わったとする。2025年の値を2026年版へ黙って載せ替えると、「当時どの規則で作成・検証された報告か」が失われる。XBRL Internationalの版管理ガイダンスが、小さなラベル修正でもリリースを識別し、報告を正しい版で解釈・検証できるようにすべきだとするのは、このためである。
金融庁がEDINETタクソノミを2008年版以降、年版ごとに公表し続けているのも、実務上この区別が必要なことを示す。新しいタクソノミは古いタクソノミの単なる上書きではなく、どの書類・対象期間にどの版を適用するかが決まる。したがって、過去の版を残す目的は、古いシステムを懐かしむためではない。その報告が提出された時点の意味と検証条件を保存するためである。
コウ(XML・JSON・データベース設計者)
データベースの行なら、管理者が新しい列構成へ移してアプリも直せます。しかし、外部へ配布済みの報告を同じようには扱えません。XBRLの過去版は「昔のDB設計」より、「提出時の文書を読むための当時の辞書」に近いのです。
「共有先を直せば、過去も全部直る」は利点ではない
議論では、共有タクソノミなら一か所を修正するだけで済む、という意見が出た。現在の報告要件を更新する場面では、重複した定義を個別に直さずに済む利点がある。
しかし、過去のインスタンスを勝手に新しい定義で読み替えてよい、という意味ではない。
ナオ(企業開示を検証するリサーチャー)は、参照先のURLが残っていることと、当時の状態を再現できることは別だと指摘した。
ナオ(企業開示を検証するリサーチャー)
過去の報告を検証するなら、その報告に適用された版の定義が必要です。「今アクセスできる参照先」だけでなく、「当時何を参照していたか」を再現できなければなりません。
タクソノミの再利用ガイダンスも、再利用元には複数の現行版があり、報告期間によって適用版が異なり得ると注意する。古い項目が非推奨になっても技術エラーにならない場合や、設計の違いが再利用時の互換性に影響する場合もある。
したがって、比較するときに必要なのは「最新タクソノミへ置換すること」ではない。
- インスタンスがどの参照先を示しているか確認する。
- その報告へ適用されたタクソノミ版を特定する。
- 当時のファイル一式を取得できる状態にする。
- 異なる版を比較する場合は、変更点を別途確認する。
Taxonomy Packageは「持ち帰れる共有辞書」
レン(初学者の視点で確認する読者)は、議論で「参照先が消えたら、数字だけが残るのでは」と問い続けた。
レン(初学者の視点で確認する読者)
インスタンスが住所だけを持つなら、住所の先にあった定義も一緒に保存しないと、後から正しく読めないのではないでしょうか。
この問題へ対応する仕組みの一つがTaxonomy Packageである。Taxonomy Packages 1.0は、複数ファイルからなるタクソノミとメタデータを標準化されたZIP構造で配布する。パッケージには版や発行者などの情報、エントリーポイントの一覧を持たせられ、公開URLをパッケージ内のローカルファイルへ対応させるリマッピングも使える。
つまり、参照方式だから常にインターネットへ接続しなければならないわけではない。対応ツールへ当時のTaxonomy Packageを読み込ませれば、公開URLを手掛かりにパッケージ内のコピーを使える。
URLの記録だけで終わらせず、当時のファイルを保存する
公開URLを参照
ローカル位置へ対応
オフラインで利用
ただし、仕様が保存責任者を一律に決めるわけではない。どのパッケージを誰が何年保管するかは、利用する提出制度や組織の保存方針を確認する必要がある。
分離の便益とコストは、同じ設計から生まれる
テツオ(一般読者向けの記事を点検する編集者)は、20ターンの議論を次の一文にまとめた。
テツオ(一般読者向けの記事を点検する編集者)
分離の便益と、分離のコストは、同じ設計から来ています。
| 分離で得られるもの | 同じ分離が生む負担 |
|---|---|
| 多数の報告が同じ定義を参照できる | インスタンスだけでは意味が完結しない |
| 定義と関係を重複せず配布できる | 複数ファイルと参照関係をたどる必要がある |
| 組織をまたいで同じコンセプトを識別できる | 版・参照先・企業拡張まで確認しなければならない |
| 作成者と受領者が同じ規則から検証を始められる | 当時のタクソノミ一式を再現可能に保つ必要がある |
小規模で閉じたシステムなら、値と定義を一つのJSONへ入れたり、運用データベースを現行スキーマへ移行したりする方が簡単な場合もある。利用者が一組織だけで、項目も少なく、外部との交換や共通検証が要らないなら、XBRLの分離と版保存は過剰設計になり得る。
一方、何千もの企業が、複数年度にわたり、規制当局、監査人、データ会社、投資家へ同じ報告を渡す環境では、定義を各ファイルへコピーして同期する方法にも大きな費用がかかる。XBRLは、その大規模な交換側へ重心を置いた設計である。
AIは分散したファイルを一つに見せられるか
ミユ(AIとデータ基盤を扱う技術者)は、AIがこの複雑さを隠す役割を担えると考えた。利用者がDTSのファイル名を一つずつ追わなくても、AIがエントリーポイントから必要なラベル、定義、計算関係、参照を集め、平易な説明へ変換することはできる。
ただしAIが便利になるほど、裏でどの版を読んだかが見えなくなる危険もある。AIへの指示には、少なくとも次を含めたい。
このインスタンスが参照するタクソノミのエントリーポイントと版を示してください。
使用したTaxonomy Packageまたは取得元URLも記録してください。
最新の定義へ置き換えず、この報告に適用された版でコンセプトを説明してください。
別年度と定義が異なる場合は、同じ項目として自動統合せず差を示してください。
AIは分散したファイルを読みやすい一つの画面へまとめられる。しかし、版の選択や取得元を黙って省略してよい理由にはならない。
結論:辞書を共有するなら、辞書の版も残す
XBRLがインスタンスとタクソノミを分けた最大の理由は、多数の報告が同じコンセプトと関係を再利用できるようにするためである。これはJSONやデータベースでも設計できる分離だが、XBRLは組織をまたいで定義を発見・解釈する共通方式まで標準化した。
運用データベースと違って過去のタクソノミを残すのは、技術的に移行できないからではない。対象が、管理者の手元で更新し続ける現在データではなく、提出時点の内容として外部へ渡った報告だからである。新しい構造へ変換した分析用データと、提出時に使われた定義で報告を読むことは、分けて扱わなければならない。
その代わり、インスタンスだけを保存しても報告の意味は完結しない。過去の報告を正しく読むには、その時点で適用されたタクソノミ版と関連ファイルを再現できなければならない。
値と定義を分けたから、辞書を何千社で共有できる。
値と定義を分けたから、辞書の版を別に保存しなければならない。
XBRLの設計を理解するとは、この二つを同時に見ることである。
出典を読むときのポイント
- XBRL International「XBRL Essentials」:インスタンス、ファクト、コンセプト、タクソノミの役割と、タクソノミを公開して多数の報告を作成・検証・分析する基本的な利用像を確認した。
- XBRL 2.1 Recommendation:インスタンスの参照からスキーマとリンクベースを発見し、DTSを構成する規則を確認した。
- XBRL International「Defining Reporting Requirements」:タクソノミに定義できるラベル、データ型、期間の性質、計算、参照、ディメンションなどを確認した。
- XBRL International「How to reuse an existing taxonomy」:既存コンポーネントを再利用する利点と、版更新、非推奨項目、変更報告、設計互換性などの維持コストを確認した。レビュー・ドラフトであるため、規範的な提出規則としては扱っていない。
- XBRL International「How to manage taxonomy versioning」:報告の正しい解釈・検証と版間の定義衝突を避けるため、タクソノミの各リリースを一意に識別する必要性を確認した。レビュー・ドラフトであるため、設計ガイダンスとして扱った。
- Taxonomy Packages 1.0:タクソノミとメタデータを標準ZIP構造で配布し、エントリーポイントとURLリマッピングを機械可読にする仕様を確認した。
- XBRL International「Practice Profile: Taxonomy Packages」:Taxonomy Packageによるオフライン利用、版情報、エントリーポイント発見の利用像を確認した。
- XBRL International「Taxonomy Publication and Taxonomy Package Documentation」:エントリーポイントがDTS発見の論理的な開始点であることと、パッケージの公表に関する設計ガイダンスを確認した。
- 金融庁「EDINETタクソノミ一覧」:2008年版から2026年版まで、過年度を含むEDINETタクソノミが版別に公表されていることを確認した。
- PostgreSQL「Modifying Tables」:運用データベースでは、現在のテーブル定義を変更する標準的な操作が用意されていることを比較材料として確認した。
この記事は特定の投資判断を勧めるものではありません。
出典
- https://specifications.xbrl.org/xbrl-essentials.html
- https://www.xbrl.org/Specification/XBRL-2.1/REC-2003-12-31/XBRL-2.1-REC-2003-12-31%2Bcorrected-errata-2013-02-20.html
- https://specifications.xbrl.org/reporting-requirements.html
- https://www.xbrl.org/guidance/taxonomy-reuse/
- https://www.xbrl.org/Specification/taxonomy-package/REC-2016-04-19/taxonomy-package-REC-2016-04-19.html
- https://www.xbrl.org/guidance/taxonomy-packages/
- https://www.xbrl.org/guidance/taxonomy-publication/
- https://www.xbrl.org/guidance/manage-taxonomy-versioning/
- https://www.fsa.go.jp/search/EDINET_Taxonomy_All.html
- https://www.postgresql.org/docs/current/ddl-alter.html