XBRL工作原理

XBRL之所以比以前的财务信息格式(如Excel、pdf、网页)有众多优势,原因就在于它将业务报告整体拆分为一个个元素而存在,使报告由静态变为动态,让计算机可以对报告内容进行抽取和组合。例如,对于word格式财务报告,尽管人们可以手工抽取不同文件中的元素(例如净资产数据)进行比较分析,但计算机不能自动完成这一任务。从计算机软件角度来讲,无法读懂word文件并进行有意义的拆分。而在XBRL技术下,每一个元素都有其特定的识别标记,从而使报告可拆分。

考虑下面一段简化的XBRL格式报告代码:

<负债>1000.00</负债>

<资产>2000.00</资产>

<权益>1000.00</权益>这里的

<aa>?????</aa>结构就是一个标记。计算机软件完全能够识别这种标记:“aa”是元素名称,而元素的值是“?????”。通过对单独元素的识别,一份报告得以拆分,并进行有业务意义的处理。

细心的读者可能发现:上述代码语法以及像负债、资产、权益这样的名称应当有统一定义,否则XBRL业务报告将不具有可比性。此外,还应当通过某种方式来告知计算机软件这些元素的业务含义。这就基本道出了XBRL分类标准(tax-onomy)的作用:应用软件根据分类标准来处理XBRL报告。分类标准让应用软件可以“读懂”元素,“理解”其含义,在XBRL应用中起着至关重要的作用。理解分类标准,也就基本理解了XBRL的工作原理。

图1描述了分类标准的结构和每个组成部分的功能:可以发现,分类标准由模式文件(schema)和5个链接库文件(linkbase)组成。模式文件居于核心地位,它主要告诉应用软件业务报告中应当包含哪些信息。而链接库文件主要告诉应用软件这些信息的相关业务逻辑是怎样的。下面分别予以介绍:

一、模式文件

模式文件定义了报告中可能包含的元素以及元素的各种属性。

下面是一段简化的模式文件内容:<elementname="手续费及佣金收入"type="monetaryitemtype"  periodtype="duration"balance="credit"nillable="true"/>

这段代码定义了名为“手续费及佣金收入”的元素(element),并且界定了它的4种属性:(1)它的类型(type)属于货币金额(mone-taryitemtype),也就是说它是一个数字,而不是一段文字或者百分比等。(2)它的时间属性(periodtype)是一个期间值(duration),而不是时点值。我们知道,资产负债表项目是时点值,利润表项目是期间值。(3)它的余额方向(balance)在贷方(credit)。(4)它不是必填项目,可以为空(nillable="true")。可以发现,这段模式文件代码把“手续费及佣金收入”元素的一些基本会计概念都表达出来了,为应用软件的处理奠定了基础。

没有在模式文件中定义的元素,软件将不允许用户填报。而在模式文件中有定义的元素,如果填报内容不符合定义,例如在“手续费及佣金收入”中填入一段文字,则软件也不会接受。因此,模式文件的作用是据以生成和验证XBRL实例文档。在传输环节,软件都会根据模式文件验证实例文档。这样,不符合填报要求的报告就能够被提前发现并得以纠正。

但模式文件仅表示一组不相关的元素,它没有告诉软件元素之间的勾稽关系、层级关系(如流动资产包含哪些具体项目)以及如何在报告中列报。这些是通过链接库来定义的。

二、链接库

(一)定义链接库定义链接库用于定义元素间的各种不同关系,主要包括四种基本的关系类型:一般—特殊关系、原名—别名关系、规定—元素关系、相似—元组关系。这里举例介绍一下规定—元素关系:当某个元素填写有内容时,就必须填写其他相关元素。这种关系主要用于实现信息披露的监管要求。例如,当某企业在资产负债表中填写了生物资产的金额,那么就必须填写生物资产的有关附注。没有附注内容的报告在验证时将不予通过。这就需要在定义链接库中定义生物资产元素与生物资产附注元素的“规定—元素关系”。

(二)计算链接库计算链接定义元素间的计算关系。下面是两段简化的计算链接的例子:

<caculationarctype=“arc”arcrole=http://www.XBRL.org/2003/arcrole/summation-item  from=“毛利”to=“销售收入”order=“1”weight=“1”/><caculationarctype=“arc”arcrole=http://www.XBRL.org/2003/arcrole/summation-item from=“毛利”to=“销售成本”order=“2”weight=“-1”/>

这两段计算链接合起来表达了一个公式:毛利=销售收入-销售成本。具体来说:“http://www.XBRL.org/2003/arcrole/summation-item”表明该段代码描述的是项目加总的关系(尽管它看上去像是一个网址,但实际上表明的是计算关系类型);在这个关系中总和元素是毛利,用于加总的元素是销售收入和销售成本;在加总顺序(order)上是销售收入第一、销售成本第二;由于销售成本属于减项,因此它的计算权重(weight)为-1,表示以其负数加总。

生成和传输实例文档时,软件将根据计算链接库验证元素间的计算关系,从而减少错误,提高报告的准确性。

(三)展示链接库展示链接库定义了元素在列报时的相互关系,从而使软件能够将代码以人们的阅读形式展示出来。下面是一段简化的展示链接的例子:

<presentationarctype=“arc”arcrole=http://www.XBRL.org/2003/acrole/parent-child from=“资产总额”to=“流动资产”/>有英语基础的人一般都能理解这段代码所定义的内容:在列报中,流动资产是资产总额的下级项目。其中,“http://www.XBRL.org/2003/acrole/parent-child”表明该链接定义一个“母子项目”关系。这个关系的方向是从(from)资产总额到(to)流动资产,表明资产总额是上级项目,流动资产是下级项目。

在填写、显示、输出等任何需要以人们可读格式展示报告时,软件将调用展示链接库。

(四)标签链接库展示链接库仅仅定义了元素间在列报结构上的关系。至于列报中应当显示的名称,则由标签链接来实现。在XBRL中,标签就是元素的显示名。有读者可能会问,在模式文件中不就给元素命名了吗,还要标签干什么?这是因为同一个元素在不同的场合下可能有不同的显示名。一个简单的例子就是一份报告可能需要多种语言版本,那么一个元素就需要多种语言的标签。再比如,净利润当其值为负数时,其显示名称可以为“净利润”,但有的场合下人们习惯于将其展示为正数,相应的名称就应当是“净亏损”。

(五)参考链接库参考链接库为元素指出有关文献索引(如准则对元素的定义、计量方法、列报要求等),供报告编制者和使用者参考。下面是一段简化的参考链接的例子:

<referencetype="resource"role="http://www.XBRL.org/2003/role/presentationref"label="cashflowsfromusedinoper-ationstotal_ref">

<ref:name>ias</ref:name><ref:number>7</ref:number>

<ref:paragraph>14</ref:paragraph></reference>

上例表示:经营活动产生的现金流量(cashflowsfromusedinoperationstotal)的列报要求(pre鄄sentationref)参见国际会计准则(ias)第7号第14段。

通过上述分析,读者可以对XBRL工作原理有了总体的认识。

简单说就是分类标准通过既定的语法“告知”应用软件一系列规则:某类报告包括哪些元素?元素之间的结构和计算关系是怎样的?如何展示一份报告?应用软件执行这些规则,就能对报告进行符合业务逻辑的处理。一般情况下,如果业务逻辑发生了变更,只需要对分类标准进行修订,而无需对众多应用软件进行改动。理解了工作原理,我们就对XBRL的优势有了更深刻的认识。

图1

【来源:中国会计报   作者:财政部会计司】