XBRLで記述された財務データを扱う
言語処理系の提案
高尾 祐治†,松下 誠†,井上 克郎†,湯浦 克彦‡
†
大阪大学 大学院情報科学研究科
‡
株式会社日立製作所 ビジネスソリューション事業部
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
発表の流れ
財務データとXBRL
問題点と研究の目的
XBRL文書の構成と,そのモデル
プログラミング言語
サンプルプログラム
まとめ
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
2
財務データ
財務データとは,企業が公表する資本や借金の額などの財
務活動のデータ
財務データが記述された表は財務諸表と呼ばれる
貸借対照表
(資金の調達先,資金の使用先)
損益計算書 (売上高,経常利益,純利益)
キャッシュフロー計算書 (資金の運用先)
紙ベースの財務諸表をインターネットを通じて流通,利用す
るため,統一されたフォーマットが必要となった
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
3
財務データ記述言語 XBRL
2000年7月,米国公認会計士協会を中心に,財務データ
を記述するためのXMLベースの言語XBRL(eXtensible
Business Reporting Language)が策定された
普及するXBRL
東京証券取引所への財務データの登録が,XBRLに対応
上場企業のXBRL化した財務データをインターネットで提供
XBRL文書の変換,分析のニーズは高い
XBRL文書に書かれた値を変更し,新しい文書を作成
大量のXBRL文書から値を読み出して指標を計算
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
4
XBRLの問題点
既存のXML処理系を使ったXBRL文書操作は困難
複雑な財務データを表現するため,XBRLの仕様は複雑
既存のXML処理系を使うと,XBRLの解析処理を大量に記
述する必要がある
財務データを扱う全ての人が,XMLの深い知識を持ってない
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
5
研究の目的
XML技術の細部に精通していなくても,XBRL文書を簡単
に操作することのできる,XBRL文書の操作環境の実現
XMLの初心者にも分かりやすい,XBRL文書のモデル
大量の文書を扱うことのできる,簡単なプログラミング言語
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
6
発表の流れ
財務データとXBRL
問題点と研究の目的
XBRL文書の構成と,そのモデル
プログラミング言語
サンプルプログラム
まとめ
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
7
XBRL文書の構成
インスタンス文書
語彙を定義
タクソノミ
要素間の関係を
定義
リンクベース
リンクベース
リンクベース
リンクベース
リンクベース
インスタンス文書
財務データを記述したXML文書
タクソノミ
インスタンス文書で使う語彙(要
素名, 属性など)を定義したXML
Schema 財務諸表で現れる項目間の関係
定義リンク
リンクベース(例,親子関係)
計算リンク
値の計算方法(重み付き加算式)
要素間の関係や,各要素に対
プレゼンテーション 項目の表示順
リンク する追加情報を定義したXLink
ラベルリンク
項目の表示名称
リファレンスリンク
項目の参考文献
XBRL文書
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
8
インスタンス文書
グループ要素
<group …>
インスタンス文書の構成
グループ要素
<xbrli:numericContext id="c1" precision="18" cwa="true">
(ルートノード,必須)
<xbrli:entity>
<sample:assets
<xbrli:identifier
項目要素(財務データ,必須)
項目要素
numericContext="c1">6000</sample:assets>
schema="www.nasdaq.com">SAMP</xbrli:identifier>
<xbrli:group
<assets …>100</assets>
<xbrli:segmant/>
コンテキスト要素
xmlns:xbrli="http://www.xbrl.org/2001/instance"
<sample:currentAssets
</xbrli:entity>
numericContext="c1">5000</sample:currentAssets>
(項目要素の補足情報,必須)
<xbrli:unit>
xmlns:xsi="http://www.w3.org/2001/XMLSchema<xbrli:operator id="divide">
instance"
タプル要素(任意)
<xbrli:measure>ISO4217:EUR</xbrli:measure>
<sample:noncurrentAssets
xmlns:iso4217="http://www.iso.org/4217"
<xbrli:measure>xbrli:shares</xbrli:measure>
numericContext="c1">1000</sample:noncurrentAssets>
脚注要素(任意)
xmlns:sample="http://sample"
コンテキスト要素
</xbrli:operator>
sample.xsd">
</xbrli:unit>
<numericContext> xsi:schemaLocation="http://sample
</xbrli:numericContext>
要素とその値が連続して並ぶ
…
(入れ子構造にならない)
インスタンス文書全体に関わる記述
コンテキスト属性で,
項目要素を補足する,企業コード,単位を記述
(タクソノミ,名前空間の指定)
コンテキスト要素を指定
</numericContext>
</group>
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
9
XBRL文書の特徴
財務諸表に現れる,項目とその内訳といった親子構造は,
リンクベースで定義する
財務事実を表現する項目要素は,入れ子で記述しない
データと構造を別々に記述することで,利用場面によって表
示方法や,計算式を変えるといった,柔軟な表現が可能
逆に,XBRL文書の解析を難しくしている
インスタンス文書を解析するために,タクソノミとリンクベースの
解析もする必要がある
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
10
XBRL文書のモデル
インスタンス文書に記述された項目要素への読み書きを簡単に行うた
めのモデル
インスタンス文書に記された要素間の関係に注目
入れ子による親子関係
リンクベースで定義された項目要素の親子関係
項目要素がコンテキスト要素を参照する関係
この関係を元にXBRL文書を有向グラフで表す
頂点:要素
辺
:要素間の関係(親子)
頂点に,項目要素の値(財務データ)を付加する
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
11
XBRL文書の例
配付資料のインスタンス文書の例を参照
リンクベースで次の関係(貸借対照表の関係)を定義
assets(資産の部)は
currentAsset(流動資産)と,
noncurrentAssets(固定資産)の親
liabilitiesAndStockholdersEquity(負債の部)は
liabilities (負債)と
stockholdersEquity(資本)の親
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
12
assets
currentAssets
group
noncurrentAssets
入れ子構造による
親子関係
liabilitiesAnd
StockholdersEquity
リンクベースによる
親子関係
liabilities
id属性による
参照関係
stockholdersEquity
numericContext
(子要素は省略)
13
有向グラフを使った操作
頂点間の矢印(項目要素間の関係)を使って,操作対象
の項目要素を見つける
頂点に付加された,項目要素の値を読み書きすることで,
XBRL文書の操作を行う
有向グラフのモデルに対する操作で
インスタンス文書に記述された値の変更を実現可能
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
14
項目要素以外の操作
有向グラフのモデルは,項目要素への読み書きを簡単に行
うためのモデル
有向グラフのモデルでは表現できない構造もある
インスタンス文書の詳細な操作を行う場合は,有向グラフで
は不足
<P>
text1
<IMG src="image.jpg"/>
text2
</P>
P
IMG
text1text2
Src=“image.jpg”
DOMを利用することを考える
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
15
Document Object Model (DOM)
DOM はXMLを木構造で表すモデル
DOMツリーを使えば,どのような操作もできる
しかし,DOMは
要素の値を木構造の頂点として表すので,操作が煩雑
コメントや,処理命令も扱う(XBRL操作では不要)
DOMをそのまま提供すると,面倒な操作を強いられたり,
XBRL操作には不要なものまで考えないといけない
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
16
DOMツリーを含んだモデル
有向グラフの頂点と,DOMツリーの要素ノードを結合させた
モデルを,インスタンス文書のモデルとする
<xbrli:group>
<sample:assets numericContext="c1">6000</sample:assets>
</xbrli:group>
ルート
xbrli:group
sample:assets
6000
numericContext=“c1”
DOMのノード
有向グラフの頂点
値:6000
numericContext=“c1”
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
17
発表の流れ
財務データとXBRL
問題点と研究の目的
XBRL文書の構成と,そのモデル
プログラミング言語
サンプルプログラム
まとめ
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
18
プログラミング言語
構文
習得が容易
XBRL文書処理機能
XBRL文書のモデルを言語機能に組み込む
提供する関数
入出力
XML汎用処理
XBRL専用処理
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
19
構文
構造化プログラミング
利用者層,プログラムの規模を考慮すると妥当
宣言無しで使える変数
演算子,制御構造
加減乗除,文字列処理
if-then-else,for,while
関数の定義,呼び出し
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
20
XBRL文書の操作方法
有向グラフの頂点を構造体で表す
構造体には,要素の値,他の構造体へのリンクが含まれる
構造体のメンバを変更することで,値の操作,属性の変更
を実現
提供する関数を使うことで,構造の操作を実現
XBRL文書操作を簡単に行うことができる
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
21
提供する関数
XML汎用
XML操作
insertBefore, replaceNode, removeNode, …
要素取得
getElementByTagName, getElementById
入出力
open, save, saveAs
XBRL専用
リンクベースで定義された関係の参照
xbrl_getParentNode, xbrl_getChildNodes
項目要素コンテキスト要素への参照
xbrl_getContext
XBRL特有の計算
xbrl_calculateNode, xbrl_calculateAllNodes
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
22
発表の流れ
財務データとXBRL
問題点と研究の目的
XBRL文書の構成と,そのモデル
プログラミング言語
サンプルプログラム
まとめ
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
23
プログラムの例
貸借対照表に記述された「資産(assets)」の内訳に対して,
計算処理を行う
内訳は,リンクベースで定義された親子関係
既存の処理系では,リンクベースを解析して親子関係にある
要素を取得する必要がある
本言語では,関数を使って要素を取得できる
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
24
プログラムの例
// ファイルを開く
rootnode = open("sample_xbrl.xml");
// 要素の取得
assets = getElementByTagName(rootnode, "sample:assets");
// 子要素の配列を取得
assets_child = xbrl_getChildNodes(assets[0]);
// 子要素全てに対して,計算をする
for (i=0; i<length(assets_child); i++) {
assets_child[i].value *= rate;
}
// 同一ファイルに保存する
save(rootnode);
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
25
まとめ
有向グラフを使ったXBRL文書のモデルを導入した
モデル通してXBRL文書の操作をするためのプログラミング言
語を提案した
XBRL文書の無駄な解析を行うことなく,行いたい処理のみ
を端的に記述できるため,XBRL文書処理の大幅な省力化
が期待できる
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
26
© Copyright 2026 ExpyDoc