Views: 19
構造化CSV:XMLの階層構造を1枚のシートで表現する
構造化CSV(Structured CSV)は、xBRL-CSV仕様に基づいた標準的なフォーマットであり、複雑な階層構造のデータをフラットな表形式で記録することを可能にします。これは単なるリレーショナルデータベースのダンプではなく、請求書や仕訳帳などの多層構造を1枚のCSVシート上で表現します。
1. xBRL-CSV に基づく表現
構造化CSVは、xBRL-CSVの構文モデルに準拠しています:
-
CSV
ファイルは、1行に1つの事実(fact)を記録します。 -
JSON
メタデータファイルには、表の構造、各列のディメンションやメンバー、そしてXBRLタクソノミとのマッピングが定義されています。 -
各列は、
dimension
、あるいはmember
として明示的に定義されます。 -
ヘッダーや明細といった階層的なレコードはフラットに展開されますが、ディメンションベースの連番(sequence number)によってグループ化されます。
このフォーマットは、XBRL GLインスタンス文書など、従来XMLで表現されてきたデータの容量を圧縮し、プログラム処理が容易な表現に最適です。
2. メタデータ:構造とセマンティクス
JSON形式のメタデータファイルでは:
-
XBRLタクソノミ(通常は
.xsd
ファイル)への参照が定義されます。 -
各CSV列は、タクソノミ上のコンセプト(例:
gl-cor:entryNumber
,gl-cor:amount
)にマッピングされます。 -
列が
dimension
、または`member`であるかを明示します。 -
タクソノミの
label
リンクベースにより、多言語ラベル(日本語、英語など)や定義が取得可能です。
3. フラットな行で階層構造を表現
構造化CSVでは、次のように整数の連番を使ってヘッダーと明細の関係を表現します:
entryHeader,entryDetail,entryNumber,lineNumber,amount
1,,INV-001,,
1,1,,1,100.00
1,2,,2,250.00
2,,INV-002,,
2,1,,1,300.00
entryHeader | entryDetail | entryNumber | lineNumber | amount |
---|---|---|---|---|
1 |
INV-001 |
|||
1 |
1 |
1 |
100.00 |
|
1 |
2 |
2 |
250.00 |
|
2 |
INV-002 |
|||
2 |
1 |
1 |
300.00 |
-
entryHeader
とentryDetail
は整数のシーケンス番号です。 -
entryHeader
のみがある行はヘッダーレベルの事実です。 -
entryDetail
がある行は直前のヘッダーに属する明細です。
4. 階層構造の図解
この図は、entryDetail
の行が entryHeader
の下にどのようにグループ化されるかを示しています。データはすべて1つのCSVファイル内にありながら、明確な階層関係を持ちます。
5. 顧客請求書の例
以下は、構造化CSVで表現された顧客請求書の例です。entryHeader
と entryDetail
の連番を使用して、ヘッダーおよび明細の事実が1つのシートにフラットに記録されています。
accountingEntries | entryHeader | entryDetail | entriesType | uniqueID | postedDate | entryNumber | entryComment | lineNumber | amount | maturityDate | terms | measurableDescription | measurableQuantity | measurableUnitOfMeasure | measurableCostPerUnit |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 |
other |
001 |
|||||||||||||
1 |
1 |
2005-10-14 |
50 |
Invoice: #2 Customer: Joe’s Materials |
|||||||||||
1 |
1 |
1 |
1 |
220 |
2005-10-21 |
7 Days Date |
MK II Widgets with improved spatulas |
10 |
EACH |
22 |
|||||
1 |
1 |
2 |
2 |
25 |
2005-10-21 |
7 Days Date |
Service Kits for MK II widgets |
5 |
EACH |
5 |
|||||
1 |
2 |
2005-10-14 |
51 |
Invoice: #3 Customer: Joe’s Materials |
|||||||||||
1 |
2 |
1 |
1 |
60 |
2005-10-14 |
COD |
Service Kits for MK I Widgets |
20 |
EACH |
3 |
|||||
1 |
2 |
2 |
2 |
80 |
2005-10-14 |
COD |
Bottled Water |
100 |
EACH |
0.8 |
|||||
1 |
3 |
2005-10-14 |
52 |
Invoice: #5 Customer: Jacquiline Hau Shearer’s Snacks |
|||||||||||
1 |
3 |
1 |
1 |
325 |
2005-10-21 |
7 Days Date |
Bottled Water Shrink Wrap Dozens |
50 |
EACH |
6.5 |
6. 多言語対応とセマンティクスの活用
XBRLタクソノミとの連携により:
-
各コンセプト名は、ラベルリンクベースを通じて日本語や英語など、ユーザーフレンドリーな名称に変換可能です。
-
業務定義やドキュメント説明文は、タクソノミのラベルリンクベースやリファレンスリンクベースから取得できます。
-
表示リンクベースにより、dimensional hypercube で定義された構造が簡易な階層として可視化され、読みやすい表示が可能になります。
7. 明細1件のヘッダー統合
ヘッダー内に明細がちょうど1件のみ存在する場合、dimensional definition linkbase
に xbrldt:targetRole
を用いることで、entryHeader
と entryDetail
の2つのディメンションを統合して表現できます。これは特に、中小企業のように単票処理の多いケースで、より簡素な表示を実現します。
8. 結論
構造化CSVは、xBRL-CSVとJSONメタデータによる堅牢な設計により、ビジネス文書の意味的に豊かな情報を、コンパクトで相互運用性の高い形式で記録・交換するための、将来志向のソリューションです。タクソノミとの連携によって、多言語環境でも正確な理解と整合性のあるデータ処理が可能となります。
監査、電子申告、規制報告など、現代の構造化データ交換を支える基盤の一つです。
コメントを残す