XBRL 是由 XBRL 國際指導委員會倡導並推動其發展。目前世界各國共有 250 多個機構參加了該組織。XBRL 國際指導委員會由美國注冊會計師協會,德勤、安永和畢馬威國際會計公司,微軟、IBM、J.D.Edwards、SAP 以及其它技術與金融公司資助。自從 1998 年 XBRL 誕生時起,XBRL 就獲得了迅速的發展,尤其作為財務信息處理的最新標准和技術,XBRL 增加了公司財務報告披露的透明度,同時極大的提高了財務報告信息處理的效率和能力。以金融行業為例,目前國際上許多交易所、會計師事務所和金融服務與信息供應商等機構已采用或准備采用該項標准和技術,如東京交易所的 TD net 系統采用了 XBRL 技術報送財務數據,澳洲交易所正在研究並准備使用 XBRL,德國德意志銀行將 XBRL 用於處理貸款信息並使其信用分析過程更加流暢。在中國 XBRL 也開始得到應用。上海證券交易所和深圳證券交易所都開始了 XBRL 技術的研究和試驗。目前已有幾十家上市公司參加了使用 XBRL 技術提交公司年報摘要的試點工作。當然以國內目前的現狀來說,XBRL 的應用還處於起步階段,還有很多的問題。以下就 XBRL 語言,進行介紹。
XBRL 基礎
XBRL 源於 XML,所以要理解 XBRL 技術,首先需要了解 XML。對於 XML,這裡不再做更多的介紹,有需要的讀者請自行參考相關的資料。最新的標准是 XBRL 國際指導委員會前不久通過的 XBRL Specification 2.1。XBRL 信息模型主要是由兩部分組成的,XBRL 實例(XBRL instance)及 XBRL 分類集(XBRL Taxonomy)。XBRL 實例包含了報表中的具體事實(concrete facts),而分類集則是對具體事實的定義,包括它的語法,它的形式以及屬性。
在 XBRL 技術中使用了 XML Schema 和 XLink。
XBRL實例
XBRL 實例中封裝了具體的商業事實。其中最基本的單位是事實(facts)。例如,最近一個季度的銷售額("sales in the most recent quarter")就是一個事實。沒有復雜信息結構的簡單事實叫條目(item)。為了表達較復雜的信息單元,可以把一組相關聯的事實放到一起,用相對復雜的結構比如元組(tuple)等來表示。元組中既可以包含條目,也可以包含其他的元組。條目對應於商業概念,而這些商業概念的具體業務含義和定義描述則是由分類集(taxonomy set)完成的。
具體的實例可以參考微軟公司的部分XBRL財務報表,其內容可以從微軟公司的主頁上下載。
XBRL 分類集
對於報表中的具體事實,是由實例來表現的。但是這些具體事實應該遵守怎樣的語言規范,他們的形式以及屬性如何,則是由分類集來定義的。
不同的國家,不同的行業都使用不同的會計准則。作為一個國際通行的標准,XBRL 要適應各種不同的情況,其中的關鍵就是建立符合各國會計准則的具體的分類集。這一工作由各國的 XBRL 組織負責建立符合本國會計准則的 XBRL 分類集。分類集首先要定義財務報表中將要使用的各項財務報表元素,同時還要附加上相關的其他信息,比如各個元素之間的關聯性,以及各個元素在報表中的名稱,位置,還要反映出制作財務報表所依據的會計准則。
XBRL 分類集通過 XML 模式(schema)定義詞匯條目(term of vocabulary)的語法來描述詞匯(vocabulary);用 Xlink 描述元數據,這些元數據可以用來刻畫條目(item)以及條目之間的關系。每個XBRL實例通過引用一個模式(schema)來關聯到對應的分類(taxonomy)上去;而每一個模式又可以引用其他的模式。為驗證一個XBRL實例的語法需要的所有模式(schema)構成的集合(collection)組成該實例的可發現分類集(Discoverable Taxonomy Set(DTS))的一部分。通過引用Xlink鏈接集(linkbases),XBRL實例還可以表達商業概念更多的信息。XBRL采用Xlink作為定義商業概念與相應元數據之間關系的機制。除XBRL實例之外,DTS中的模式(schema)還可以包含對鏈接集(linkbases)的引用。所有這些schemas和linkbases合起來構成所謂的DTS,這樣我們便能夠描述整個報表中的商業概念。
XBRL分類集由多個文件組成。主要文件包括一個Taxonomy Schema(.xsd文件),和計算、定義、標簽、展示、引用這五個linkbase文件。對於XBRL實例中的所有元組、條目和事實都要在分類集中定義"名稱(name)"和"數據類型(type)"。Taxonomy中主要使用的數據類型有表示日期的xbrli:dateTimeItemType、表示字符串的xbrli:stringItemType、表示金額的xbrli:moneytaryItemType,還有decimalItemType、shareItemType、uriItemType等等。原則上,所有的元素都應該包括在xbrli:item或者xbrli:tuple這兩個可替代組(substitutionGroup)中,換句話說,這兩個組中所沒有的元素原則上都不能寫進實例文檔(Instance Documents)。
如果是從頭為某行業或組織機構定義一個特定的分類集的話,應該針對該行業或機構的商業概念定義包含了條目和元組(items and tuples)的模式(schema)。然而更多的情形是所需的業界分類已經存在,只需要對它稍作改動以適應用戶的需要,比如再添加一些商業概念,然後把它們和標准概念聯系起來等等。這時,可以先把業界分類集模式(industry taxonomy schema)引進(import)來,然後添加一些新的模式組件(schema components)以反映用戶的商業概念。
在Taxonomy Schema(.xsd文件)中還定義了鏈接元素,即link:linkbaseRef,其屬性分別定義了各linkbase的作用和連接的文件。除了type屬性外,還包括了arcrole屬性、actuate屬性、role屬性、href屬性等等。
標簽鏈接(label links)和引用鏈接(reference links)把商業概念(business concepts)和元數據(metadata)聯系起來。舉例來說:我們知道一個文本串(text strings)可以用來標記(label)或文檔化(document)一個報表中的概念,而標簽鏈接(label links)則可以把這個文本串和相應的概念關系起來,比如,可以用標簽鏈接把文本串"最近一季度總收入"( Revenues in most recent quarter")和分類中定義的"revenueMRQ"條目聯系起來。單個兒的商業概念可以用多個標簽多種語言來標記。具體XBRL實例的創建者(author)來決定該實例各個標簽的取捨。
圖1中闡明了定義一個關聯鏈接(label link)關聯一個商業概念和標簽所要做的三件事:用label element標記商業概念,用loc element 為該概念定義一個定位器(locator),用一個labelArc element 定義一個'弧'(arc)把此商業概念聯到指定的label上。引用鏈接也是通過類似的方式把引用鏈接到商業領域(domain)的權威文獻上去,所使用的機制類似於標簽鏈接:定義一個引用鏈接和一個定位商業概念及相關文檔引用的定位器,最後再建一個referenceArc element 將前面定義的定位器和引用關聯起來。
標簽型鏈接和引用型鏈接是用來關聯商業概念和元數據的。其他三種類型的鏈接恰恰與之相反,是用來建立不同商業概念之間的關聯的。例如:計算鏈接就是用來定義相關商業概念的計算關系的。舉個例子:"稅後利潤"("profitAfterTax")的概念和以由"稅前利潤"("profitBeforeTax")的概念減去"所得稅"("taxPaid")概念得到。
profitAfterTax = weight(1) * profitBeforeTax + weight(-1)*taxPaid
圖2是示例怎樣將這三個商業概念聯系起來。
定義鏈接描述了幾種商業概念間的關系,如泛型和具化關系(generalization-specialization relationships),如:"postalCode"是"zipCode"的泛化等。展示鏈接(presentation links),正如名字的含義一樣,從展示的角度(presentation perspective)定義不同商業概念之間的關系,例如:在展示報表中,父子關系應該顯示為"銷售"sales和"打印機銷售"printerSales。
XBRL的處理器
XBRL處理器(XBRL processors)不僅要按分類模式(taxonomy schemas)來校驗實例文檔(instance documents)的語法,也要按分類鏈接集(taxonomy linkbases)來驗證實例的語義。當對實例文檔進行處理時,處理器要能根據實例的分類提取出應用所需的元數據。這個過程和XML模式(Schema)驗證(validate)以生成PSVI類似。XBRL驗證應當拿分類(taxonomy)來驗證實例並將驗證過程所得的元數據(metadata)送給應用(application),比如處理器應能在報表實例中檢測到一個條目(item)的元數據label。除了驗證之外,XBRL工具(XBRL tools)還包括:分類編輯器(taxonomy editors)、 XBRL實例生成(XBRL instance creation),XBRL儲備器(XBRL repositorIEs)及查詢報告引擎(query and reporting engines)等等。
XBRL的應用
XBRL為我們提供了商業報表框架。商業報表涵蓋范圍很廣,從事業單位的規范化(regulatory compliance)到企業的智能化(business intelligence)都有應用。如圖4所示,在報告鏈中的不同環節,XBRL都能創造價值。報告鏈上商業信息流程的標准化為許多應用提供了機會。封裝好(canned)的應用可以用來編寫(composition)、分析(analysis)、展示(presentation)信息。
總結當前國際上有多種基於XML技術的報表語言,而XBRL越來越成為商業報表語言的主流。通過XML技術,XBRL提供了真正可擴展的框架(framework),企業可以用之報告重要的商業信息。在商業報表鏈中,從信息的准備(preparation)、 分析(analysis), 直到應用(consumption),XBRL為每個環節都提供了優勢。經過兩輪的修訂――公眾審核(public revIEw)和實施者反饋信息(implementer feedback)後,現在XBRL已經日益成熟並開始得到了廣泛的應用。