XBRL 剖析
与XBRL 比较
实例文档的根节点改为<xbrl>
Discoverable Taxonomy Set (DTS)
支持XML Schema所有数据类型
Context取代numericContext和nonNumericContext
取消数值背景咨询的cwa属性
Linkbase的内涵更加明确
XBRL : Specification
规格书由四份Schema文件构成:
(W3C文件,定义xlink的十大属性)
(根据W3C的xlink定义连接库使用的基本元素)
(规范连接库的结构)
(规范taxonomy及instance的结构)
XBRL 规格书架构
Discoverable Taxonomy Set (DTS)
XBRL 把验证一份实例文档所需的相关分类标准文件正式命名为DTS。
一份实例文档的DTS包含直接、间接由该实例文档参照到的schema文件及linkbase文件。
包含在DTS內的文件必须一一找齐,实例文档才能进行有效性验证。
Taxonomy结构
仍由一份XML Schema文件及三至五份Linkbase文件构成。
五个Linkbase文件的功能仍然相同,但对连接元素的role及arcrole属性内涵做了大幅度调整。
XBRL 中专用于presentationArc元素的order属性,在XBRL 中改为所有arc元素的通用属性。
Labels Linkbase的改变
labelArc元素的arcrole属性
arcrole属性XBRL 版的建议值“element-label”,改成标准值”concept-label”:
arcrole=“
label元素的role属性
增订22种role属性的标准值
<label>的role属性
Optional
XBRL 版有2种标准值
role=“
role=“
XBRL 版改订为以下22种标准值
role=“
role=“
role=“
role=“
<label>的role属性…
role=
role=
role=
role=
role=
role=
role=
role=
role=
<label>的role属性…
role=
role=
role=
role=
role=
role=
role=
role=
role=
References Linkbase的改变
referenceArc元素的arcrole属性
Arcrole属性在版的建议值之一“element-reference”,在XBRL 版改成标准值”concept-reference”:
arcrole=“
XBRL 版的另一個arcrole属性建议值”element-actual”,在XBRL 已不再使用。
reference元素的role属性
增订10种role属性的标准值
<reference>的role属性
Optional
XBRL 版沒有任何建议值和标准值。
XBRL 增订以下10种标准值
role=
role=
role=
role=
<reference>的role属性…
role=
role=
role=
role=
role=
role=
Definition Linkbase的改变
XBRL 的definitionArc元素,其arcrole属性只有parent-child及element-dimension两种值(以及bi-directional的对称值)。
XBRL 的definitionArc元素,其arcrole属性有general-special、essence-alias、similar-tuples及requires-element四种标准值(及对称值),并允许taxonomy的制定者另订其他值。
“general-special”arc
definitionArc的一中,其arcrole属性如下:
arcrole=“
此arc所连接的元素,一方是一般化概念,另一方是特殊化概念,且均需属于item类型。一个特殊化项目也可是一个一般化项目(如果二项目符合c-equal及u-equal),反之则不然。
例如:甲公司的[流动资产]也是[资产],但[资产]还包含[固定资产]…等其他形态。
“essence-alias”arc
defenitionArc的一种,其arcrole属性如下:
arcrole=“
此arc所连接的元素,在订以上是相等的,只是一个是本名(essence)、一个是別名(alias)。两个元素均需属于item类型。
例如:「资产负债表」是一般通用名称,它也可以被称为「财务状况表」。
“similar-tuples”arc
defenitionArc的一种,其arcrole属性如下:
arcrole=“
•此arc所连接的元素,必须属于tuple类型。两个tuples元素在定义上是相等的,但內容模型可以不同。
“requires-element”arc
defenitionArc的一种,其arcrole属性如下:
arcrole=“
此arc所连接的元素,必须是item或tuple类型。如果A元素出现在实例文档中,B元素也必须出现在同一份实例文档中,两元素之间的关系就可以用”requires-element”arc來表达。
Presentation Linkbase的改变
原专用于presentationArc元素的order属性,改成所有arc元素的通用属性。
arcrole的标准属性值仍是parent-child,且变成presentationArc的专用arcrole属性值。
presentationArc元素新增preferredLabel属性,用以指出在parent-child的连接中,最能把child元素表达清楚的label元素。
“parent-child”arc
XBRL 的标准presentationArc,其arcrole属性如下:
arcrole=“
此arc所连接的元素,必须是tuple或item类型。child元素在parent元素中的排列,以arc中的order属性表达。
例如:[流动资产]与[现金及现金等价物]具有parent-child关系,且后者为前者中的第一个科目(order=1)。
Calculation Linkbase
calculationArc的weight属性值不能等于0。
XBRL 版无此限制,该版本的taxonomy中,许多calculationArc的weight属性值等于0。
arcrole的标准属性值从parent-child改为summation-item。
“summation-item”arc
XBRL 的标准calculationArc,其arcrole属性如下:
arcrole=“
此arc所连接的元素,一方是总和概念(summation concept),另一方是贡献概念(contributing concept),且两元素均须是item类型。
例如:[流动资产]与其构成项目[现金及现金等价物]、[短期投资]….等科目元素之间,就属于summation-item类型。这些科目金额加入(weight=1)[流动资产]。
自定义Role及Arcrole属性
XBRL 在內定标准值外,容许taxonomy制订者自定义role及arcrole属性。
定义方式:在taxonomy shcema中定义<roleType>及<arcroleType>两种元素,然后在linkbase文件或实例文件中以<roleRef>及<arcroleRef>元素参照到对应的<roleType>及<arcroleType>元素。
<roleType>元素
Schema中的元素结构
<element name="roleType">
<complexType>
<sequence>
<element ref="link:definition" minOccurs="0"/>
<element ref="link:usedOn" maxOccurs="unbounded"/>
</sequence>
<attribute name="roleURI" type="xlink:nonEmptyURI" use="required"/>
<attribute name="id" type="ID"/>
</complexType>
</element>
<arcroleType>元素
<element name="arcroleType">
<complexType>
<sequence>
<element ref="link:definition" minOccurs="0"/>
<element ref="link:usedOn" maxOccurs="unbounded"/>
</sequence>
<attribute name="arcroleURI" type="xlink:nonEmptyURI" use="required"/>
<attribute name="id" type="ID"/>
<attribute name="cyclesAllowed" use="required">
<simpleType>
<restriction base="NMTOKEN">
<enumeration value="any"/>
<enumeration value="undirected"/>
<enumeration value="none"/>
</restriction>
</simpleType>
</attribute>
</complexType>
</element>
<roleRef>及<arcroleRef>
均为”simpleType”连接元素
以”xlink:href”属性指向所参照taxonomy schema中的<roleType>及<arcroleType>元素。
<roleRef>的”roleURI”属性值须与所参照的<roleType>的”roleURI”属性值相同。
< arcroleRef >的” arcroleURI”属性值须与所参照的< arcroleType >的” arcroleURI”属性值相同。
Taxonomy的扩展
任何人均可对已有的taxonomy进行扩展。
在扩展式如欲改变已有taxonomy中元素之间的arc关系,可分成下列两种情况:
Prohibiting arc: 此arc禁止另一种arc关系,但此arc本身也不具有实质功能。
Overriding arc: 此arc取代另一种arc关系。
需遵循XBRL 所订的“Rules of prohibiting and overriding relationships”。
DTS的关系网络
Networks of relationships:
每个具体arc都在描述元素之间的关系网络
但并非每个arc都能加入DTS的关系网络.
某些arcs会被別的arcs禁止或取代,而无法加入DTS的关系网络。
Prohibiting and overriding arcs
用“use”及”priority”属性来控制新关系
use=“optional”,表示新的arc可参与DTS中的关系网络。
use=“prohibited”,表示新的arc及与其有相等关系(equivalent relationships)的arcs都不能参与DTS中的关系网络。
priority=“任何整数”,数值越大则优先级越高。
Equivalent relationships
Base set of arcs: 在此set中的arcs有相同的arcrole属性值,且包括这些arcs的个别扩展连接元素有相同的role属性值。
在同一base set中的arcs,在下列情況下具有相等关系:
两个arcs的non-Xlink属性值结构相等(s-equal)
两个arcs的”from”属性值相同。
两个arcs的“to”属性值相同。
Rules of prohibiting and overriding relationships
Prohibiting arc及与其有相等关系的arcs都不包含在网络关系中。
Priority属性值最大的arc,若其use=“optional”,则此arc为overriding arc,可参与关系网络。
若具B条件的arc不只一个,只能找一个加入关系网络。
若有数个priority属性值最大的arcs,且其中至少有一个use=“prohibited”,则全部都不能加入关系网络。
实例文档变化
XBRL vs. XBRL
根元素改为<xbrl>
新增多项与DTS相关的元素
实例文档的內容元素需按规定顺序排列
以<context>单一背景元素取代<numericContext>及<nonNumericContext>两个背景元素。
新增“decimals”属性。
取消”cwa”属性。
科目可以使用的数据类型为40种。
XBRL 的实例文档结构
<element name="xbrl">
<complexType>
<sequence>
<element ref="link:schemaRef" minOccurs="1" maxOccurs="unbounded" />
<element ref="link:linkbaseRef" minOccurs="0" maxOccurs="unbounded" />
<element ref="link:roleRef" minOccurs="0" maxOccurs="unbounded" />
<element ref="link:arcroleRef" minOccurs="0" maxOccurs="unbounded" />
<choice minOccurs="0" maxOccurs="unbounded">
<element ref="xbrli:item"/>
<element ref="xbrli:tuple"/>
<element ref="xbrli:context"/>
<element ref="xbrli:unit"/>
<element ref="link:footnoteLink"/>
</choice>
</sequence>
<attribute name="id" type="ID" use="optional" />
<anyAttribute namespace=" processContents="lax" />
</complexType>
</element>
<xbrl>根元素
XBRL 已规定可用<group>或<xbrl>作为实例文档的根元素,但实际中,实例文档均以<group>做为根元素。
XBRL 取消<group>,以<xbrl>为唯一根元素。
实例文档中的元素顺序
XBRL 对实例文档中的內容元素并无顺序规定。
XBRL 实例文档种的内容元素需按照<schemaRef>、<linkbaseRef>、<roleRef>、<arcroleRef>、其他元素顺序排列。
DTS rules of discovery
DTS的“寻找规则”
包含在DTS中的taxonomy schema有以下五类,必须被找到(must be discovered)
直接在实例文档的<schemaRef>、<roleRef>、<arcroleRef>元素的“href”属性所参照到的schema文件。
上述schema文件所“import”或“include”的schema文件。
由被找到的linkbase文件的<loc>元素之”href”属性所参照的schema文件。
由被找到的linkbase文件的<roleRef>元素之”href”属性所参照的schema文件。
由被找到的linkbase文件的<arcroleRef>元素之”href”属性所参照的schema文件。
DTS rules of discovery…
包含在DTS中的linkbase文件有以下四类,必须被找到(must be discovered)
直接由实例文档的<linkbaseRef>元素的“href”属性所参照到的linkbase文件。
由被找到的schema文件的<linkbaseRef>元素的”href”属性所参照到的linkbase文件。
出现在被找到的schema文件中XPath“schema/annotation/appinfo/*”內的linkbase文件。
由被找到的linkbase文件的<loc>元素之”href”属性所参照到的linkbase文件。
<context>背景元素
<element name="context">
<annotation>
<documentation>
Used for an island of context to which facts can be related.
</documentation>
</annotation>
<complexType>
<sequence>
<element name="entity" type="xbrli:contextEntityType" />
<element name="period" type="xbrli:contextPeriodType" />
<element name="scenario" type="xbrli:contextScenarioType" minOccurs="0" />
</sequence>
<attribute name="id" type="ID" use="required" />
</complexType>
</element>
背景元素的变化
<context>元素不再包含<unit>子元素,<unit>独立成为<xbrl>根元素下的第一层元素。
用新定义的<attributeGroupname=“numericItemAttrs”>及
<attributeGroup name=“nonNumericItemAttrs”>分別作为数值科目和非数值科目的参照属性组。
数值及非数值科目都以属性组中的背景参照属性<attribute name=“contextRef” type=“IDREF”use=“required”/>参照ID相同的背景元素。
数值项目以属性组中的单位参照属性”unitRef”参照<unit>元素。非数值科目则不再参照<unit>元素。
取消数值科目的”cwa”属性。
数值科目新增”decimals”属性,与”precision”属性同置于数值科目属性组<attributeGroupname=“numericItemAttrs”>內。
“decimals”& “precision”属性
XBRL 中,除了分数类型科目<complexType name=“fractionItemType” final=“extension”>之外,其余的数据类型科目必须在precision及decimals两种属性中二选一。
precision属性值可以是0或任一正整数以及INF;
decimals属性值可以是任一正、负整数以及INF。
数据类型
XBRL 版只定义了23种数据类型,其中6种是数值类型、17种是非数值类型。
XBRL 版共定义了40种数据类型,其中20种是数值类型、20种是非数值类型。这40种类型中,有4种是XBRL根据会计领域的特别需要特别制订的类型,其余36种则是根据XML Schema的built-in datatypes制订的。XML Schema的built-in datatypes共有44种,其中有8种类型只能用在属性定义上,其余36种类型才能用在元素订以上,版就包含了这36类型。
版中的<uriItemType>及<NOTATIONItemType>,版中已不再使用。