-
Notifications
You must be signed in to change notification settings - Fork 29
/
Copy pathxbrl-datamodel.yml
126 lines (114 loc) · 2.57 KB
/
xbrl-datamodel.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
# Description:
# This is a data model diagram file of the data frames structure as retuned
# from XBRL::xbrlDoAll function.To render this file you need DiagrammeR and
# datamodelr package:
#
# library(datamodelr)
# dm <- dm_read_yaml("xbrl-datamodel.yml")
# g1 <- dm_create_graph(dm)
# dm_render_graph(g1)
#
# References:
# XBRL package: https://cran.r-project.org/web/packages/XBRL
# datamodelr package: https://github.com/bergant/datamodelr
# DiagrammeR package: https://cran.r-project.org/web/packages/DiagrammeR
#
# See rendered image at:
# https://github.com/bergant/XBRLFiles#xbrl-data-frames-structure
# data model segments
- segment: &relations "XBRL Taxonomy - Relations"
- segment: &concepts "XBRL Taxonomy - Concepts"
- segment: &instance "XBRL Instance"
# Tables and columns
- table: "Role"
segment: *relations
columns:
roleId: {key: yes}
order:
type:
description:
definition:
- table: "Definition"
segment: *relations
columns:
roleId: {key: yes, ref: Role}
fromElementId: {key: yes, ref: Element}
toElementId: {key: yes, ref: Element}
arcrole:
order:
closed:
usable:
contextElement:
- table: "Calculation"
segment: *relations
columns:
roleId: {key: yes, ref: Role}
fromElementId: {key: yes, ref: Element}
toElementId: {key: yes, ref: Element}
arcrole:
order:
closed:
usable:
contextElement:
- table: "Presentation"
segment: *relations
columns:
roleId: {key: yes, ref: Role}
fromElementId: {key: yes, ref: Element}
toElementId: {key: yes, ref: Element}
arcrole:
order:
closed:
usable:
contextElement:
- table: "Element"
segment: *concepts
columns:
elementId: {key: yes}
type:
substitutionGroup:
periodType:
abstract:
balance:
nillable:
- table: "Label"
segment: *concepts
columns:
elementId: {key: yes, ref: Element}
lang: {key: yes}
labelRole: {key: yes}
labelString:
- table: "Context"
segment: *instance
columns:
contextId: {key: yes}
scheme:
identifier:
startDate:
endDate:
dimension:
value:
- table: "Fact"
segment: *instance
columns:
factId: {key: yes}
elementId: {ref: Element}
contextId: {ref: Context}
unitId: {ref: Unit}
fact:
decimals:
ns:
- table: "Unit"
segment: *instance
columns:
unitId: {key: yes}
measure:
unitNumerator:
unitDenominator:
- table: "Footnote"
segment: *instance
columns:
factId: {key: yes, ref: Fact}
lang: {key: yes}
footnoteRole: {key: yes}
footnoteString: